1 2set testdir [file dirname $argv0] 3source $testdir/tester.tcl 4 5ifcapable !vtab { 6 finish_test 7 return 8} 9 10register_echo_module [sqlite3_connection_pointer db] 11 12do_test tkt3871-1.1 { 13 execsql { 14 BEGIN; 15 CREATE TABLE t1(a PRIMARY KEY, b UNIQUE); 16 } 17 for {set i 0} {$i < 500} {incr i} { 18 execsql { INSERT INTO t1 VALUES($i, $i*$i) } 19 } 20 execsql COMMIT 21 execsql { 22 CREATE VIRTUAL TABLE e USING echo(t1); 23 SELECT count(*) FROM e; 24 } 25} {500} 26 27do_test tkt3871-1.2 { 28 execsql { SELECT * FROM e WHERE a = 1 OR a = 2 } 29} {1 1 2 4} 30do_test tkt3871-1.3 { 31 set echo_module "" 32 execsql { SELECT * FROM e WHERE a = 1 OR a = 2 } 33 set echo_module 34} [list \ 35 xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 1 \ 36 xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 2 \ 37] 38 39do_test tkt3871-1.4 { 40 execsql { SELECT * FROM e WHERE a = 1 OR a = 2 OR b = 9 } 41} {1 1 2 4 3 9} 42do_test tkt3871-1.5 { 43 set echo_module "" 44 execsql { SELECT * FROM e WHERE a = 1 OR a = 2 OR b = 9 } 45 set echo_module 46} [list \ 47 xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 1 \ 48 xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 2 \ 49 xFilter {SELECT rowid, * FROM 't1' WHERE b = ?} 9 50] 51 52 53finish_test 54