1# 2021 July 6 2# 3# The author disclaims copyright to this source code. In place of 4# a legal notice, here is a blessing: 5# 6# May you do good and not evil. 7# May you find forgiveness for yourself and forgive others. 8# May you share freely, never taking more than you give. 9# 10#*********************************************************************** 11# This file implements regression tests for SQLite library. 12# 13 14set testdir [file dirname $argv0] 15source $testdir/tester.tcl 16set testprefix rowvalueA 17 18do_execsql_test 1.0 { 19 SELECT (1, 2) IN ( (3, 4), (5, 6), (1, 3) ); 20} {0} 21 22do_execsql_test 1.1 { 23 SELECT (1, 2) IN ( (3, 4), (5, 6), (1, 2) ); 24} {1} 25 26do_execsql_test 1.2 { 27 SELECT (1, 2) IN ( (3, 2) ); 28} {0} 29 30do_execsql_test 1.3 { 31 SELECT (1, 2) IN ( (1, 2) ); 32} {1} 33 34do_execsql_test 1.4 { 35 SELECT (1, 2) IN ( ); 36} {0} 37 38do_execsql_test 1.5 { 39 SELECT (1, 2) NOT IN ( ); 40} {1} 41 42for {set ii 0} {$ii < 2000} {incr ii} { 43 lappend L "($ii, $ii)" 44} 45 46do_execsql_test 1.6.1 " 47 SELECT (400,400) IN ( [join $L ,] ) 48" 1 49 50do_execsql_test 1.6.2 " 51 SELECT (1500,1500) IN ( [join $L ,] ) 52" 1 53 54do_execsql_test 1.6.2 " 55 SELECT (1500,1499) IN ( [join $L ,] ) 56" 0 57 58#------------------------------------------------------------------------- 59 60do_catchsql_test 2.0 { 61 SELECT (1, 2) IN ( (1, 2), (3, 4, 5), (5, 6) ) 62} {1 {IN(...) element has 3 terms - expected 2}} 63 64do_catchsql_test 2.1 { 65 SELECT (1, 2) IN ( (1, 2), 4, (5, 6) ) 66} {1 {IN(...) element has 1 term - expected 2}} 67 68do_catchsql_test 2.2 { 69 SELECT (1, 2, 3) IN ( (1, 2), (3, 4), (5, 6) ) 70} {1 {IN(...) element has 2 terms - expected 3}} 71 72do_catchsql_test 2.3 { 73 SELECT 2 IN ( (1, 2), (3, 4), (5, 6) ) 74} {1 {row value misused}} 75 76finish_test 77 78