Fix a problem causing the recovery extension to use excessive memory and CPU time...
[sqlite.git] / test / rowvalueA.test
blob8760c2c396f3cf31a8c184b50b31fab321d7161b
1 # 2021 July 6
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
11 # This file implements regression tests for SQLite library.
14 set testdir [file dirname $argv0]
15 source $testdir/tester.tcl
16 set testprefix rowvalueA
18 do_execsql_test 1.0 {
19   SELECT (1, 2) IN ( (3, 4), (5, 6), (1, 3) );
20 } {0}
22 do_execsql_test 1.1 {
23   SELECT (1, 2) IN ( (3, 4), (5, 6), (1, 2) );
24 } {1}
26 do_execsql_test 1.2 {
27   SELECT (1, 2) IN ( (3, 2) );
28 } {0}
30 do_execsql_test 1.3 {
31   SELECT (1, 2) IN ( (1, 2) );
32 } {1}
34 do_execsql_test 1.4 {
35   SELECT (1, 2) IN ( );
36 } {0}
38 do_execsql_test 1.5 {
39   SELECT (1, 2) NOT IN ( );
40 } {1}
42 for {set ii 0} {$ii < 2000} {incr ii} {
43   lappend L "($ii, $ii)"
46 do_execsql_test 1.6.1 "
47   SELECT (400,400) IN ( [join $L ,] )
48 " 1
50 do_execsql_test 1.6.2 "
51   SELECT (1500,1500) IN ( [join $L ,] )
52 " 1
54 do_execsql_test 1.6.2 "
55   SELECT (1500,1499) IN ( [join $L ,] )
56 " 0
58 #-------------------------------------------------------------------------
60 do_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}}
64 do_catchsql_test 2.1 {
65   SELECT (1, 2) IN ( (1, 2), 4, (5, 6) )
66 } {1 {IN(...) element has 1 term - expected 2}}
68 do_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}}
72 do_catchsql_test 2.3 {
73   SELECT 2 IN ( (1, 2), (3, 4), (5, 6) )
74 } {1 {row value misused}}
76 finish_test