tkt3871.test 1.2 KB

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