/ Hex Artifact Content
Login

Artifact 57c7012a7919889048947addae10e0613df45529:


0000: 23 20 32 30 31 36 20 4a 61 6e 20 31 36 0a 23 0a  # 2016 Jan 16.#.
0010: 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69 73  # The author dis
0020: 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68 74  claims copyright
0030: 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65 20   to this source 
0040: 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65 20  code.  In place 
0050: 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f 74  of.# a legal not
0060: 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20 62  ice, here is a b
0070: 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20 20  lessing:.#.#    
0080: 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64 20  May you do good 
0090: 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23 20  and not evil..# 
00a0: 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64 20     May you find 
00b0: 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72 20  forgiveness for 
00c0: 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f 72  yourself and for
00d0: 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20 20  give others..#  
00e0: 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65 20    May you share 
00f0: 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74 61  freely, never ta
0100: 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 79  king more than y
0110: 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a 2a  ou 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 0a 23 20 54 68 69 73 20 66 69 6c  *****.# This fil
0170: 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67  e implements reg
0180: 72 65 73 73 69 6f 6e 20 74 65 73 74 73 20 66 6f  ression tests fo
0190: 72 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79  r SQLite library
01a0: 2e 20 20 54 68 65 0a 23 20 66 6f 63 75 73 20 6f  .  The.# focus o
01b0: 66 20 74 68 69 73 20 73 63 72 69 70 74 20 69 73  f this script is
01c0: 20 74 65 73 74 69 6e 67 20 74 68 65 20 46 54 53   testing the FTS
01d0: 35 20 6d 6f 64 75 6c 65 2e 0a 23 0a 0a 73 6f 75  5 module..#..sou
01e0: 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b  rce [file join [
01f0: 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 6e  file dirname [in
0200: 66 6f 20 73 63 72 69 70 74 5d 5d 20 66 74 73 35  fo script]] fts5
0210: 5f 63 6f 6d 6d 6f 6e 2e 74 63 6c 5d 0a 73 65 74  _common.tcl].set
0220: 20 74 65 73 74 70 72 65 66 69 78 20 66 74 73 35   testprefix fts5
0230: 75 70 64 61 74 65 0a 0a 23 20 49 66 20 53 51 4c  update..# If SQL
0240: 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 35 20  ITE_ENABLE_FTS5 
0250: 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2c 20  is not defined, 
0260: 6f 6d 69 74 20 74 68 69 73 20 66 69 6c 65 2e 0a  omit this file..
0270: 69 66 63 61 70 61 62 6c 65 20 21 66 74 73 35 20  ifcapable !fts5 
0280: 7b 0a 20 20 66 69 6e 69 73 68 5f 74 65 73 74 0a  {.  finish_test.
0290: 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 73 65 74 20    return.}..set 
02a0: 64 6f 63 73 20 7b 0a 20 20 22 65 69 67 68 74 20  docs {.  "eight 
02b0: 7a 65 72 6f 20 69 76 20 65 69 67 68 74 20 37 22  zero iv eight 7"
02c0: 20 20 20 20 20 20 20 20 20 20 20 20 22 69 78 20              "ix 
02d0: 6f 6e 65 20 38 20 6f 6e 65 20 74 68 72 65 65 20  one 8 one three 
02e0: 69 69 20 6f 6e 65 22 20 20 20 20 20 20 20 20 0a  ii one"        .
02f0: 20 20 22 31 20 39 20 39 20 74 68 72 65 65 20 76    "1 9 9 three v
0300: 69 69 69 22 20 20 20 20 20 20 20 20 20 20 20 20  iii"            
0310: 20 20 20 20 20 22 35 20 7a 65 72 6f 20 69 69 20       "5 zero ii 
0320: 36 20 6e 69 6e 65 20 69 78 20 33 22 20 20 20 20  6 nine ix 3"    
0330: 20 20 20 20 20 20 20 20 0a 20 20 22 33 20 7a 65          .  "3 ze
0340: 72 6f 20 35 20 32 20 73 65 76 65 6e 20 6e 69 6e  ro 5 2 seven nin
0350: 65 22 20 20 20 20 20 20 20 20 20 20 20 20 22 74  e"            "t
0360: 77 6f 20 65 69 67 68 74 20 76 69 69 69 20 65 69  wo eight viii ei
0370: 67 68 74 20 31 22 20 20 20 20 20 20 20 20 20 20  ght 1"          
0380: 20 0a 20 20 22 34 20 73 69 78 20 74 77 6f 20 35   .  "4 six two 5
0390: 20 39 20 76 69 69 22 20 20 20 20 20 20 20 20 20   9 vii"         
03a0: 20 20 20 20 20 20 20 22 76 69 69 69 20 69 69 20         "viii ii 
03b0: 66 6f 75 72 20 38 20 69 20 69 20 69 76 22 20 20  four 8 i i iv"  
03c0: 20 20 20 20 20 20 20 20 20 20 0a 20 20 22 76 69            .  "vi
03d0: 69 20 30 20 69 76 20 73 65 76 65 6e 20 37 20 76  i 0 iv seven 7 v
03e0: 69 69 69 22 20 20 20 20 20 20 20 20 20 20 20 20  iii"            
03f0: 22 66 69 76 65 20 31 20 6e 69 6e 65 20 76 69 20  "five 1 nine vi 
0400: 73 65 76 65 6e 22 20 20 20 20 20 20 20 20 20 20  seven"          
0410: 20 20 20 0a 20 20 22 31 20 7a 65 72 6f 20 7a 65     .  "1 zero ze
0420: 72 6f 20 69 69 69 20 31 22 20 20 20 20 20 20 20  ro iii 1"       
0430: 20 20 20 20 20 20 20 20 20 22 6f 6e 65 20 6f 6e           "one on
0440: 65 20 73 69 78 20 36 20 6e 69 6e 65 20 73 65 76  e six 6 nine sev
0450: 65 6e 22 20 20 20 20 20 20 20 20 20 0a 20 20 22  en"         .  "
0460: 6f 6e 65 20 76 20 34 20 7a 65 72 6f 20 34 20 69  one v 4 zero 4 i
0470: 69 69 20 69 69 22 20 20 20 20 20 20 20 20 20 20  ii ii"          
0480: 20 20 22 32 20 33 20 65 69 67 68 74 20 73 69 78    "2 3 eight six
0490: 20 69 78 22 20 20 20 20 20 20 20 20 20 20 20 20   ix"            
04a0: 20 20 20 20 20 0a 20 20 22 73 69 78 20 69 76 20       .  "six iv 
04b0: 37 20 74 68 72 65 65 20 35 22 20 20 20 20 20 20  7 three 5"      
04c0: 20 20 20 20 20 20 20 20 20 20 20 22 69 78 20 7a             "ix z
04d0: 65 72 6f 20 30 20 38 20 69 69 20 37 20 33 22 20  ero 0 8 ii 7 3" 
04e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20                . 
04f0: 20 22 66 6f 75 72 20 73 69 78 20 6e 69 6e 65 20   "four six nine 
0500: 32 20 76 69 69 20 33 22 20 20 20 20 20 20 20 20  2 vii 3"        
0510: 20 20 20 20 22 66 69 76 65 20 76 69 69 69 20 35      "five viii 5
0520: 20 38 20 30 20 37 22 20 20 20 20 20 20 20 20 20   8 0 7"         
0530: 20 20 20 20 20 20 20 0a 7d 0a 0a 66 6f 72 65 61         .}..forea
0540: 63 68 5f 64 65 74 61 69 6c 5f 6d 6f 64 65 20 24  ch_detail_mode $
0550: 3a 3a 74 65 73 74 70 72 65 66 69 78 20 7b 0a 0a  ::testprefix {..
0560: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
0570: 31 2e 30 20 7b 0a 20 20 43 52 45 41 54 45 20 56  1.0 {.  CREATE V
0580: 49 52 54 55 41 4c 20 54 41 42 4c 45 20 74 31 20  IRTUAL TABLE t1 
0590: 55 53 49 4e 47 20 66 74 73 35 28 61 2c 20 62 2c  USING fts5(a, b,
05a0: 20 64 65 74 61 69 6c 3d 25 44 45 54 41 49 4c 25   detail=%DETAIL%
05b0: 29 3b 0a 7d 20 7b 7d 0a 0a 64 6f 5f 74 65 73 74  );.} {}..do_test
05c0: 20 31 2e 31 20 7b 0a 20 20 66 6f 72 65 61 63 68   1.1 {.  foreach
05d0: 20 7b 61 20 62 7d 20 24 64 6f 63 73 20 7b 0a 20   {a b} $docs {. 
05e0: 20 20 20 65 78 65 63 73 71 6c 20 7b 49 4e 53 45     execsql {INSE
05f0: 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45  RT INTO t1 VALUE
0600: 53 28 24 61 2c 20 24 62 29 7d 0a 20 20 7d 0a 7d  S($a, $b)}.  }.}
0610: 20 7b 7d 0a 0a 70 72 6f 63 20 75 70 64 61 74 65   {}..proc update
0620: 20 7b 69 52 6f 77 69 64 20 69 41 20 69 42 7d 20   {iRowid iA iB} 
0630: 7b 0a 20 20 73 65 74 20 61 20 5b 6c 69 6e 64 65  {.  set a [linde
0640: 78 20 24 3a 3a 64 6f 63 73 20 24 69 41 5d 0a 20  x $::docs $iA]. 
0650: 20 73 65 74 20 62 20 5b 6c 69 6e 64 65 78 20 24   set b [lindex $
0660: 3a 3a 64 6f 63 73 20 24 69 42 5d 0a 20 20 65 78  ::docs $iB].  ex
0670: 65 63 73 71 6c 20 7b 20 55 50 44 41 54 45 20 74  ecsql { UPDATE t
0680: 31 20 53 45 54 20 61 3d 24 61 2c 20 62 3d 24 62  1 SET a=$a, b=$b
0690: 20 57 48 45 52 45 20 72 6f 77 69 64 3d 24 69 52   WHERE rowid=$iR
06a0: 6f 77 69 64 20 7d 0a 7d 0a 0a 73 65 74 20 6e 44  owid }.}..set nD
06b0: 6f 63 20 5b 6c 6c 65 6e 67 74 68 20 24 3a 3a 64  oc [llength $::d
06c0: 6f 63 73 5d 0a 66 6f 72 65 61 63 68 20 6e 20 7b  ocs].foreach n {
06d0: 31 20 35 20 31 30 20 35 30 20 31 30 30 7d 20 7b  1 5 10 50 100} {
06e0: 0a 20 20 64 6f 5f 74 65 73 74 20 31 2e 32 2e 24  .  do_test 1.2.$
06f0: 6e 20 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20  n {.    execsql 
0700: 42 45 47 49 4e 0a 20 20 20 20 66 6f 72 20 7b 73  BEGIN.    for {s
0710: 65 74 20 69 20 31 7d 20 7b 24 69 20 3c 3d 20 31  et i 1} {$i <= 1
0720: 30 30 30 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a  000} {incr i} {.
0730: 20 20 20 20 20 20 73 65 74 20 69 52 6f 77 69 64        set iRowid
0740: 20 5b 65 78 70 72 20 7b 69 6e 74 28 72 61 6e 64   [expr {int(rand
0750: 28 29 20 2a 20 28 24 6e 44 6f 63 2f 32 29 29 20  () * ($nDoc/2)) 
0760: 2b 20 31 7d 5d 0a 20 20 20 20 20 20 73 65 74 20  + 1}].      set 
0770: 69 41 20 5b 65 78 70 72 20 7b 69 6e 74 28 72 61  iA [expr {int(ra
0780: 6e 64 28 29 20 2a 20 24 6e 44 6f 63 29 7d 5d 0a  nd() * $nDoc)}].
0790: 20 20 20 20 20 20 73 65 74 20 69 42 20 5b 65 78        set iB [ex
07a0: 70 72 20 7b 69 6e 74 28 72 61 6e 64 28 29 20 2a  pr {int(rand() *
07b0: 20 24 6e 44 6f 63 29 7d 5d 0a 20 20 20 20 20 20   $nDoc)}].      
07c0: 75 70 64 61 74 65 20 24 69 52 6f 77 69 64 20 24  update $iRowid $
07d0: 69 41 20 24 69 42 0a 0a 20 20 20 20 20 20 69 66  iA $iB..      if
07e0: 20 7b 28 24 69 20 25 20 24 6e 29 3d 3d 30 7d 20   {($i % $n)==0} 
07f0: 7b 0a 20 20 20 20 20 20 20 20 65 78 65 63 73 71  {.        execsq
0800: 6c 20 7b 20 43 4f 4d 4d 49 54 3b 20 42 45 47 49  l { COMMIT; BEGI
0810: 4e 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20  N }.      }..   
0820: 20 20 20 69 66 20 7b 28 24 69 20 25 20 24 6e 29     if {($i % $n)
0830: 3d 3d 31 30 30 7d 20 7b 0a 20 20 20 20 20 20 20  ==100} {.       
0840: 20 65 78 65 63 73 71 6c 20 7b 20 49 4e 53 45 52   execsql { INSER
0850: 54 20 49 4e 54 4f 20 74 31 28 74 31 29 20 56 41  T INTO t1(t1) VA
0860: 4c 55 45 53 28 27 69 6e 74 65 67 72 69 74 79 2d  LUES('integrity-
0870: 63 68 65 63 6b 27 29 20 7d 0a 20 20 20 20 20 20  check') }.      
0880: 7d 0a 20 20 20 20 7d 0a 20 20 20 20 65 78 65 63  }.    }.    exec
0890: 73 71 6c 20 43 4f 4d 4d 49 54 0a 20 20 20 20 65  sql COMMIT.    e
08a0: 78 65 63 73 71 6c 20 7b 20 49 4e 53 45 52 54 20  xecsql { INSERT 
08b0: 49 4e 54 4f 20 74 31 28 74 31 29 20 56 41 4c 55  INTO t1(t1) VALU
08c0: 45 53 28 27 69 6e 74 65 67 72 69 74 79 2d 63 68  ES('integrity-ch
08d0: 65 63 6b 27 29 20 7d 0a 20 20 7d 20 7b 7d 0a 7d  eck') }.  } {}.}
08e0: 0a 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  ..do_execsql_tes
08f0: 74 20 31 2e 33 20 7b 0a 20 20 55 50 44 41 54 45  t 1.3 {.  UPDATE
0900: 20 74 31 20 53 45 54 20 61 3d 61 20 41 4e 44 20   t1 SET a=a AND 
0910: 62 3d 62 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e  b=b;.  INSERT IN
0920: 54 4f 20 74 31 28 74 31 29 20 56 41 4c 55 45 53  TO t1(t1) VALUES
0930: 28 27 69 6e 74 65 67 72 69 74 79 2d 63 68 65 63  ('integrity-chec
0940: 6b 27 29 3b 0a 7d 0a 0a 64 6f 5f 74 65 73 74 20  k');.}..do_test 
0950: 31 2e 34 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  1.4 {.  execsql 
0960: 7b 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31  { INSERT INTO t1
0970: 28 74 31 2c 20 72 61 6e 6b 29 20 56 41 4c 55 45  (t1, rank) VALUE
0980: 53 28 27 70 67 73 7a 27 2c 20 33 32 29 20 7d 0a  S('pgsz', 32) }.
0990: 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20    for {set i 0} 
09a0: 7b 24 69 20 3c 20 35 30 7d 20 7b 69 6e 63 72 20  {$i < 50} {incr 
09b0: 69 7d 20 7b 0a 20 20 20 20 65 78 65 63 73 71 6c  i} {.    execsql
09c0: 20 7b 20 55 50 44 41 54 45 20 74 31 20 53 45 54   { UPDATE t1 SET
09d0: 20 61 3d 61 20 41 4e 44 20 62 3d 62 20 7d 0a 20   a=a AND b=b }. 
09e0: 20 20 20 65 78 65 63 73 71 6c 20 7b 20 49 4e 53     execsql { INS
09f0: 45 52 54 20 49 4e 54 4f 20 74 31 28 74 31 29 20  ERT INTO t1(t1) 
0a00: 56 41 4c 55 45 53 28 27 69 6e 74 65 67 72 69 74  VALUES('integrit
0a10: 79 2d 63 68 65 63 6b 27 29 20 7d 0a 20 20 7d 0a  y-check') }.  }.
0a20: 7d 20 7b 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d  } {}..#---------
0a30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0a40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0a60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0a70: 0a 23 20 4c 6f 74 73 20 6f 66 20 64 65 6c 65 74  .# Lots of delet
0a80: 65 73 2f 69 6e 73 65 72 74 73 20 6f 66 20 74 68  es/inserts of th
0a90: 65 20 73 61 6d 65 20 64 6f 63 75 6d 65 6e 74 20  e same document 
0aa0: 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 72 6f  with the same ro
0ab0: 77 69 64 2e 0a 23 0a 64 6f 5f 65 78 65 63 73 71  wid..#.do_execsq
0ac0: 6c 5f 74 65 73 74 20 32 2e 30 20 7b 0a 20 20 43  l_test 2.0 {.  C
0ad0: 52 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41  REATE VIRTUAL TA
0ae0: 42 4c 45 20 78 32 20 55 53 49 4e 47 20 66 74 73  BLE x2 USING fts
0af0: 35 28 78 2c 20 64 65 74 61 69 6c 3d 25 44 45 54  5(x, detail=%DET
0b00: 41 49 4c 25 29 3b 0a 20 20 49 4e 53 45 52 54 20  AIL%);.  INSERT 
0b10: 49 4e 54 4f 20 78 32 28 78 32 2c 20 72 61 6e 6b  INTO x2(x2, rank
0b20: 29 20 56 41 4c 55 45 53 28 27 63 72 69 73 69 73  ) VALUES('crisis
0b30: 6d 65 72 67 65 27 2c 20 32 29 3b 0a 20 20 49 4e  merge', 2);.  IN
0b40: 53 45 52 54 20 49 4e 54 4f 20 78 32 20 56 41 4c  SERT INTO x2 VAL
0b50: 55 45 53 28 27 61 20 62 20 63 27 29 3b 0a 20 20  UES('a b c');.  
0b60: 49 4e 53 45 52 54 20 49 4e 54 4f 20 78 32 20 56  INSERT INTO x2 V
0b70: 41 4c 55 45 53 28 27 61 20 62 20 63 27 29 3b 0a  ALUES('a b c');.
0b80: 7d 0a 64 6f 5f 74 65 73 74 20 32 2e 31 20 7b 0a  }.do_test 2.1 {.
0b90: 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20    for {set i 0} 
0ba0: 7b 24 69 20 3c 20 31 30 30 30 7d 20 7b 69 6e 63  {$i < 1000} {inc
0bb0: 72 20 69 7d 20 7b 0a 20 20 20 20 65 78 65 63 73  r i} {.    execs
0bc0: 71 6c 20 7b 20 44 45 4c 45 54 45 20 46 52 4f 4d  ql { DELETE FROM
0bd0: 20 78 32 20 57 48 45 52 45 20 72 6f 77 69 64 20   x2 WHERE rowid 
0be0: 3d 20 32 20 7d 0a 20 20 20 20 65 78 65 63 73 71  = 2 }.    execsq
0bf0: 6c 20 7b 20 49 4e 53 45 52 54 20 49 4e 54 4f 20  l { INSERT INTO 
0c00: 78 32 28 72 6f 77 69 64 2c 20 78 29 20 56 41 4c  x2(rowid, x) VAL
0c10: 55 45 53 28 32 2c 20 27 61 20 62 20 63 27 29 20  UES(2, 'a b c') 
0c20: 7d 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 65 78  }.  }.} {}.do_ex
0c30: 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 31 2e 69  ecsql_test 2.1.i
0c40: 6e 74 65 67 72 69 74 79 20 7b 0a 20 20 49 4e 53  ntegrity {.  INS
0c50: 45 52 54 20 49 4e 54 4f 20 78 32 28 78 32 29 20  ERT INTO x2(x2) 
0c60: 56 41 4c 55 45 53 28 27 69 6e 74 65 67 72 69 74  VALUES('integrit
0c70: 79 2d 63 68 65 63 6b 27 29 3b 0a 7d 0a 0a 64 6f  y-check');.}..do
0c80: 5f 74 65 73 74 20 32 2e 32 20 7b 0a 20 20 66 6f  _test 2.2 {.  fo
0c90: 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24 69 20  r {set i 0} {$i 
0ca0: 3c 20 31 30 30 30 7d 20 7b 69 6e 63 72 20 69 7d  < 1000} {incr i}
0cb0: 20 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20 7b   {.    execsql {
0cc0: 20 55 50 44 41 54 45 20 78 32 20 53 45 54 20 78   UPDATE x2 SET x
0cd0: 3d 78 20 57 48 45 52 45 20 72 6f 77 69 64 3d 32  =x WHERE rowid=2
0ce0: 20 7d 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 65   }.  }.} {}.do_e
0cf0: 78 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 32 2e  xecsql_test 2.2.
0d00: 69 6e 74 65 67 72 69 74 79 20 7b 0a 20 20 49 4e  integrity {.  IN
0d10: 53 45 52 54 20 49 4e 54 4f 20 78 32 28 78 32 29  SERT INTO x2(x2)
0d20: 20 56 41 4c 55 45 53 28 27 69 6e 74 65 67 72 69   VALUES('integri
0d30: 74 79 2d 63 68 65 63 6b 27 29 3b 0a 7d 0a 0a 7d  ty-check');.}..}
0d40: 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a 0a 0a     .finish_test...