summaryrefslogtreecommitdiffstats
path: root/test/tkt3871.test
blob: d587910d393a69138c016a73139c306972d9ab37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
set testdir [file dirname $argv0]
source $testdir/tester.tcl

ifcapable !vtab {
  finish_test
  return
}

register_echo_module [sqlite3_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, a, b FROM 't1' WHERE a = ?} 1 \
  xFilter {SELECT rowid, a, b 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, a, b FROM 't1' WHERE a = ?} 1 \
  xFilter {SELECT rowid, a, b FROM 't1' WHERE a = ?} 2 \
  xFilter {SELECT rowid, a, b FROM 't1' WHERE b = ?} 9
]


finish_test