set testdir [file dirname $argv0] source $testdir/tester.tcl ifcapable !vtab { finish_test return } register_echo_module [sqlite4_connection_pointer db] do_test tkt3871-1.1 { execsql { BEGIN; CREATE TABLE t1(a PRIMARY KEY, b UNIQUE); } for {set i 0} {$i < 500} {incr i} { execsql { INSERT INTO t1 VALUES($i, $i*$i) } } execsql COMMIT execsql { CREATE VIRTUAL TABLE e USING echo(t1); SELECT count(*) FROM e; } } {500} do_test tkt3871-1.2 { execsql { SELECT * FROM e WHERE a = 1 OR a = 2 } } {1 1 2 4} do_test tkt3871-1.3 { set echo_module "" execsql { SELECT * FROM e WHERE a = 1 OR a = 2 } set echo_module } [list \ xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 1 \ xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 2 \ ] do_test tkt3871-1.4 { execsql { SELECT * FROM e WHERE a = 1 OR a = 2 OR b = 9 } } {1 1 2 4 3 9} do_test tkt3871-1.5 { set echo_module "" execsql { SELECT * FROM e WHERE a = 1 OR a = 2 OR b = 9 } set echo_module } [list \ xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 1 \ xFilter {SELECT rowid, * FROM 't1' WHERE a = ?} 2 \ xFilter {SELECT rowid, * FROM 't1' WHERE b = ?} 9 ] finish_test