19289f510Sdan# 2021 July 6 29289f510Sdan# 39289f510Sdan# The author disclaims copyright to this source code. In place of 49289f510Sdan# a legal notice, here is a blessing: 59289f510Sdan# 69289f510Sdan# May you do good and not evil. 79289f510Sdan# May you find forgiveness for yourself and forgive others. 89289f510Sdan# May you share freely, never taking more than you give. 99289f510Sdan# 109289f510Sdan#*********************************************************************** 119289f510Sdan# This file implements regression tests for SQLite library. 129289f510Sdan# 139289f510Sdan 149289f510Sdanset testdir [file dirname $argv0] 159289f510Sdansource $testdir/tester.tcl 169289f510Sdanset testprefix rowvalueA 179289f510Sdan 189289f510Sdando_execsql_test 1.0 { 199289f510Sdan SELECT (1, 2) IN ( (3, 4), (5, 6), (1, 3) ); 209289f510Sdan} {0} 219289f510Sdan 229289f510Sdando_execsql_test 1.1 { 239289f510Sdan SELECT (1, 2) IN ( (3, 4), (5, 6), (1, 2) ); 249289f510Sdan} {1} 259289f510Sdan 269289f510Sdando_execsql_test 1.2 { 279289f510Sdan SELECT (1, 2) IN ( (3, 2) ); 289289f510Sdan} {0} 299289f510Sdan 309289f510Sdando_execsql_test 1.3 { 319289f510Sdan SELECT (1, 2) IN ( (1, 2) ); 329289f510Sdan} {1} 339289f510Sdan 349289f510Sdando_execsql_test 1.4 { 359289f510Sdan SELECT (1, 2) IN ( ); 369289f510Sdan} {0} 379289f510Sdan 389289f510Sdando_execsql_test 1.5 { 399289f510Sdan SELECT (1, 2) NOT IN ( ); 409289f510Sdan} {1} 419289f510Sdan 429289f510Sdanfor {set ii 0} {$ii < 2000} {incr ii} { 439289f510Sdan lappend L "($ii, $ii)" 449289f510Sdan} 459289f510Sdan 469289f510Sdando_execsql_test 1.6.1 " 479289f510Sdan SELECT (400,400) IN ( [join $L ,] ) 489289f510Sdan" 1 499289f510Sdan 509289f510Sdando_execsql_test 1.6.2 " 519289f510Sdan SELECT (1500,1500) IN ( [join $L ,] ) 529289f510Sdan" 1 539289f510Sdan 549289f510Sdando_execsql_test 1.6.2 " 559289f510Sdan SELECT (1500,1499) IN ( [join $L ,] ) 569289f510Sdan" 0 579289f510Sdan 589289f510Sdan#------------------------------------------------------------------------- 599289f510Sdan 609289f510Sdando_catchsql_test 2.0 { 619289f510Sdan SELECT (1, 2) IN ( (1, 2), (3, 4, 5), (5, 6) ) 62*74777f99Sdan} {1 {IN(...) element has 3 terms - expected 2}} 639289f510Sdan 649289f510Sdando_catchsql_test 2.1 { 659289f510Sdan SELECT (1, 2) IN ( (1, 2), 4, (5, 6) ) 66*74777f99Sdan} {1 {IN(...) element has 1 term - expected 2}} 679289f510Sdan 689289f510Sdando_catchsql_test 2.2 { 699289f510Sdan SELECT (1, 2, 3) IN ( (1, 2), (3, 4), (5, 6) ) 70*74777f99Sdan} {1 {IN(...) element has 2 terms - expected 3}} 719289f510Sdan 729289f510Sdando_catchsql_test 2.3 { 739289f510Sdan SELECT 2 IN ( (1, 2), (3, 4), (5, 6) ) 74*74777f99Sdan} {1 {row value misused}} 759289f510Sdan 769289f510Sdanfinish_test 779289f510Sdan 78