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