/ Hex Artifact Content
Login

Artifact ba03a83b831555cfd18c6c862b24b70a53ce7497fe55077f7c4b7c9ce83c2eed:


0000: 23 20 32 30 31 37 20 4d 61 72 63 68 20 32 32 0a  # 2017 March 22.
0010: 23 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20 64  #.# The author d
0020: 69 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67  isclaims copyrig
0030: 68 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63  ht to this sourc
0040: 65 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63  e code.  In plac
0050: 65 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e  e of.# a legal n
0060: 6f 74 69 63 65 2c 20 68 65 72 65 20 69 73 20 61  otice, here is a
0070: 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20   blessing:.#.#  
0080: 20 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f    May you do goo
0090: 64 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a  d and not evil..
00a0: 23 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e  #    May you fin
00b0: 64 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f  d forgiveness fo
00c0: 72 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66  r yourself and f
00d0: 6f 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23  orgive others..#
00e0: 20 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72      May you shar
00f0: 65 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20  e freely, never 
0100: 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e  taking more than
0110: 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a   you give..#.#**
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73 20 66  *******.# This f
0170: 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72  ile implements r
0180: 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73 20  egression tests 
0190: 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62 72 61  for SQLite libra
01a0: 72 79 2e 20 20 54 68 65 0a 23 20 66 6f 63 75 73  ry.  The.# focus
01b0: 20 6f 66 20 74 68 69 73 20 73 63 72 69 70 74 20   of this script 
01c0: 69 73 20 74 65 73 74 69 6e 67 20 74 68 65 20 46  is testing the F
01d0: 54 53 33 20 6d 6f 64 75 6c 65 2e 0a 23 0a 0a 73  TS3 module..#..s
01e0: 65 74 20 74 65 73 74 64 69 72 20 5b 66 69 6c 65  et testdir [file
01f0: 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76 30 5d   dirname $argv0]
0200: 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64 69 72  .source $testdir
0210: 2f 74 65 73 74 65 72 2e 74 63 6c 0a 73 65 74 20  /tester.tcl.set 
0220: 74 65 73 74 70 72 65 66 69 78 20 66 74 73 33 6d  testprefix fts3m
0230: 69 73 63 0a 0a 23 20 49 66 20 53 51 4c 49 54 45  isc..# If SQLITE
0240: 5f 45 4e 41 42 4c 45 5f 46 54 53 33 20 69 73 20  _ENABLE_FTS3 is 
0250: 64 65 66 69 6e 65 64 2c 20 6f 6d 69 74 20 74 68  defined, omit th
0260: 69 73 20 66 69 6c 65 2e 0a 69 66 63 61 70 61 62  is file..ifcapab
0270: 6c 65 20 21 66 74 73 33 20 7b 0a 20 20 66 69 6e  le !fts3 {.  fin
0280: 69 73 68 5f 74 65 73 74 0a 20 20 72 65 74 75 72  ish_test.  retur
0290: 6e 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  n.}..#----------
02a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
02b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
02c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
02d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a  ---------------.
02e0: 23 20 41 20 73 65 6c 66 2d 6a 6f 69 6e 2e 0a 23  # A self-join..#
02f0: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
0300: 20 31 2e 30 20 7b 0a 20 20 43 52 45 41 54 45 20   1.0 {.  CREATE 
0310: 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20 74 31  VIRTUAL TABLE t1
0320: 20 55 53 49 4e 47 20 66 74 73 33 28 61 2c 20 62   USING fts3(a, b
0330: 29 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  );.  INSERT INTO
0340: 20 74 31 20 56 41 4c 55 45 53 28 27 6f 6e 65 27   t1 VALUES('one'
0350: 2c 20 27 69 27 29 3b 0a 20 20 49 4e 53 45 52 54  , 'i');.  INSERT
0360: 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28   INTO t1 VALUES(
0370: 27 6f 6e 65 27 2c 20 27 69 69 27 29 3b 0a 20 20  'one', 'ii');.  
0380: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56  INSERT INTO t1 V
0390: 41 4c 55 45 53 28 27 74 77 6f 27 2c 20 27 69 27  ALUES('two', 'i'
03a0: 29 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  );.  INSERT INTO
03b0: 20 74 31 20 56 41 4c 55 45 53 28 27 74 77 6f 27   t1 VALUES('two'
03c0: 2c 20 27 69 69 27 29 3b 0a 7d 0a 0a 64 6f 5f 65  , 'ii');.}..do_e
03d0: 78 65 63 73 71 6c 5f 74 65 73 74 20 31 2e 31 20  xecsql_test 1.1 
03e0: 7b 0a 20 20 53 45 4c 45 43 54 20 61 2e 61 2c 20  {.  SELECT a.a, 
03f0: 62 2e 62 20 46 52 4f 4d 20 74 31 20 61 2c 20 74  b.b FROM t1 a, t
0400: 31 20 62 20 57 48 45 52 45 20 61 2e 74 31 20 4d  1 b WHERE a.t1 M
0410: 41 54 43 48 20 27 74 77 6f 27 20 41 4e 44 20 62  ATCH 'two' AND b
0420: 2e 74 31 20 4d 41 54 43 48 20 27 69 27 0a 7d 20  .t1 MATCH 'i'.} 
0430: 7b 74 77 6f 20 69 20 74 77 6f 20 69 20 74 77 6f  {two i two i two
0440: 20 69 20 74 77 6f 20 69 7d 0a 0a 23 2d 2d 2d 2d   i two i}..#----
0450: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0460: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0470: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0490: 2d 2d 2d 2d 2d 0a 23 20 46 54 53 20 74 61 62 6c  -----.# FTS tabl
04a0: 65 73 20 77 69 74 68 20 31 32 38 20 6f 72 20 6d  es with 128 or m
04b0: 6f 72 65 20 63 6f 6c 75 6d 6e 73 2e 0a 23 0a 70  ore columns..#.p
04c0: 72 6f 63 20 76 31 20 7b 76 7d 20 7b 0a 20 20 73  roc v1 {v} {.  s
04d0: 65 74 20 76 65 63 74 6f 72 20 5b 6c 69 73 74 20  et vector [list 
04e0: 61 20 62 20 63 20 64 20 65 20 66 20 67 20 68 5d  a b c d e f g h]
04f0: 0a 20 20 73 65 74 20 72 65 73 20 5b 6c 69 73 74  .  set res [list
0500: 5d 0a 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30  ].  for {set i 0
0510: 7d 20 7b 24 69 3c 38 7d 20 7b 69 6e 63 72 20 69  } {$i<8} {incr i
0520: 7d 20 7b 0a 20 20 20 20 69 66 20 7b 24 76 20 26  } {.    if {$v &
0530: 20 28 31 20 3c 3c 20 24 69 29 7d 20 7b 20 6c 61   (1 << $i)} { la
0540: 70 70 65 6e 64 20 72 65 73 20 5b 6c 69 6e 64 65  ppend res [linde
0550: 78 20 24 76 65 63 74 6f 72 20 24 69 5d 20 7d 0a  x $vector $i] }.
0560: 20 20 7d 0a 20 20 73 65 74 20 72 65 73 0a 7d 0a    }.  set res.}.
0570: 70 72 6f 63 20 76 32 20 7b 76 7d 20 7b 0a 20 20  proc v2 {v} {.  
0580: 73 65 74 20 76 65 63 74 6f 72 20 5b 6c 69 73 74  set vector [list
0590: 20 64 20 65 20 66 20 67 20 68 20 69 20 6a 20 6b   d e f g h i j k
05a0: 5d 0a 20 20 73 65 74 20 72 65 73 20 5b 6c 69 73  ].  set res [lis
05b0: 74 5d 0a 20 20 66 6f 72 20 7b 73 65 74 20 69 20  t].  for {set i 
05c0: 30 7d 20 7b 24 69 3c 38 7d 20 7b 69 6e 63 72 20  0} {$i<8} {incr 
05d0: 69 7d 20 7b 0a 20 20 20 20 69 66 20 7b 24 76 20  i} {.    if {$v 
05e0: 26 20 28 31 20 3c 3c 20 24 69 29 7d 20 7b 20 6c  & (1 << $i)} { l
05f0: 61 70 70 65 6e 64 20 72 65 73 20 5b 6c 69 6e 64  append res [lind
0600: 65 78 20 24 76 65 63 74 6f 72 20 24 69 5d 20 7d  ex $vector $i] }
0610: 0a 20 20 7d 0a 20 20 73 65 74 20 72 65 73 0a 7d  .  }.  set res.}
0620: 0a 64 62 20 66 75 6e 63 20 76 31 20 76 31 0a 64  .db func v1 v1.d
0630: 62 20 66 75 6e 63 20 76 32 20 76 32 0a 0a 64 6f  b func v2 v2..do
0640: 5f 74 65 73 74 20 32 2e 30 20 7b 0a 20 20 73 65  _test 2.0 {.  se
0650: 74 20 63 6f 6c 73 20 5b 6c 69 73 74 5d 0a 20 20  t cols [list].  
0660: 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24  for {set i 0} {$
0670: 69 3c 32 30 30 7d 20 7b 69 6e 63 72 20 69 7d 20  i<200} {incr i} 
0680: 7b 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 63 6f  {.    lappend co
0690: 6c 73 20 22 63 24 69 22 0a 20 20 7d 0a 20 20 65  ls "c$i".  }.  e
06a0: 78 65 63 73 71 6c 20 22 43 52 45 41 54 45 20 56  xecsql "CREATE V
06b0: 49 52 54 55 41 4c 20 54 41 42 4c 45 20 74 32 20  IRTUAL TABLE t2 
06c0: 55 53 49 4e 47 20 66 74 73 33 28 5b 6a 6f 69 6e  USING fts3([join
06d0: 20 24 63 6f 6c 73 20 2c 5d 29 22 0a 20 20 65 78   $cols ,])".  ex
06e0: 65 63 73 71 6c 20 7b 0a 20 20 20 20 57 49 54 48  ecsql {.    WITH
06f0: 20 64 61 74 61 28 69 29 20 41 53 20 28 0a 20 20   data(i) AS (.  
0700: 20 20 20 20 53 45 4c 45 43 54 20 31 20 55 4e 49      SELECT 1 UNI
0710: 4f 4e 20 41 4c 4c 20 53 45 4c 45 43 54 20 69 2b  ON ALL SELECT i+
0720: 31 20 46 52 4f 4d 20 64 61 74 61 20 57 48 45 52  1 FROM data WHER
0730: 45 20 69 3c 32 30 30 0a 20 20 20 20 29 0a 20 20  E i<200.    ).  
0740: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32    INSERT INTO t2
0750: 28 63 31 39 38 2c 20 63 31 39 39 29 20 53 45 4c  (c198, c199) SEL
0760: 45 43 54 20 76 31 28 69 29 2c 20 76 32 28 69 29  ECT v1(i), v2(i)
0770: 20 46 52 4f 4d 20 64 61 74 61 3b 0a 20 20 7d 0a   FROM data;.  }.
0780: 7d 20 7b 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  } {}.do_execsql_
0790: 74 65 73 74 20 32 2e 31 20 7b 0a 20 20 53 45 4c  test 2.1 {.  SEL
07a0: 45 43 54 20 72 6f 77 69 64 20 46 52 4f 4d 20 74  ECT rowid FROM t
07b0: 32 20 57 48 45 52 45 20 74 32 20 4d 41 54 43 48  2 WHERE t2 MATCH
07c0: 20 27 22 61 20 62 20 63 22 27 0a 7d 20 7b 0a 20   '"a b c"'.} {. 
07d0: 20 37 20 31 35 20 32 33 20 33 31 20 33 39 20 34   7 15 23 31 39 4
07e0: 37 20 35 35 20 36 33 20 37 31 20 37 39 20 38 37  7 55 63 71 79 87
07f0: 20 39 35 20 31 30 33 20 31 31 31 20 0a 20 20 31   95 103 111 .  1
0800: 31 39 20 31 32 37 20 31 33 35 20 31 34 33 20 31  19 127 135 143 1
0810: 35 31 20 31 35 39 20 31 36 37 20 31 37 35 20 31  51 159 167 175 1
0820: 38 33 20 31 39 31 20 31 39 39 0a 7d 0a 64 6f 5f  83 191 199.}.do_
0830: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 32  execsql_test 2.2
0840: 20 7b 0a 20 20 53 45 4c 45 43 54 20 72 6f 77 69   {.  SELECT rowi
0850: 64 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  d FROM t2 WHERE 
0860: 74 32 20 4d 41 54 43 48 20 27 22 67 20 68 20 69  t2 MATCH '"g h i
0870: 22 27 0a 7d 20 7b 0a 20 20 35 36 20 35 37 20 35  "'.} {.  56 57 5
0880: 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36 33  8 59 60 61 62 63
0890: 20 31 32 30 20 31 32 31 20 31 32 32 20 31 32 33   120 121 122 123
08a0: 20 31 32 34 20 0a 20 20 31 32 35 20 31 32 36 20   124 .  125 126 
08b0: 31 32 37 20 31 38 34 20 31 38 35 20 31 38 36 20  127 184 185 186 
08c0: 31 38 37 20 31 38 38 20 31 38 39 20 31 39 30 20  187 188 189 190 
08d0: 31 39 31 0a 7d 0a 64 6f 5f 65 78 65 63 73 71 6c  191.}.do_execsql
08e0: 5f 74 65 73 74 20 32 2e 33 20 7b 0a 20 20 53 45  _test 2.3 {.  SE
08f0: 4c 45 43 54 20 72 6f 77 69 64 20 46 52 4f 4d 20  LECT rowid FROM 
0900: 74 32 20 57 48 45 52 45 20 74 32 20 4d 41 54 43  t2 WHERE t2 MATC
0910: 48 20 27 22 69 20 68 22 27 0a 7d 20 7b 0a 7d 0a  H '"i h"'.} {.}.
0920: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
0930: 32 2e 34 20 7b 0a 20 20 53 45 4c 45 43 54 20 72  2.4 {.  SELECT r
0940: 6f 77 69 64 20 46 52 4f 4d 20 74 32 20 57 48 45  owid FROM t2 WHE
0950: 52 45 20 74 32 20 4d 41 54 43 48 20 27 22 66 20  RE t2 MATCH '"f 
0960: 65 22 27 0a 7d 20 7b 0a 7d 0a 64 6f 5f 65 78 65  e"'.} {.}.do_exe
0970: 63 73 71 6c 5f 74 65 73 74 20 32 2e 35 20 7b 0a  csql_test 2.5 {.
0980: 20 20 53 45 4c 45 43 54 20 72 6f 77 69 64 20 46    SELECT rowid F
0990: 52 4f 4d 20 74 32 20 57 48 45 52 45 20 74 32 20  ROM t2 WHERE t2 
09a0: 4d 41 54 43 48 20 27 22 65 20 66 22 27 0a 7d 20  MATCH '"e f"'.} 
09b0: 7b 0a 20 20 36 20 37 20 31 34 20 31 35 20 32 32  {.  6 7 14 15 22
09c0: 20 32 33 20 33 30 20 33 31 20 33 38 20 33 39 20   23 30 31 38 39 
09d0: 34 36 20 34 37 20 34 38 20 34 39 20 35 30 20 35  46 47 48 49 50 5
09e0: 31 20 35 32 20 35 33 20 35 34 20 35 35 20 35 36  1 52 53 54 55 56
09f0: 20 0a 20 20 35 37 20 35 38 20 35 39 20 36 30 20   .  57 58 59 60 
0a00: 36 31 20 36 32 20 36 33 20 37 30 20 37 31 20 37  61 62 63 70 71 7
0a10: 38 20 37 39 20 38 36 20 38 37 20 39 34 20 39 35  8 79 86 87 94 95
0a20: 20 31 30 32 20 31 30 33 20 31 31 30 20 0a 20 20   102 103 110 .  
0a30: 31 31 31 20 31 31 32 20 31 31 33 20 31 31 34 20  111 112 113 114 
0a40: 31 31 35 20 31 31 36 20 31 31 37 20 31 31 38 20  115 116 117 118 
0a50: 31 31 39 20 31 32 30 20 31 32 31 20 31 32 32 20  119 120 121 122 
0a60: 31 32 33 20 31 32 34 20 31 32 35 20 31 32 36 20  123 124 125 126 
0a70: 31 32 37 0a 20 20 31 33 34 20 31 33 35 20 31 34  127.  134 135 14
0a80: 32 20 31 34 33 20 31 35 30 20 31 35 31 20 31 35  2 143 150 151 15
0a90: 38 20 31 35 39 20 31 36 36 20 31 36 37 20 31 37  8 159 166 167 17
0aa0: 34 20 31 37 35 20 31 37 36 20 31 37 37 20 31 37  4 175 176 177 17
0ab0: 38 20 31 37 39 20 31 38 30 20 0a 20 20 31 38 31  8 179 180 .  181
0ac0: 20 31 38 32 20 31 38 33 20 31 38 34 20 31 38 35   182 183 184 185
0ad0: 20 31 38 36 20 31 38 37 20 31 38 38 20 31 38 39   186 187 188 189
0ae0: 20 31 39 30 20 31 39 31 20 31 39 38 20 31 39 39   190 191 198 199
0af0: 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .}..#-----------
0b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0b30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23  --------------.#
0b40: 20 52 61 6e 67 65 20 63 6f 6e 73 74 72 61 69 6e   Range constrain
0b50: 74 73 20 6f 6e 20 74 68 65 20 64 6f 63 69 64 20  ts on the docid 
0b60: 75 73 69 6e 67 20 6e 6f 6e 2d 69 6e 74 65 67 65  using non-intege
0b70: 72 20 76 61 6c 75 65 73 2e 0a 23 0a 64 6f 5f 65  r values..#.do_e
0b80: 78 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 36 20  xecsql_test 2.6 
0b90: 7b 0a 20 20 53 45 4c 45 43 54 20 72 6f 77 69 64  {.  SELECT rowid
0ba0: 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20 74   FROM t2 WHERE t
0bb0: 32 20 4d 41 54 43 48 20 27 65 27 20 41 4e 44 20  2 MATCH 'e' AND 
0bc0: 72 6f 77 69 64 20 42 45 54 57 45 45 4e 20 4e 55  rowid BETWEEN NU
0bd0: 4c 4c 20 41 4e 44 20 34 35 3b 0a 7d 20 7b 7d 0a  LL AND 45;.} {}.
0be0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
0bf0: 32 2e 37 20 7b 0a 20 20 53 45 4c 45 43 54 20 72  2.7 {.  SELECT r
0c00: 6f 77 69 64 20 46 52 4f 4d 20 74 32 20 57 48 45  owid FROM t2 WHE
0c10: 52 45 20 74 32 20 4d 41 54 43 48 20 27 65 27 20  RE t2 MATCH 'e' 
0c20: 41 4e 44 20 72 6f 77 69 64 20 42 45 54 57 45 45  AND rowid BETWEE
0c30: 4e 20 31 31 2e 35 20 41 4e 44 20 34 38 2e 32 3b  N 11.5 AND 48.2;
0c40: 0a 7d 20 7b 0a 20 20 31 34 20 31 35 20 31 36 20  .} {.  14 15 16 
0c50: 31 37 20 31 38 20 31 39 20 32 30 20 32 31 20 32  17 18 19 20 21 2
0c60: 32 20 32 33 20 32 34 20 32 35 20 32 36 20 32 37  2 23 24 25 26 27
0c70: 20 32 38 20 0a 20 20 32 39 20 33 30 20 33 31 20   28 .  29 30 31 
0c80: 33 34 20 33 35 20 33 38 20 33 39 20 34 32 20 34  34 35 38 39 42 4
0c90: 33 20 34 36 20 34 37 20 34 38 0a 7d 0a 64 6f 5f  3 46 47 48.}.do_
0ca0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 38  execsql_test 2.8
0cb0: 20 7b 0a 20 20 53 45 4c 45 43 54 20 72 6f 77 69   {.  SELECT rowi
0cc0: 64 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  d FROM t2 WHERE 
0cd0: 74 32 20 4d 41 54 43 48 20 27 65 27 20 41 4e 44  t2 MATCH 'e' AND
0ce0: 20 72 6f 77 69 64 20 42 45 54 57 45 45 4e 20 27   rowid BETWEEN '
0cf0: 31 31 2e 35 27 20 41 4e 44 20 27 34 38 2e 32 27  11.5' AND '48.2'
0d00: 3b 0a 7d 20 7b 0a 20 20 31 34 20 31 35 20 31 36  ;.} {.  14 15 16
0d10: 20 31 37 20 31 38 20 31 39 20 32 30 20 32 31 20   17 18 19 20 21 
0d20: 32 32 20 32 33 20 32 34 20 32 35 20 32 36 20 32  22 23 24 25 26 2
0d30: 37 20 32 38 20 0a 20 20 32 39 20 33 30 20 33 31  7 28 .  29 30 31
0d40: 20 33 34 20 33 35 20 33 38 20 33 39 20 34 32 20   34 35 38 39 42 
0d50: 34 33 20 34 36 20 34 37 20 34 38 0a 7d 0a 0a 23  43 46 47 48.}..#
0d60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0d70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0d80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0d90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0da0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 50 68 72 61  ---------.# Phra
0db0: 73 65 20 71 75 65 72 79 20 74 65 73 74 73 2e 20  se query tests. 
0dc0: 0a 23 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  .#.do_execsql_te
0dd0: 73 74 20 33 2e 31 2e 31 20 7b 0a 20 20 43 52 45  st 3.1.1 {.  CRE
0de0: 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c  ATE VIRTUAL TABL
0df0: 45 20 74 33 20 55 53 49 4e 47 20 66 74 73 33 3b  E t3 USING fts3;
0e00: 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74  .  INSERT INTO t
0e10: 33 20 56 41 4c 55 45 53 28 27 61 20 62 20 63 27  3 VALUES('a b c'
0e20: 29 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  );.  INSERT INTO
0e30: 20 74 33 20 56 41 4c 55 45 53 28 27 64 20 65 20   t3 VALUES('d e 
0e40: 66 27 29 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e  f');.  INSERT IN
0e50: 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27 61 20  TO t3 VALUES('a 
0e60: 62 20 64 27 29 3b 0a 20 20 49 4e 53 45 52 54 20  b d');.  INSERT 
0e70: 49 4e 54 4f 20 74 33 20 56 41 4c 55 45 53 28 27  INTO t3 VALUES('
0e80: 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20  1 2 3 4 5 6 7 8 
0e90: 39 20 31 30 20 31 31 27 29 3b 0a 7d 0a 64 6f 5f  9 10 11');.}.do_
0ea0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 33 2e 31  execsql_test 3.1
0eb0: 2e 32 20 7b 0a 20 20 53 45 4c 45 43 54 20 2a 20  .2 {.  SELECT * 
0ec0: 46 52 4f 4d 20 74 33 20 57 48 45 52 45 20 74 33  FROM t3 WHERE t3
0ed0: 20 4d 41 54 43 48 20 27 22 61 20 62 20 78 20 79   MATCH '"a b x y
0ee0: 22 27 20 4f 52 44 45 52 20 42 59 20 64 6f 63 69  "' ORDER BY doci
0ef0: 64 20 44 45 53 43 0a 7d 0a 64 6f 5f 65 78 65 63  d DESC.}.do_exec
0f00: 73 71 6c 5f 74 65 73 74 20 33 2e 31 2e 33 20 7b  sql_test 3.1.3 {
0f10: 0a 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  .  SELECT * FROM
0f20: 20 74 33 20 57 48 45 52 45 20 74 33 20 4d 41 54   t3 WHERE t3 MAT
0f30: 43 48 20 27 22 61 20 62 20 63 22 20 4f 52 20 22  CH '"a b c" OR "
0f40: 61 20 62 20 78 20 79 22 27 20 4f 52 44 45 52 20  a b x y"' ORDER 
0f50: 42 59 20 64 6f 63 69 64 20 44 45 53 43 0a 7d 20  BY docid DESC.} 
0f60: 7b 7b 61 20 62 20 63 7d 7d 0a 64 6f 5f 65 78 65  {{a b c}}.do_exe
0f70: 63 73 71 6c 5f 74 65 73 74 20 33 2e 31 2e 34 20  csql_test 3.1.4 
0f80: 7b 0a 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f  {.  SELECT * FRO
0f90: 4d 20 74 33 20 57 48 45 52 45 20 74 33 20 4d 41  M t3 WHERE t3 MA
0fa0: 54 43 48 20 27 22 61 2a 20 62 2a 20 78 2a 20 61  TCH '"a* b* x* a
0fb0: 2a 22 27 0a 7d 0a 64 6f 5f 65 78 65 63 73 71 6c  *"'.}.do_execsql
0fc0: 5f 74 65 73 74 20 33 2e 31 2e 35 20 7b 0a 20 20  _test 3.1.5 {.  
0fd0: 53 45 4c 45 43 54 20 72 6f 77 69 64 20 46 52 4f  SELECT rowid FRO
0fe0: 4d 20 74 33 20 57 48 45 52 45 20 74 33 20 4d 41  M t3 WHERE t3 MA
0ff0: 54 43 48 20 27 22 32 20 33 20 34 20 35 20 36 20  TCH '"2 3 4 5 6 
1000: 37 20 38 20 39 22 27 0a 7d 20 7b 34 7d 0a 0a 23  7 8 9"'.} {4}..#
1010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 0a 72 65 73 65  ---------.#.rese
1060: 74 5f 64 62 0a 69 66 63 61 70 61 62 6c 65 20 66  t_db.ifcapable f
1070: 74 73 34 5f 64 65 66 65 72 72 65 64 20 7b 0a 20  ts4_deferred {. 
1080: 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74   do_execsql_test
1090: 20 34 2e 30 20 7b 0a 20 20 20 20 50 52 41 47 4d   4.0 {.    PRAGM
10a0: 41 20 70 61 67 65 5f 73 69 7a 65 20 3d 20 35 31  A page_size = 51
10b0: 32 3b 0a 20 20 20 20 43 52 45 41 54 45 20 56 49  2;.    CREATE VI
10c0: 52 54 55 41 4c 20 54 41 42 4c 45 20 74 34 20 55  RTUAL TABLE t4 U
10d0: 53 49 4e 47 20 66 74 73 34 3b 0a 20 20 20 20 57  SING fts4;.    W
10e0: 49 54 48 20 73 28 69 29 20 41 53 20 28 20 53 45  ITH s(i) AS ( SE
10f0: 4c 45 43 54 20 31 20 55 4e 49 4f 4e 20 41 4c 4c  LECT 1 UNION ALL
1100: 20 53 45 4c 45 43 54 20 69 2b 31 20 46 52 4f 4d   SELECT i+1 FROM
1110: 20 73 20 57 48 45 52 45 20 69 3c 38 30 30 30 20   s WHERE i<8000 
1120: 29 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ).    INSERT INT
1130: 4f 20 74 34 20 53 45 4c 45 43 54 20 27 61 20 62  O t4 SELECT 'a b
1140: 20 63 20 61 20 62 20 63 20 61 20 62 20 63 27 20   c a b c a b c' 
1150: 46 52 4f 4d 20 73 3b 0a 20 20 7d 0a 20 20 64 6f  FROM s;.  }.  do
1160: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 34 2e  _execsql_test 4.
1170: 31 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 63  1 {.    SELECT c
1180: 6f 75 6e 74 28 2a 29 20 46 52 4f 4d 20 74 34 20  ount(*) FROM t4 
1190: 57 48 45 52 45 20 74 34 20 4d 41 54 43 48 20 27  WHERE t4 MATCH '
11a0: 22 61 20 62 20 63 22 20 4f 52 20 22 63 20 61 20  "a b c" OR "c a 
11b0: 62 22 27 0a 20 20 7d 20 7b 38 30 30 30 7d 0a 20  b"'.  } {8000}. 
11c0: 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74   do_execsql_test
11d0: 20 34 2e 32 20 7b 0a 20 20 20 20 53 45 4c 45 43   4.2 {.    SELEC
11e0: 54 20 71 75 6f 74 65 28 76 61 6c 75 65 29 20 66  T quote(value) f
11f0: 72 6f 6d 20 74 34 5f 73 74 61 74 20 77 68 65 72  rom t4_stat wher
1200: 65 20 69 64 3d 30 0a 20 20 7d 20 7b 58 27 43 30  e id=0.  } {X'C0
1210: 33 45 43 30 42 32 30 34 43 30 41 36 30 38 27 7d  3EC0B204C0A608'}
1220: 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  .  do_execsql_te
1230: 73 74 20 34 2e 33 20 7b 0a 20 20 20 20 55 50 44  st 4.3 {.    UPD
1240: 41 54 45 20 74 34 5f 73 74 61 74 20 53 45 54 20  ATE t4_stat SET 
1250: 76 61 6c 75 65 20 3d 20 58 27 43 30 33 45 43 30  value = X'C03EC0
1260: 42 32 30 34 43 30 41 36 30 38 30 30 27 20 57 48  B204C0A60800' WH
1270: 45 52 45 20 69 64 3d 30 3b 0a 20 20 7d 0a 20 20  ERE id=0;.  }.  
1280: 64 6f 5f 63 61 74 63 68 73 71 6c 5f 74 65 73 74  do_catchsql_test
1290: 20 34 2e 34 20 7b 0a 20 20 20 20 53 45 4c 45 43   4.4 {.    SELEC
12a0: 54 20 63 6f 75 6e 74 28 2a 29 20 46 52 4f 4d 20  T count(*) FROM 
12b0: 74 34 20 57 48 45 52 45 20 74 34 20 4d 41 54 43  t4 WHERE t4 MATC
12c0: 48 20 27 22 61 20 62 20 63 22 20 4f 52 20 22 63  H '"a b c" OR "c
12d0: 20 61 20 62 22 27 0a 20 20 7d 20 7b 31 20 7b 64   a b"'.  } {1 {d
12e0: 61 74 61 62 61 73 65 20 64 69 73 6b 20 69 6d 61  atabase disk ima
12f0: 67 65 20 69 73 20 6d 61 6c 66 6f 72 6d 65 64 7d  ge is malformed}
1300: 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74  }.  do_execsql_t
1310: 65 73 74 20 34 2e 35 20 7b 0a 20 20 20 20 55 50  est 4.5 {.    UP
1320: 44 41 54 45 20 74 34 5f 73 74 61 74 20 53 45 54  DATE t4_stat SET
1330: 20 76 61 6c 75 65 20 3d 20 58 27 30 30 43 30 33   value = X'00C03
1340: 45 43 30 42 32 30 34 43 30 41 36 30 38 27 20 57  EC0B204C0A608' W
1350: 48 45 52 45 20 69 64 3d 30 3b 0a 20 20 7d 0a 20  HERE id=0;.  }. 
1360: 20 64 6f 5f 63 61 74 63 68 73 71 6c 5f 74 65 73   do_catchsql_tes
1370: 74 20 34 2e 36 20 7b 0a 20 20 20 20 53 45 4c 45  t 4.6 {.    SELE
1380: 43 54 20 63 6f 75 6e 74 28 2a 29 20 46 52 4f 4d  CT count(*) FROM
1390: 20 74 34 20 57 48 45 52 45 20 74 34 20 4d 41 54   t4 WHERE t4 MAT
13a0: 43 48 20 27 22 61 20 62 20 63 22 20 4f 52 20 22  CH '"a b c" OR "
13b0: 63 20 61 20 62 22 27 0a 20 20 7d 20 7b 31 20 7b  c a b"'.  } {1 {
13c0: 64 61 74 61 62 61 73 65 20 64 69 73 6b 20 69 6d  database disk im
13d0: 61 67 65 20 69 73 20 6d 61 6c 66 6f 72 6d 65 64  age is malformed
13e0: 7d 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d  }}.}..#---------
13f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1420: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1430: 0a 23 0a 72 65 73 65 74 5f 64 62 0a 64 6f 5f 65  .#.reset_db.do_e
1440: 78 65 63 73 71 6c 5f 74 65 73 74 20 35 2e 30 20  xecsql_test 5.0 
1450: 7b 0a 20 20 43 52 45 41 54 45 20 56 49 52 54 55  {.  CREATE VIRTU
1460: 41 4c 20 54 41 42 4c 45 20 74 35 20 55 53 49 4e  AL TABLE t5 USIN
1470: 47 20 66 74 73 34 3b 0a 20 20 49 4e 53 45 52 54  G fts4;.  INSERT
1480: 20 49 4e 54 4f 20 74 35 20 56 41 4c 55 45 53 28   INTO t5 VALUES(
1490: 27 61 20 78 20 78 20 78 20 78 20 62 20 78 20 78  'a x x x x b x x
14a0: 20 78 20 78 20 63 27 29 3b 0a 20 20 49 4e 53 45   x x c');.  INSE
14b0: 52 54 20 49 4e 54 4f 20 74 35 20 56 41 4c 55 45  RT INTO t5 VALUE
14c0: 53 28 27 61 20 78 20 78 20 78 20 78 20 62 20 78  S('a x x x x b x
14d0: 20 78 20 78 20 78 20 63 27 29 3b 0a 20 20 49 4e   x x x c');.  IN
14e0: 53 45 52 54 20 49 4e 54 4f 20 74 35 20 56 41 4c  SERT INTO t5 VAL
14f0: 55 45 53 28 27 61 20 78 20 78 20 78 20 78 20 62  UES('a x x x x b
1500: 20 78 20 78 20 78 20 78 20 63 27 29 3b 0a 7d 0a   x x x x c');.}.
1510: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
1520: 35 2e 31 20 7b 0a 20 20 53 45 4c 45 43 54 20 72  5.1 {.  SELECT r
1530: 6f 77 69 64 20 46 52 4f 4d 20 74 35 20 57 48 45  owid FROM t5 WHE
1540: 52 45 20 74 35 20 4d 41 54 43 48 20 27 61 20 4e  RE t5 MATCH 'a N
1550: 45 41 52 2f 34 20 62 20 4e 45 41 52 2f 34 20 63  EAR/4 b NEAR/4 c
1560: 27 0a 7d 20 7b 31 20 32 20 33 7d 0a 64 6f 5f 65  '.} {1 2 3}.do_e
1570: 78 65 63 73 71 6c 5f 74 65 73 74 20 35 2e 32 20  xecsql_test 5.2 
1580: 7b 0a 20 20 53 45 4c 45 43 54 20 72 6f 77 69 64  {.  SELECT rowid
1590: 20 46 52 4f 4d 20 74 35 20 57 48 45 52 45 20 74   FROM t5 WHERE t
15a0: 35 20 4d 41 54 43 48 20 27 61 20 4e 45 41 52 2f  5 MATCH 'a NEAR/
15b0: 33 20 62 20 4e 45 41 52 2f 34 20 63 27 0a 7d 20  3 b NEAR/4 c'.} 
15c0: 7b 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  {}.do_execsql_te
15d0: 73 74 20 35 2e 33 20 7b 0a 20 20 53 45 4c 45 43  st 5.3 {.  SELEC
15e0: 54 20 72 6f 77 69 64 20 46 52 4f 4d 20 74 35 20  T rowid FROM t5 
15f0: 57 48 45 52 45 20 74 35 20 4d 41 54 43 48 20 27  WHERE t5 MATCH '
1600: 61 20 4e 45 41 52 2f 34 20 62 20 4e 45 41 52 2f  a NEAR/4 b NEAR/
1610: 33 20 63 27 0a 7d 20 7b 7d 0a 64 6f 5f 65 78 65  3 c'.} {}.do_exe
1620: 63 73 71 6c 5f 74 65 73 74 20 35 2e 34 20 7b 0a  csql_test 5.4 {.
1630: 20 20 53 45 4c 45 43 54 20 72 6f 77 69 64 20 46    SELECT rowid F
1640: 52 4f 4d 20 74 35 20 57 48 45 52 45 20 74 35 20  ROM t5 WHERE t5 
1650: 4d 41 54 43 48 20 27 79 20 4e 45 41 52 2f 34 20  MATCH 'y NEAR/4 
1660: 62 20 4e 45 41 52 2f 34 20 63 27 0a 7d 20 7b 7d  b NEAR/4 c'.} {}
1670: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
1680: 20 35 2e 35 20 7b 0a 20 20 53 45 4c 45 43 54 20   5.5 {.  SELECT 
1690: 72 6f 77 69 64 20 46 52 4f 4d 20 74 35 20 57 48  rowid FROM t5 WH
16a0: 45 52 45 20 74 35 20 4d 41 54 43 48 20 27 78 20  ERE t5 MATCH 'x 
16b0: 4f 52 20 61 20 4e 45 41 52 2f 33 20 62 20 4e 45  OR a NEAR/3 b NE
16c0: 41 52 2f 33 20 63 27 0a 7d 20 7b 31 20 32 20 33  AR/3 c'.} {1 2 3
16d0: 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  }.do_execsql_tes
16e0: 74 20 35 2e 35 20 7b 0a 20 20 53 45 4c 45 43 54  t 5.5 {.  SELECT
16f0: 20 72 6f 77 69 64 20 46 52 4f 4d 20 74 35 20 57   rowid FROM t5 W
1700: 48 45 52 45 20 74 35 20 4d 41 54 43 48 20 27 78  HERE t5 MATCH 'x
1710: 20 4f 52 20 79 20 4e 45 41 52 2f 33 20 62 20 4e   OR y NEAR/3 b N
1720: 45 41 52 2f 33 20 63 27 0a 7d 20 7b 31 20 32 20  EAR/3 c'.} {1 2 
1730: 33 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  3}..#-----------
1740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1770: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23  --------------.#
1780: 0a 72 65 73 65 74 5f 64 62 0a 64 6f 5f 65 78 65  .reset_db.do_exe
1790: 63 73 71 6c 5f 74 65 73 74 20 36 2e 30 20 7b 0a  csql_test 6.0 {.
17a0: 20 20 43 52 45 41 54 45 20 56 49 52 54 55 41 4c    CREATE VIRTUAL
17b0: 20 54 41 42 4c 45 20 74 36 20 55 53 49 4e 47 20   TABLE t6 USING 
17c0: 66 74 73 34 3b 0a 0a 20 20 42 45 47 49 4e 3b 0a  fts4;..  BEGIN;.
17d0: 20 20 57 49 54 48 20 73 28 69 29 20 41 53 20 28    WITH s(i) AS (
17e0: 53 45 4c 45 43 54 20 31 20 55 4e 49 4f 4e 20 41  SELECT 1 UNION A
17f0: 4c 4c 20 53 45 4c 45 43 54 20 69 2b 31 20 46 52  LL SELECT i+1 FR
1800: 4f 4d 20 73 20 57 48 45 52 45 20 69 3c 35 30 30  OM s WHERE i<500
1810: 30 30 29 0a 20 20 20 20 49 4e 53 45 52 54 20 49  00).    INSERT I
1820: 4e 54 4f 20 74 36 20 53 45 4c 45 43 54 20 27 78  NTO t6 SELECT 'x
1830: 20 78 20 78 20 78 20 78 20 78 20 78 20 78 20 78   x x x x x x x x
1840: 20 78 20 78 27 20 46 52 4f 4d 20 73 3b 0a 0a 20   x x' FROM s;.. 
1850: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 36 20   INSERT INTO t6 
1860: 56 41 4c 55 45 53 28 27 78 20 78 20 78 20 78 20  VALUES('x x x x 
1870: 78 20 78 20 78 20 78 20 78 20 78 20 78 20 41 27  x x x x x x x A'
1880: 29 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  );.  INSERT INTO
1890: 20 74 36 20 56 41 4c 55 45 53 28 27 78 20 78 20   t6 VALUES('x x 
18a0: 78 20 78 20 78 20 78 20 78 20 78 20 78 20 78 20  x x x x x x x x 
18b0: 78 20 42 27 29 3b 0a 20 20 49 4e 53 45 52 54 20  x B');.  INSERT 
18c0: 49 4e 54 4f 20 74 36 20 56 41 4c 55 45 53 28 27  INTO t6 VALUES('
18d0: 78 20 78 20 78 20 78 20 78 20 78 20 78 20 78 20  x x x x x x x x 
18e0: 78 20 78 20 78 20 41 27 29 3b 0a 20 20 49 4e 53  x x x A');.  INS
18f0: 45 52 54 20 49 4e 54 4f 20 74 36 20 56 41 4c 55  ERT INTO t6 VALU
1900: 45 53 28 27 78 20 78 20 78 20 78 20 78 20 78 20  ES('x x x x x x 
1910: 78 20 78 20 78 20 78 20 78 20 42 27 29 3b 0a 0a  x x x x x B');..
1920: 20 20 57 49 54 48 20 73 28 69 29 20 41 53 20 28    WITH s(i) AS (
1930: 53 45 4c 45 43 54 20 31 20 55 4e 49 4f 4e 20 41  SELECT 1 UNION A
1940: 4c 4c 20 53 45 4c 45 43 54 20 69 2b 31 20 46 52  LL SELECT i+1 FR
1950: 4f 4d 20 73 20 57 48 45 52 45 20 69 3c 35 30 30  OM s WHERE i<500
1960: 30 30 29 0a 20 20 20 20 49 4e 53 45 52 54 20 49  00).    INSERT I
1970: 4e 54 4f 20 74 36 20 53 45 4c 45 43 54 20 27 78  NTO t6 SELECT 'x
1980: 20 78 20 78 20 78 20 78 20 78 20 78 20 78 20 78   x x x x x x x x
1990: 20 78 20 78 27 20 46 52 4f 4d 20 73 3b 0a 20 20   x x' FROM s;.  
19a0: 43 4f 4d 4d 49 54 3b 0a 7d 0a 64 6f 5f 65 78 65  COMMIT;.}.do_exe
19b0: 63 73 71 6c 5f 74 65 73 74 20 36 2e 31 20 7b 0a  csql_test 6.1 {.
19c0: 20 20 53 45 4c 45 43 54 20 72 6f 77 69 64 20 46    SELECT rowid F
19d0: 52 4f 4d 20 74 36 20 57 48 45 52 45 20 74 36 20  ROM t6 WHERE t6 
19e0: 4d 41 54 43 48 20 27 62 20 4f 52 20 22 78 20 61  MATCH 'b OR "x a
19f0: 22 27 0a 7d 20 7b 35 30 30 30 31 20 35 30 30 30  "'.} {50001 5000
1a00: 32 20 35 30 30 30 33 20 35 30 30 30 34 7d 0a 0a  2 50003 50004}..
1a10: 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a           .finish_test.