/ Hex Artifact Content
Login

Artifact d921703d07c68f4fd5312073215a17fa34b0401d:


0000: 0a 73 65 74 20 74 65 73 74 64 69 72 20 5b 66 69  .set testdir [fi
0010: 6c 65 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76  le dirname $argv
0020: 30 5d 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64  0].source $testd
0030: 69 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a 69  ir/tester.tcl..i
0040: 66 63 61 70 61 62 6c 65 20 21 76 74 61 62 20 7b  fcapable !vtab {
0050: 0a 20 20 66 69 6e 69 73 68 5f 74 65 73 74 0a 20  .  finish_test. 
0060: 20 72 65 74 75 72 6e 0a 7d 0a 0a 72 65 67 69 73   return.}..regis
0070: 74 65 72 5f 65 63 68 6f 5f 6d 6f 64 75 6c 65 20  ter_echo_module 
0080: 5b 73 71 6c 69 74 65 33 5f 63 6f 6e 6e 65 63 74  [sqlite3_connect
0090: 69 6f 6e 5f 70 6f 69 6e 74 65 72 20 64 62 5d 0a  ion_pointer db].
00a0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 33 38 37 31  .do_test tkt3871
00b0: 2d 31 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c  -1.1 {.  execsql
00c0: 20 7b 0a 20 20 20 20 42 45 47 49 4e 3b 0a 20 20   {.    BEGIN;.  
00d0: 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 74    CREATE TABLE t
00e0: 31 28 61 20 50 52 49 4d 41 52 59 20 4b 45 59 2c  1(a PRIMARY KEY,
00f0: 20 62 20 55 4e 49 51 55 45 29 3b 0a 20 20 7d 0a   b UNIQUE);.  }.
0100: 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20    for {set i 0} 
0110: 7b 24 69 20 3c 20 35 30 30 7d 20 7b 69 6e 63 72  {$i < 500} {incr
0120: 20 69 7d 20 7b 0a 20 20 20 20 65 78 65 63 73 71   i} {.    execsq
0130: 6c 20 7b 20 49 4e 53 45 52 54 20 49 4e 54 4f 20  l { INSERT INTO 
0140: 74 31 20 56 41 4c 55 45 53 28 24 69 2c 20 24 69  t1 VALUES($i, $i
0150: 2a 24 69 29 20 7d 0a 20 20 7d 0a 20 20 65 78 65  *$i) }.  }.  exe
0160: 63 73 71 6c 20 43 4f 4d 4d 49 54 0a 20 20 65 78  csql COMMIT.  ex
0170: 65 63 73 71 6c 20 7b 20 0a 20 20 20 20 43 52 45  ecsql { .    CRE
0180: 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c  ATE VIRTUAL TABL
0190: 45 20 65 20 55 53 49 4e 47 20 65 63 68 6f 28 74  E e USING echo(t
01a0: 31 29 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 63  1);.    SELECT c
01b0: 6f 75 6e 74 28 2a 29 20 46 52 4f 4d 20 65 3b 0a  ount(*) FROM e;.
01c0: 20 20 7d 0a 7d 20 7b 35 30 30 7d 0a 0a 64 6f 5f    }.} {500}..do_
01d0: 74 65 73 74 20 74 6b 74 33 38 37 31 2d 31 2e 32  test tkt3871-1.2
01e0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 20 53   {.  execsql { S
01f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 65 20 57  ELECT * FROM e W
0200: 48 45 52 45 20 61 20 3d 20 31 20 4f 52 20 61 20  HERE a = 1 OR a 
0210: 3d 20 32 20 7d 0a 7d 20 7b 31 20 31 20 32 20 34  = 2 }.} {1 1 2 4
0220: 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 33 38 37  }.do_test tkt387
0230: 31 2d 31 2e 33 20 7b 0a 20 20 73 65 74 20 65 63  1-1.3 {.  set ec
0240: 68 6f 5f 6d 6f 64 75 6c 65 20 22 22 0a 20 20 65  ho_module "".  e
0250: 78 65 63 73 71 6c 20 7b 20 53 45 4c 45 43 54 20  xecsql { SELECT 
0260: 2a 20 46 52 4f 4d 20 65 20 57 48 45 52 45 20 61  * FROM e WHERE a
0270: 20 3d 20 31 20 4f 52 20 61 20 3d 20 32 20 7d 0a   = 1 OR a = 2 }.
0280: 20 20 73 65 74 20 65 63 68 6f 5f 6d 6f 64 75 6c    set echo_modul
0290: 65 0a 7d 20 5b 6c 69 73 74 20 5c 0a 20 20 78 46  e.} [list \.  xF
02a0: 69 6c 74 65 72 20 7b 53 45 4c 45 43 54 20 72 6f  ilter {SELECT ro
02b0: 77 69 64 2c 20 61 2c 20 62 20 46 52 4f 4d 20 27  wid, a, b FROM '
02c0: 74 31 27 20 57 48 45 52 45 20 61 20 3d 20 3f 7d  t1' WHERE a = ?}
02d0: 20 31 20 5c 0a 20 20 78 46 69 6c 74 65 72 20 7b   1 \.  xFilter {
02e0: 53 45 4c 45 43 54 20 72 6f 77 69 64 2c 20 61 2c  SELECT rowid, a,
02f0: 20 62 20 46 52 4f 4d 20 27 74 31 27 20 57 48 45   b FROM 't1' WHE
0300: 52 45 20 61 20 3d 20 3f 7d 20 32 20 5c 0a 5d 0a  RE a = ?} 2 \.].
0310: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 33 38 37 31  .do_test tkt3871
0320: 2d 31 2e 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  -1.4 {.  execsql
0330: 20 7b 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d   { SELECT * FROM
0340: 20 65 20 57 48 45 52 45 20 61 20 3d 20 31 20 4f   e WHERE a = 1 O
0350: 52 20 61 20 3d 20 32 20 4f 52 20 62 20 3d 20 39  R a = 2 OR b = 9
0360: 20 7d 0a 7d 20 7b 31 20 31 20 32 20 34 20 33 20   }.} {1 1 2 4 3 
0370: 39 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 33 38  9}.do_test tkt38
0380: 37 31 2d 31 2e 35 20 7b 0a 20 20 73 65 74 20 65  71-1.5 {.  set e
0390: 63 68 6f 5f 6d 6f 64 75 6c 65 20 22 22 0a 20 20  cho_module "".  
03a0: 65 78 65 63 73 71 6c 20 7b 20 53 45 4c 45 43 54  execsql { SELECT
03b0: 20 2a 20 46 52 4f 4d 20 65 20 57 48 45 52 45 20   * FROM e WHERE 
03c0: 61 20 3d 20 31 20 4f 52 20 61 20 3d 20 32 20 4f  a = 1 OR a = 2 O
03d0: 52 20 62 20 3d 20 39 20 7d 0a 20 20 73 65 74 20  R b = 9 }.  set 
03e0: 65 63 68 6f 5f 6d 6f 64 75 6c 65 0a 7d 20 5b 6c  echo_module.} [l
03f0: 69 73 74 20 5c 0a 20 20 78 46 69 6c 74 65 72 20  ist \.  xFilter 
0400: 7b 53 45 4c 45 43 54 20 72 6f 77 69 64 2c 20 61  {SELECT rowid, a
0410: 2c 20 62 20 46 52 4f 4d 20 27 74 31 27 20 57 48  , b FROM 't1' WH
0420: 45 52 45 20 61 20 3d 20 3f 7d 20 31 20 5c 0a 20  ERE a = ?} 1 \. 
0430: 20 78 46 69 6c 74 65 72 20 7b 53 45 4c 45 43 54   xFilter {SELECT
0440: 20 72 6f 77 69 64 2c 20 61 2c 20 62 20 46 52 4f   rowid, a, b FRO
0450: 4d 20 27 74 31 27 20 57 48 45 52 45 20 61 20 3d  M 't1' WHERE a =
0460: 20 3f 7d 20 32 20 5c 0a 20 20 78 46 69 6c 74 65   ?} 2 \.  xFilte
0470: 72 20 7b 53 45 4c 45 43 54 20 72 6f 77 69 64 2c  r {SELECT rowid,
0480: 20 61 2c 20 62 20 46 52 4f 4d 20 27 74 31 27 20   a, b FROM 't1' 
0490: 57 48 45 52 45 20 62 20 3d 20 3f 7d 20 39 0a 5d  WHERE b = ?} 9.]
04a0: 0a 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a     ...finish_test.