/ Hex Artifact Content
Login

Artifact e00a0a9dc9f0be651f011d61e8a32b7add5afb30:


0000: 23 20 32 30 31 33 2d 31 30 2d 33 30 0a 23 0a 23  # 2013-10-30.#.#
0010: 20 54 68 65 20 61 75 74 68 6f 72 20 64 69 73 63   The author disc
0020: 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68 74 20  laims copyright 
0030: 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65 20 63  to this source c
0040: 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65 20 6f  ode.  In place o
0050: 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f 74 69  f.# a legal noti
0060: 63 65 2c 20 68 65 72 65 20 69 73 20 61 20 62 6c  ce, here is a bl
0070: 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20 20 4d  essing:.#.#    M
0080: 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64 20 61  ay you do good a
0090: 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23 20 20  nd not evil..#  
00a0: 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64 20 66    May you find f
00b0: 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72 20 79  orgiveness for y
00c0: 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f 72 67  ourself and forg
00d0: 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20 20 20  ive others..#   
00e0: 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65 20 66   May you share f
00f0: 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74 61 6b  reely, never tak
0100: 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 79 6f  ing more than yo
0110: 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a 2a 2a  u 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 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65  **.#.# This file
0170: 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67 72   implements regr
0180: 65 73 73 69 6f 6e 20 74 65 73 74 73 20 66 6f 72  ession tests for
0190: 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 2e   SQLite library.
01a0: 20 20 54 68 65 0a 23 20 66 6f 63 75 73 20 6f 66    The.# focus of
01b0: 20 74 68 69 73 20 66 69 6c 65 20 69 73 20 74 65   this file is te
01c0: 73 74 69 6e 67 20 57 49 54 48 4f 55 54 20 52 4f  sting WITHOUT RO
01d0: 57 49 44 20 74 61 62 6c 65 73 2e 0a 23 0a 0a 73  WID tables..#..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 77 69 74 68 6f  testprefix witho
0230: 75 74 5f 72 6f 77 69 64 31 0a 0a 23 20 43 72 65  ut_rowid1..# Cre
0240: 61 74 65 20 61 6e 64 20 71 75 65 72 79 20 61 20  ate and query a 
0250: 57 49 54 48 4f 55 54 20 52 4f 57 49 44 20 74 61  WITHOUT ROWID ta
0260: 62 6c 65 2e 0a 23 0a 64 6f 5f 65 78 65 63 73 71  ble..#.do_execsq
0270: 6c 5f 74 65 73 74 20 77 69 74 68 6f 75 74 5f 72  l_test without_r
0280: 6f 77 69 64 31 2d 31 2e 30 20 7b 0a 20 20 43 52  owid1-1.0 {.  CR
0290: 45 41 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c  EATE TABLE t1(a,
02a0: 62 2c 63 2c 64 2c 20 50 52 49 4d 41 52 59 20 4b  b,c,d, PRIMARY K
02b0: 45 59 28 63 2c 61 29 29 20 57 49 54 48 4f 55 54  EY(c,a)) WITHOUT
02c0: 20 52 4f 57 49 44 3b 0a 20 20 43 52 45 41 54 45   ROWID;.  CREATE
02d0: 20 49 4e 44 45 58 20 74 31 62 64 20 4f 4e 20 74   INDEX t1bd ON t
02e0: 31 28 62 2c 20 64 29 3b 0a 20 20 49 4e 53 45 52  1(b, d);.  INSER
02f0: 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53  T INTO t1 VALUES
0300: 28 27 6a 6f 75 72 6e 61 6c 27 2c 27 73 68 65 72  ('journal','sher
0310: 6d 61 6e 27 2c 27 61 6d 6d 6f 6e 69 61 27 2c 27  man','ammonia','
0320: 68 65 6c 65 6e 61 27 29 3b 0a 20 20 49 4e 53 45  helena');.  INSE
0330: 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45  RT INTO t1 VALUE
0340: 53 28 27 64 79 6e 61 6d 69 63 27 2c 27 6a 75 6c  S('dynamic','jul
0350: 69 65 74 27 2c 27 66 6c 69 70 70 65 72 27 2c 27  iet','flipper','
0360: 63 6f 6d 6d 61 6e 64 27 29 3b 0a 20 20 49 4e 53  command');.  INS
0370: 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55  ERT INTO t1 VALU
0380: 45 53 28 27 6a 6f 75 72 6e 61 6c 27 2c 27 73 68  ES('journal','sh
0390: 65 72 6d 61 6e 27 2c 27 67 61 6d 6d 61 27 2c 27  erman','gamma','
03a0: 70 61 74 72 69 6f 74 27 29 3b 0a 20 20 49 4e 53  patriot');.  INS
03b0: 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55  ERT INTO t1 VALU
03c0: 45 53 28 27 61 72 63 74 69 63 27 2c 27 73 6c 65  ES('arctic','sle
03d0: 65 70 27 2c 27 61 6d 6d 6f 6e 69 61 27 2c 27 68  ep','ammonia','h
03e0: 65 6c 65 6e 61 27 29 3b 0a 20 20 53 45 4c 45 43  elena');.  SELEC
03f0: 54 20 2a 2c 20 27 7c 27 20 46 52 4f 4d 20 74 31  T *, '|' FROM t1
0400: 20 4f 52 44 45 52 20 42 59 20 63 2c 20 61 3b 0a   ORDER BY c, a;.
0410: 7d 20 7b 61 72 63 74 69 63 20 73 6c 65 65 70 20  } {arctic sleep 
0420: 61 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e 61 20 7c  ammonia helena |
0430: 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d 61 6e   journal sherman
0440: 20 61 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e 61 20   ammonia helena 
0450: 7c 20 64 79 6e 61 6d 69 63 20 6a 75 6c 69 65 74  | dynamic juliet
0460: 20 66 6c 69 70 70 65 72 20 63 6f 6d 6d 61 6e 64   flipper command
0470: 20 7c 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d   | journal sherm
0480: 61 6e 20 67 61 6d 6d 61 20 70 61 74 72 69 6f 74  an gamma patriot
0490: 20 7c 7d 0a 0a 69 6e 74 65 67 72 69 74 79 5f 63   |}..integrity_c
04a0: 68 65 63 6b 20 77 69 74 68 6f 75 74 5f 72 6f 77  heck without_row
04b0: 69 64 31 2d 31 2e 30 69 63 0a 0a 64 6f 5f 65 78  id1-1.0ic..do_ex
04c0: 65 63 73 71 6c 5f 74 65 73 74 20 77 69 74 68 6f  ecsql_test witho
04d0: 75 74 5f 72 6f 77 69 64 31 2d 31 2e 31 20 7b 0a  ut_rowid1-1.1 {.
04e0: 20 20 53 45 4c 45 43 54 20 2a 2c 20 27 7c 27 20    SELECT *, '|' 
04f0: 46 52 4f 4d 20 74 31 20 4f 52 44 45 52 20 42 59  FROM t1 ORDER BY
0500: 20 2b 63 2c 20 61 3b 0a 7d 20 7b 61 72 63 74 69   +c, a;.} {arcti
0510: 63 20 73 6c 65 65 70 20 61 6d 6d 6f 6e 69 61 20  c sleep ammonia 
0520: 68 65 6c 65 6e 61 20 7c 20 6a 6f 75 72 6e 61 6c  helena | journal
0530: 20 73 68 65 72 6d 61 6e 20 61 6d 6d 6f 6e 69 61   sherman ammonia
0540: 20 68 65 6c 65 6e 61 20 7c 20 64 79 6e 61 6d 69   helena | dynami
0550: 63 20 6a 75 6c 69 65 74 20 66 6c 69 70 70 65 72  c juliet flipper
0560: 20 63 6f 6d 6d 61 6e 64 20 7c 20 6a 6f 75 72 6e   command | journ
0570: 61 6c 20 73 68 65 72 6d 61 6e 20 67 61 6d 6d 61  al sherman gamma
0580: 20 70 61 74 72 69 6f 74 20 7c 7d 0a 0a 64 6f 5f   patriot |}..do_
0590: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 77 69 74  execsql_test wit
05a0: 68 6f 75 74 5f 72 6f 77 69 64 31 2d 31 2e 32 20  hout_rowid1-1.2 
05b0: 7b 0a 20 20 53 45 4c 45 43 54 20 2a 2c 20 27 7c  {.  SELECT *, '|
05c0: 27 20 46 52 4f 4d 20 74 31 20 4f 52 44 45 52 20  ' FROM t1 ORDER 
05d0: 42 59 20 63 20 44 45 53 43 2c 20 61 20 44 45 53  BY c DESC, a DES
05e0: 43 3b 0a 7d 20 7b 6a 6f 75 72 6e 61 6c 20 73 68  C;.} {journal sh
05f0: 65 72 6d 61 6e 20 67 61 6d 6d 61 20 70 61 74 72  erman gamma patr
0600: 69 6f 74 20 7c 20 64 79 6e 61 6d 69 63 20 6a 75  iot | dynamic ju
0610: 6c 69 65 74 20 66 6c 69 70 70 65 72 20 63 6f 6d  liet flipper com
0620: 6d 61 6e 64 20 7c 20 6a 6f 75 72 6e 61 6c 20 73  mand | journal s
0630: 68 65 72 6d 61 6e 20 61 6d 6d 6f 6e 69 61 20 68  herman ammonia h
0640: 65 6c 65 6e 61 20 7c 20 61 72 63 74 69 63 20 73  elena | arctic s
0650: 6c 65 65 70 20 61 6d 6d 6f 6e 69 61 20 68 65 6c  leep ammonia hel
0660: 65 6e 61 20 7c 7d 0a 0a 64 6f 5f 65 78 65 63 73  ena |}..do_execs
0670: 71 6c 5f 74 65 73 74 20 77 69 74 68 6f 75 74 5f  ql_test without_
0680: 72 6f 77 69 64 31 2d 31 2e 31 31 20 7b 0a 20 20  rowid1-1.11 {.  
0690: 53 45 4c 45 43 54 20 2a 2c 20 27 7c 27 20 46 52  SELECT *, '|' FR
06a0: 4f 4d 20 74 31 20 4f 52 44 45 52 20 42 59 20 62  OM t1 ORDER BY b
06b0: 2c 20 64 3b 0a 7d 20 7b 64 79 6e 61 6d 69 63 20  , d;.} {dynamic 
06c0: 6a 75 6c 69 65 74 20 66 6c 69 70 70 65 72 20 63  juliet flipper c
06d0: 6f 6d 6d 61 6e 64 20 7c 20 6a 6f 75 72 6e 61 6c  ommand | journal
06e0: 20 73 68 65 72 6d 61 6e 20 61 6d 6d 6f 6e 69 61   sherman ammonia
06f0: 20 68 65 6c 65 6e 61 20 7c 20 6a 6f 75 72 6e 61   helena | journa
0700: 6c 20 73 68 65 72 6d 61 6e 20 67 61 6d 6d 61 20  l sherman gamma 
0710: 70 61 74 72 69 6f 74 20 7c 20 61 72 63 74 69 63  patriot | arctic
0720: 20 73 6c 65 65 70 20 61 6d 6d 6f 6e 69 61 20 68   sleep ammonia h
0730: 65 6c 65 6e 61 20 7c 7d 0a 0a 64 6f 5f 65 78 65  elena |}..do_exe
0740: 63 73 71 6c 5f 74 65 73 74 20 77 69 74 68 6f 75  csql_test withou
0750: 74 5f 72 6f 77 69 64 31 2d 31 2e 31 32 20 7b 0a  t_rowid1-1.12 {.
0760: 20 20 53 45 4c 45 43 54 20 2a 2c 20 27 7c 27 20    SELECT *, '|' 
0770: 46 52 4f 4d 20 74 31 20 4f 52 44 45 52 20 42 59  FROM t1 ORDER BY
0780: 20 2b 62 2c 20 64 3b 0a 7d 20 7b 64 79 6e 61 6d   +b, d;.} {dynam
0790: 69 63 20 6a 75 6c 69 65 74 20 66 6c 69 70 70 65  ic juliet flippe
07a0: 72 20 63 6f 6d 6d 61 6e 64 20 7c 20 6a 6f 75 72  r command | jour
07b0: 6e 61 6c 20 73 68 65 72 6d 61 6e 20 61 6d 6d 6f  nal sherman ammo
07c0: 6e 69 61 20 68 65 6c 65 6e 61 20 7c 20 6a 6f 75  nia helena | jou
07d0: 72 6e 61 6c 20 73 68 65 72 6d 61 6e 20 67 61 6d  rnal sherman gam
07e0: 6d 61 20 70 61 74 72 69 6f 74 20 7c 20 61 72 63  ma patriot | arc
07f0: 74 69 63 20 73 6c 65 65 70 20 61 6d 6d 6f 6e 69  tic sleep ammoni
0800: 61 20 68 65 6c 65 6e 61 20 7c 7d 0a 0a 23 20 54  a helena |}..# T
0810: 72 79 69 6e 67 20 74 6f 20 69 6e 73 65 72 74 20  rying to insert 
0820: 61 20 64 75 70 6c 69 63 61 74 65 20 50 52 49 4d  a duplicate PRIM
0830: 41 52 59 20 4b 45 59 20 66 61 69 6c 73 2e 0a 23  ARY KEY fails..#
0840: 0a 64 6f 5f 74 65 73 74 20 77 69 74 68 6f 75 74  .do_test without
0850: 5f 72 6f 77 69 64 31 2d 31 2e 32 31 20 7b 0a 20  _rowid1-1.21 {. 
0860: 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20   catchsql {.    
0870: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56  INSERT INTO t1 V
0880: 41 4c 55 45 53 28 27 64 79 6e 61 6d 69 63 27 2c  ALUES('dynamic',
0890: 27 70 68 6f 6e 65 27 2c 27 66 6c 69 70 70 65 72  'phone','flipper
08a0: 27 2c 27 68 61 72 76 61 72 64 27 29 3b 0a 20 20  ','harvard');.  
08b0: 7d 0a 7d 20 7b 31 20 7b 55 4e 49 51 55 45 20 63  }.} {1 {UNIQUE c
08c0: 6f 6e 73 74 72 61 69 6e 74 20 66 61 69 6c 65 64  onstraint failed
08d0: 3a 20 74 31 2e 63 2c 20 74 31 2e 61 7d 7d 0a 0a  : t1.c, t1.a}}..
08e0: 23 20 52 45 50 4c 41 43 45 20 49 4e 54 4f 20 77  # REPLACE INTO w
08f0: 6f 72 6b 73 2c 20 68 6f 77 65 76 65 72 2e 0a 23  orks, however..#
0900: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
0910: 20 77 69 74 68 6f 75 74 5f 72 6f 77 69 64 31 2d   without_rowid1-
0920: 31 2e 32 32 20 7b 0a 20 20 52 45 50 4c 41 43 45  1.22 {.  REPLACE
0930: 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28   INTO t1 VALUES(
0940: 27 64 79 6e 61 6d 69 63 27 2c 27 70 68 6f 6e 65  'dynamic','phone
0950: 27 2c 27 66 6c 69 70 70 65 72 27 2c 27 68 61 72  ','flipper','har
0960: 76 61 72 64 27 29 3b 0a 20 20 53 45 4c 45 43 54  vard');.  SELECT
0970: 20 2a 2c 20 27 7c 27 20 46 52 4f 4d 20 74 31 20   *, '|' FROM t1 
0980: 4f 52 44 45 52 20 42 59 20 63 2c 20 61 3b 0a 7d  ORDER BY c, a;.}
0990: 20 7b 61 72 63 74 69 63 20 73 6c 65 65 70 20 61   {arctic sleep a
09a0: 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e 61 20 7c 20  mmonia helena | 
09b0: 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d 61 6e 20  journal sherman 
09c0: 61 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e 61 20 7c  ammonia helena |
09d0: 20 64 79 6e 61 6d 69 63 20 70 68 6f 6e 65 20 66   dynamic phone f
09e0: 6c 69 70 70 65 72 20 68 61 72 76 61 72 64 20 7c  lipper harvard |
09f0: 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d 61 6e   journal sherman
0a00: 20 67 61 6d 6d 61 20 70 61 74 72 69 6f 74 20 7c   gamma patriot |
0a10: 7d 0a 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  }..do_execsql_te
0a20: 73 74 20 77 69 74 68 6f 75 74 5f 72 6f 77 69 64  st without_rowid
0a30: 31 2d 31 2e 32 33 20 7b 0a 20 20 53 45 4c 45 43  1-1.23 {.  SELEC
0a40: 54 20 2a 2c 20 27 7c 27 20 46 52 4f 4d 20 74 31  T *, '|' FROM t1
0a50: 20 4f 52 44 45 52 20 42 59 20 62 2c 20 64 3b 0a   ORDER BY b, d;.
0a60: 7d 20 7b 64 79 6e 61 6d 69 63 20 70 68 6f 6e 65  } {dynamic phone
0a70: 20 66 6c 69 70 70 65 72 20 68 61 72 76 61 72 64   flipper harvard
0a80: 20 7c 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d   | journal sherm
0a90: 61 6e 20 61 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e  an ammonia helen
0aa0: 61 20 7c 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72  a | journal sher
0ab0: 6d 61 6e 20 67 61 6d 6d 61 20 70 61 74 72 69 6f  man gamma patrio
0ac0: 74 20 7c 20 61 72 63 74 69 63 20 73 6c 65 65 70  t | arctic sleep
0ad0: 20 61 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e 61 20   ammonia helena 
0ae0: 7c 7d 0a 0a 23 20 55 50 44 41 54 45 20 73 74 61  |}..# UPDATE sta
0af0: 74 65 6d 65 6e 74 73 2e 0a 23 0a 64 6f 5f 65 78  tements..#.do_ex
0b00: 65 63 73 71 6c 5f 74 65 73 74 20 77 69 74 68 6f  ecsql_test witho
0b10: 75 74 5f 72 6f 77 69 64 31 2d 31 2e 33 31 20 7b  ut_rowid1-1.31 {
0b20: 0a 20 20 55 50 44 41 54 45 20 74 31 20 53 45 54  .  UPDATE t1 SET
0b30: 20 64 3d 33 2e 31 34 31 35 39 32 36 20 57 48 45   d=3.1415926 WHE
0b40: 52 45 20 61 3d 27 6a 6f 75 72 6e 61 6c 27 3b 0a  RE a='journal';.
0b50: 20 20 53 45 4c 45 43 54 20 2a 2c 20 27 7c 27 20    SELECT *, '|' 
0b60: 46 52 4f 4d 20 74 31 20 4f 52 44 45 52 20 42 59  FROM t1 ORDER BY
0b70: 20 63 2c 20 61 3b 0a 7d 20 7b 61 72 63 74 69 63   c, a;.} {arctic
0b80: 20 73 6c 65 65 70 20 61 6d 6d 6f 6e 69 61 20 68   sleep ammonia h
0b90: 65 6c 65 6e 61 20 7c 20 6a 6f 75 72 6e 61 6c 20  elena | journal 
0ba0: 73 68 65 72 6d 61 6e 20 61 6d 6d 6f 6e 69 61 20  sherman ammonia 
0bb0: 33 2e 31 34 31 35 39 32 36 20 7c 20 64 79 6e 61  3.1415926 | dyna
0bc0: 6d 69 63 20 70 68 6f 6e 65 20 66 6c 69 70 70 65  mic phone flippe
0bd0: 72 20 68 61 72 76 61 72 64 20 7c 20 6a 6f 75 72  r harvard | jour
0be0: 6e 61 6c 20 73 68 65 72 6d 61 6e 20 67 61 6d 6d  nal sherman gamm
0bf0: 61 20 33 2e 31 34 31 35 39 32 36 20 7c 7d 0a 64  a 3.1415926 |}.d
0c00: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 77  o_execsql_test w
0c10: 69 74 68 6f 75 74 5f 72 6f 77 69 64 31 2d 31 2e  ithout_rowid1-1.
0c20: 33 32 20 7b 0a 20 20 53 45 4c 45 43 54 20 2a 2c  32 {.  SELECT *,
0c30: 20 27 7c 27 20 46 52 4f 4d 20 74 31 20 4f 52 44   '|' FROM t1 ORD
0c40: 45 52 20 42 59 20 62 2c 20 64 3b 0a 7d 20 7b 64  ER BY b, d;.} {d
0c50: 79 6e 61 6d 69 63 20 70 68 6f 6e 65 20 66 6c 69  ynamic phone fli
0c60: 70 70 65 72 20 68 61 72 76 61 72 64 20 7c 20 6a  pper harvard | j
0c70: 6f 75 72 6e 61 6c 20 73 68 65 72 6d 61 6e 20 61  ournal sherman a
0c80: 6d 6d 6f 6e 69 61 20 33 2e 31 34 31 35 39 32 36  mmonia 3.1415926
0c90: 20 7c 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d   | journal sherm
0ca0: 61 6e 20 67 61 6d 6d 61 20 33 2e 31 34 31 35 39  an gamma 3.14159
0cb0: 32 36 20 7c 20 61 72 63 74 69 63 20 73 6c 65 65  26 | arctic slee
0cc0: 70 20 61 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e 61  p ammonia helena
0cd0: 20 7c 7d 0a 0a 64 6f 5f 65 78 65 63 73 71 6c 5f   |}..do_execsql_
0ce0: 74 65 73 74 20 77 69 74 68 6f 75 74 5f 72 6f 77  test without_row
0cf0: 69 64 31 2d 31 2e 33 35 20 7b 0a 20 20 55 50 44  id1-1.35 {.  UPD
0d00: 41 54 45 20 74 31 20 53 45 54 20 61 3d 31 32 35  ATE t1 SET a=125
0d10: 30 20 57 48 45 52 45 20 62 3d 27 70 68 6f 6e 65  0 WHERE b='phone
0d20: 27 3b 0a 20 20 53 45 4c 45 43 54 20 2a 2c 20 27  ';.  SELECT *, '
0d30: 7c 27 20 46 52 4f 4d 20 74 31 20 4f 52 44 45 52  |' FROM t1 ORDER
0d40: 20 42 59 20 63 2c 20 61 3b 0a 7d 20 7b 61 72 63   BY c, a;.} {arc
0d50: 74 69 63 20 73 6c 65 65 70 20 61 6d 6d 6f 6e 69  tic sleep ammoni
0d60: 61 20 68 65 6c 65 6e 61 20 7c 20 6a 6f 75 72 6e  a helena | journ
0d70: 61 6c 20 73 68 65 72 6d 61 6e 20 61 6d 6d 6f 6e  al sherman ammon
0d80: 69 61 20 33 2e 31 34 31 35 39 32 36 20 7c 20 31  ia 3.1415926 | 1
0d90: 32 35 30 20 70 68 6f 6e 65 20 66 6c 69 70 70 65  250 phone flippe
0da0: 72 20 68 61 72 76 61 72 64 20 7c 20 6a 6f 75 72  r harvard | jour
0db0: 6e 61 6c 20 73 68 65 72 6d 61 6e 20 67 61 6d 6d  nal sherman gamm
0dc0: 61 20 33 2e 31 34 31 35 39 32 36 20 7c 7d 0a 69  a 3.1415926 |}.i
0dd0: 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 20 77  ntegrity_check w
0de0: 69 74 68 6f 75 74 5f 72 6f 77 69 64 31 2d 31 2e  ithout_rowid1-1.
0df0: 33 36 0a 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  36..do_execsql_t
0e00: 65 73 74 20 77 69 74 68 6f 75 74 5f 72 6f 77 69  est without_rowi
0e10: 64 31 2d 31 2e 33 37 20 7b 0a 20 20 53 45 4c 45  d1-1.37 {.  SELE
0e20: 43 54 20 2a 2c 20 27 7c 27 20 46 52 4f 4d 20 74  CT *, '|' FROM t
0e30: 31 20 4f 52 44 45 52 20 42 59 20 62 2c 20 64 3b  1 ORDER BY b, d;
0e40: 0a 7d 20 7b 31 32 35 30 20 70 68 6f 6e 65 20 66  .} {1250 phone f
0e50: 6c 69 70 70 65 72 20 68 61 72 76 61 72 64 20 7c  lipper harvard |
0e60: 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d 61 6e   journal sherman
0e70: 20 61 6d 6d 6f 6e 69 61 20 33 2e 31 34 31 35 39   ammonia 3.14159
0e80: 32 36 20 7c 20 6a 6f 75 72 6e 61 6c 20 73 68 65  26 | journal she
0e90: 72 6d 61 6e 20 67 61 6d 6d 61 20 33 2e 31 34 31  rman gamma 3.141
0ea0: 35 39 32 36 20 7c 20 61 72 63 74 69 63 20 73 6c  5926 | arctic sl
0eb0: 65 65 70 20 61 6d 6d 6f 6e 69 61 20 68 65 6c 65  eep ammonia hele
0ec0: 6e 61 20 7c 7d 0a 0a 64 6f 5f 65 78 65 63 73 71  na |}..do_execsq
0ed0: 6c 5f 74 65 73 74 20 77 69 74 68 6f 75 74 5f 72  l_test without_r
0ee0: 6f 77 69 64 31 2d 31 2e 34 30 20 7b 0a 20 20 56  owid1-1.40 {.  V
0ef0: 41 43 55 55 4d 3b 0a 20 20 53 45 4c 45 43 54 20  ACUUM;.  SELECT 
0f00: 2a 2c 20 27 7c 27 20 46 52 4f 4d 20 74 31 20 4f  *, '|' FROM t1 O
0f10: 52 44 45 52 20 42 59 20 62 2c 20 64 3b 0a 7d 20  RDER BY b, d;.} 
0f20: 7b 31 32 35 30 20 70 68 6f 6e 65 20 66 6c 69 70  {1250 phone flip
0f30: 70 65 72 20 68 61 72 76 61 72 64 20 7c 20 6a 6f  per harvard | jo
0f40: 75 72 6e 61 6c 20 73 68 65 72 6d 61 6e 20 61 6d  urnal sherman am
0f50: 6d 6f 6e 69 61 20 33 2e 31 34 31 35 39 32 36 20  monia 3.1415926 
0f60: 7c 20 6a 6f 75 72 6e 61 6c 20 73 68 65 72 6d 61  | journal sherma
0f70: 6e 20 67 61 6d 6d 61 20 33 2e 31 34 31 35 39 32  n gamma 3.141592
0f80: 36 20 7c 20 61 72 63 74 69 63 20 73 6c 65 65 70  6 | arctic sleep
0f90: 20 61 6d 6d 6f 6e 69 61 20 68 65 6c 65 6e 61 20   ammonia helena 
0fa0: 7c 7d 0a 69 6e 74 65 67 72 69 74 79 5f 63 68 65  |}.integrity_che
0fb0: 63 6b 20 77 69 74 68 6f 75 74 5f 72 6f 77 69 64  ck without_rowid
0fc0: 31 2d 31 2e 34 31 0a 0a 23 20 56 65 72 69 66 79  1-1.41..# Verify
0fd0: 20 74 68 61 74 20 41 4e 41 4c 59 5a 45 20 77 6f   that ANALYZE wo
0fe0: 72 6b 73 0a 23 0a 64 6f 5f 65 78 65 63 73 71 6c  rks.#.do_execsql
0ff0: 5f 74 65 73 74 20 77 69 74 68 6f 75 74 5f 72 6f  _test without_ro
1000: 77 69 64 31 2d 31 2e 35 30 20 7b 0a 20 20 41 4e  wid1-1.50 {.  AN
1010: 41 4c 59 5a 45 3b 0a 20 20 53 45 4c 45 43 54 20  ALYZE;.  SELECT 
1020: 2a 20 46 52 4f 4d 20 73 71 6c 69 74 65 5f 73 74  * FROM sqlite_st
1030: 61 74 31 20 4f 52 44 45 52 20 42 59 20 69 64 78  at1 ORDER BY idx
1040: 3b 0a 7d 20 7b 74 31 20 74 31 20 7b 34 20 32 20  ;.} {t1 t1 {4 2 
1050: 31 7d 20 74 31 20 74 31 62 64 20 7b 34 20 32 20  1} t1 t1bd {4 2 
1060: 32 7d 7d 0a 69 66 63 61 70 61 62 6c 65 20 73 74  2}}.ifcapable st
1070: 61 74 33 20 7b 0a 20 20 64 6f 5f 65 78 65 63 73  at3 {.  do_execs
1080: 71 6c 5f 74 65 73 74 20 77 69 74 68 6f 75 74 5f  ql_test without_
1090: 72 6f 77 69 64 31 2d 31 2e 35 31 20 7b 0a 20 20  rowid1-1.51 {.  
10a0: 20 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43    SELECT DISTINC
10b0: 54 20 74 62 6c 2c 20 69 64 78 20 46 52 4f 4d 20  T tbl, idx FROM 
10c0: 73 71 6c 69 74 65 5f 73 74 61 74 33 20 4f 52 44  sqlite_stat3 ORD
10d0: 45 52 20 42 59 20 69 64 78 3b 0a 20 20 7d 20 7b  ER BY idx;.  } {
10e0: 74 31 20 74 31 20 74 31 20 74 31 62 64 7d 0a 7d  t1 t1 t1 t1bd}.}
10f0: 0a 69 66 63 61 70 61 62 6c 65 20 73 74 61 74 34  .ifcapable stat4
1100: 20 7b 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f   {.  do_execsql_
1110: 74 65 73 74 20 77 69 74 68 6f 75 74 5f 72 6f 77  test without_row
1120: 69 64 31 2d 31 2e 35 32 20 7b 0a 20 20 20 20 53  id1-1.52 {.    S
1130: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 74  ELECT DISTINCT t
1140: 62 6c 2c 20 69 64 78 20 46 52 4f 4d 20 73 71 6c  bl, idx FROM sql
1150: 69 74 65 5f 73 74 61 74 34 20 4f 52 44 45 52 20  ite_stat4 ORDER 
1160: 42 59 20 69 64 78 3b 0a 20 20 7d 20 7b 74 31 20  BY idx;.  } {t1 
1170: 74 31 20 74 31 20 74 31 62 64 7d 0a 7d 0a 0a 23  t1 t1 t1bd}.}..#
1180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 64 6f 5f 65  ----------..do_e
1190: 78 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 31 2e  xecsql_test 2.1.
11a0: 31 20 7b 0a 20 20 43 52 45 41 54 45 20 54 41 42  1 {.  CREATE TAB
11b0: 4c 45 20 74 34 20 28 61 20 43 4f 4c 4c 41 54 45  LE t4 (a COLLATE
11c0: 20 6e 6f 63 61 73 65 20 50 52 49 4d 41 52 59 20   nocase PRIMARY 
11d0: 4b 45 59 2c 20 62 29 20 57 49 54 48 4f 55 54 20  KEY, b) WITHOUT 
11e0: 52 4f 57 49 44 3b 0a 20 20 49 4e 53 45 52 54 20  ROWID;.  INSERT 
11f0: 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28 27  INTO t4 VALUES('
1200: 61 62 63 27 2c 20 27 64 65 66 27 29 3b 0a 20 20  abc', 'def');.  
1210: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 34  SELECT * FROM t4
1220: 3b 0a 7d 20 7b 61 62 63 20 64 65 66 7d 0a 64 6f  ;.} {abc def}.do
1230: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 32 2e  _execsql_test 2.
1240: 31 2e 32 20 7b 0a 20 20 55 50 44 41 54 45 20 74  1.2 {.  UPDATE t
1250: 34 20 53 45 54 20 61 20 3d 20 27 41 42 43 27 3b  4 SET a = 'ABC';
1260: 0a 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  .  SELECT * FROM
1270: 20 74 34 3b 0a 7d 20 7b 41 42 43 20 64 65 66 7d   t4;.} {ABC def}
1280: 0a 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  ..do_execsql_tes
1290: 74 20 32 2e 32 2e 31 20 7b 0a 20 20 44 52 4f 50  t 2.2.1 {.  DROP
12a0: 20 54 41 42 4c 45 20 74 34 3b 0a 20 20 43 52 45   TABLE t4;.  CRE
12b0: 41 54 45 20 54 41 42 4c 45 20 74 34 20 28 62 2c  ATE TABLE t4 (b,
12c0: 20 61 20 43 4f 4c 4c 41 54 45 20 6e 6f 63 61 73   a COLLATE nocas
12d0: 65 20 50 52 49 4d 41 52 59 20 4b 45 59 29 20 57  e PRIMARY KEY) W
12e0: 49 54 48 4f 55 54 20 52 4f 57 49 44 3b 0a 20 20  ITHOUT ROWID;.  
12f0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 28 61  INSERT INTO t4(a
1300: 2c 20 62 29 20 56 41 4c 55 45 53 28 27 61 62 63  , b) VALUES('abc
1310: 27 2c 20 27 64 65 66 27 29 3b 0a 20 20 53 45 4c  ', 'def');.  SEL
1320: 45 43 54 20 2a 20 46 52 4f 4d 20 74 34 3b 0a 7d  ECT * FROM t4;.}
1330: 20 7b 64 65 66 20 61 62 63 7d 0a 0a 64 6f 5f 65   {def abc}..do_e
1340: 78 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 32 2e  xecsql_test 2.2.
1350: 32 20 7b 0a 20 20 55 50 44 41 54 45 20 74 34 20  2 {.  UPDATE t4 
1360: 53 45 54 20 61 20 3d 20 27 41 42 43 27 2c 20 62  SET a = 'ABC', b
1370: 20 3d 20 27 78 79 7a 27 3b 0a 20 20 53 45 4c 45   = 'xyz';.  SELE
1380: 43 54 20 2a 20 46 52 4f 4d 20 74 34 3b 0a 7d 20  CT * FROM t4;.} 
1390: 7b 78 79 7a 20 41 42 43 7d 0a 0a 64 6f 5f 65 78  {xyz ABC}..do_ex
13a0: 65 63 73 71 6c 5f 74 65 73 74 20 32 2e 33 2e 31  ecsql_test 2.3.1
13b0: 20 7b 0a 20 20 43 52 45 41 54 45 20 54 41 42 4c   {.  CREATE TABL
13c0: 45 20 74 35 20 28 61 2c 20 62 2c 20 50 52 49 4d  E t5 (a, b, PRIM
13d0: 41 52 59 20 4b 45 59 28 62 2c 20 61 29 29 20 57  ARY KEY(b, a)) W
13e0: 49 54 48 4f 55 54 20 52 4f 57 49 44 3b 0a 20 20  ITHOUT ROWID;.  
13f0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 35 28 61  INSERT INTO t5(a
1400: 2c 20 62 29 20 56 41 4c 55 45 53 28 27 61 62 63  , b) VALUES('abc
1410: 27 2c 20 27 64 65 66 27 29 3b 0a 20 20 55 50 44  ', 'def');.  UPD
1420: 41 54 45 20 74 35 20 53 45 54 20 61 3d 27 61 62  ATE t5 SET a='ab
1430: 63 27 2c 20 62 3d 27 64 65 66 27 3b 0a 7d 20 7b  c', b='def';.} {
1440: 7d 0a 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  }..do_execsql_te
1450: 73 74 20 32 2e 34 2e 31 20 7b 0a 20 20 43 52 45  st 2.4.1 {.  CRE
1460: 41 54 45 20 54 41 42 4c 45 20 74 36 20 28 0a 20  ATE TABLE t6 (. 
1470: 20 20 20 61 20 43 4f 4c 4c 41 54 45 20 6e 6f 63     a COLLATE noc
1480: 61 73 65 2c 20 62 2c 20 63 20 55 4e 49 51 55 45  ase, b, c UNIQUE
1490: 2c 20 50 52 49 4d 41 52 59 20 4b 45 59 28 62 2c  , PRIMARY KEY(b,
14a0: 20 61 29 0a 20 20 29 20 57 49 54 48 4f 55 54 20   a).  ) WITHOUT 
14b0: 52 4f 57 49 44 3b 0a 0a 20 20 49 4e 53 45 52 54  ROWID;..  INSERT
14c0: 20 49 4e 54 4f 20 74 36 28 61 2c 20 62 2c 20 63   INTO t6(a, b, c
14d0: 29 20 56 41 4c 55 45 53 28 27 61 62 63 27 2c 20  ) VALUES('abc', 
14e0: 27 64 65 66 27 2c 20 27 67 68 69 27 29 3b 0a 20  'def', 'ghi');. 
14f0: 20 55 50 44 41 54 45 20 74 36 20 53 45 54 20 61   UPDATE t6 SET a
1500: 3d 27 41 42 43 27 2c 20 63 3d 27 67 68 69 27 3b  ='ABC', c='ghi';
1510: 0a 7d 20 7b 7d 0a 0a 64 6f 5f 65 78 65 63 73 71  .} {}..do_execsq
1520: 6c 5f 74 65 73 74 20 32 2e 34 2e 32 20 7b 0a 20  l_test 2.4.2 {. 
1530: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
1540: 36 20 4f 52 44 45 52 20 42 59 20 62 2c 20 61 3b  6 ORDER BY b, a;
1550: 0a 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  .  SELECT * FROM
1560: 20 74 36 20 4f 52 44 45 52 20 42 59 20 63 3b 0a   t6 ORDER BY c;.
1570: 7d 20 7b 41 42 43 20 64 65 66 20 67 68 69 20 41  } {ABC def ghi A
1580: 42 43 20 64 65 66 20 67 68 69 7d 0a 0a 23 2d 2d  BC def ghi}..#--
1590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15d0: 2d 2d 2d 2d 2d 2d 2d 0a 23 20 55 6e 6c 65 73 73  -------.# Unless
15e0: 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e   the destination
15f0: 20 74 61 62 6c 65 20 69 73 20 63 6f 6d 70 6c 65   table is comple
1600: 74 65 6c 79 20 65 6d 70 74 79 2c 20 74 68 65 20  tely empty, the 
1610: 78 66 65 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f  xfer optimizatio
1620: 6e 20 0a 23 20 69 73 20 64 69 73 61 62 6c 65 64  n .# is disabled
1630: 20 66 6f 72 20 57 49 54 48 4f 55 54 20 52 4f 57   for WITHOUT ROW
1640: 49 44 20 74 61 62 6c 65 73 2e 20 54 68 65 20 66  ID tables. The f
1650: 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 73 20 63  ollowing tests c
1660: 68 65 63 6b 20 66 6f 72 0a 23 20 73 6f 6d 65 20  heck for.# some 
1670: 70 72 6f 62 6c 65 6d 73 20 74 68 61 74 20 6d 69  problems that mi
1680: 67 68 74 20 6f 63 63 75 72 20 69 66 20 74 68 69  ght occur if thi
1690: 73 20 77 65 72 65 20 6e 6f 74 20 74 68 65 20 63  s were not the c
16a0: 61 73 65 2e 0a 23 0a 72 65 73 65 74 5f 64 62 0a  ase..#.reset_db.
16b0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
16c0: 33 2e 31 2e 31 20 7b 0a 20 20 43 52 45 41 54 45  3.1.1 {.  CREATE
16d0: 20 54 41 42 4c 45 20 74 31 28 61 2c 20 62 2c 20   TABLE t1(a, b, 
16e0: 50 52 49 4d 41 52 59 20 4b 45 59 28 61 29 29 20  PRIMARY KEY(a)) 
16f0: 57 49 54 48 4f 55 54 20 52 4f 57 49 44 3b 0a 20  WITHOUT ROWID;. 
1700: 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49   CREATE UNIQUE I
1710: 4e 44 45 58 20 69 31 20 4f 4e 20 74 31 28 62 29  NDEX i1 ON t1(b)
1720: 3b 0a 0a 20 20 43 52 45 41 54 45 20 54 41 42 4c  ;..  CREATE TABL
1730: 45 20 74 32 28 61 2c 20 62 2c 20 50 52 49 4d 41  E t2(a, b, PRIMA
1740: 52 59 20 4b 45 59 28 61 29 29 20 57 49 54 48 4f  RY KEY(a)) WITHO
1750: 55 54 20 52 4f 57 49 44 3b 0a 20 20 43 52 45 41  UT ROWID;.  CREA
1760: 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20  TE UNIQUE INDEX 
1770: 69 32 20 4f 4e 20 74 32 28 62 29 3b 0a 0a 20 20  i2 ON t2(b);..  
1780: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56  INSERT INTO t1 V
1790: 41 4c 55 45 53 28 27 6f 6e 65 27 2c 20 27 74 77  ALUES('one', 'tw
17a0: 6f 27 29 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e  o');.  INSERT IN
17b0: 54 4f 20 74 32 20 56 41 4c 55 45 53 28 27 74 68  TO t2 VALUES('th
17c0: 72 65 65 27 2c 20 27 74 77 6f 27 29 3b 0a 7d 0a  ree', 'two');.}.
17d0: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
17e0: 20 33 2e 31 2e 32 20 7b 0a 20 20 49 4e 53 45 52   3.1.2 {.  INSER
17f0: 54 20 4f 52 20 52 45 50 4c 41 43 45 20 49 4e 54  T OR REPLACE INT
1800: 4f 20 74 31 20 53 45 4c 45 43 54 20 2a 20 46 52  O t1 SELECT * FR
1810: 4f 4d 20 74 32 3b 0a 20 20 53 45 4c 45 43 54 20  OM t2;.  SELECT 
1820: 2a 20 46 52 4f 4d 20 74 31 3b 0a 7d 20 7b 74 68  * FROM t1;.} {th
1830: 72 65 65 20 74 77 6f 7d 0a 0a 64 6f 5f 65 78 65  ree two}..do_exe
1840: 63 73 71 6c 5f 74 65 73 74 20 33 2e 31 2e 33 20  csql_test 3.1.3 
1850: 7b 0a 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20  {.  DELETE FROM 
1860: 74 31 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54  t1;.  INSERT INT
1870: 4f 20 74 31 20 53 45 4c 45 43 54 20 2a 20 46 52  O t1 SELECT * FR
1880: 4f 4d 20 74 32 3b 0a 20 20 53 45 4c 45 43 54 20  OM t2;.  SELECT 
1890: 2a 20 46 52 4f 4d 20 74 31 3b 0a 7d 20 7b 74 68  * FROM t1;.} {th
18a0: 72 65 65 20 74 77 6f 7d 0a 0a 64 6f 5f 63 61 74  ree two}..do_cat
18b0: 63 68 73 71 6c 5f 74 65 73 74 20 33 2e 31 2e 34  chsql_test 3.1.4
18c0: 20 7b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f   {.  INSERT INTO
18d0: 20 74 32 20 56 41 4c 55 45 53 28 27 66 6f 75 72   t2 VALUES('four
18e0: 27 2c 20 27 66 6f 75 72 27 29 3b 0a 20 20 49 4e  ', 'four');.  IN
18f0: 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c  SERT INTO t2 VAL
1900: 55 45 53 28 27 73 69 78 27 2c 20 27 74 77 6f 27  UES('six', 'two'
1910: 29 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  );.  INSERT INTO
1920: 20 74 31 20 53 45 4c 45 43 54 20 2a 20 46 52 4f   t1 SELECT * FRO
1930: 4d 20 74 32 3b 0a 7d 20 7b 31 20 7b 55 4e 49 51  M t2;.} {1 {UNIQ
1940: 55 45 20 63 6f 6e 73 74 72 61 69 6e 74 20 66 61  UE constraint fa
1950: 69 6c 65 64 3a 20 74 32 2e 62 7d 7d 0a 0a 64 6f  iled: t2.b}}..do
1960: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 33 2e  _execsql_test 3.
1970: 31 2e 35 20 7b 0a 20 20 43 52 45 41 54 45 20 54  1.5 {.  CREATE T
1980: 41 42 4c 45 20 74 33 28 61 20 50 52 49 4d 41 52  ABLE t3(a PRIMAR
1990: 59 20 4b 45 59 29 3b 0a 20 20 43 52 45 41 54 45  Y KEY);.  CREATE
19a0: 20 54 41 42 4c 45 20 74 34 28 61 20 50 52 49 4d   TABLE t4(a PRIM
19b0: 41 52 59 20 4b 45 59 29 3b 0a 0a 20 20 49 4e 53  ARY KEY);..  INS
19c0: 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55  ERT INTO t4 VALU
19d0: 45 53 28 27 69 27 29 3b 0a 20 20 49 4e 53 45 52  ES('i');.  INSER
19e0: 54 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53  T INTO t4 VALUES
19f0: 28 27 69 69 27 29 3b 0a 20 20 49 4e 53 45 52 54  ('ii');.  INSERT
1a00: 20 49 4e 54 4f 20 74 34 20 56 41 4c 55 45 53 28   INTO t4 VALUES(
1a10: 27 69 69 69 27 29 3b 0a 0a 20 20 49 4e 53 45 52  'iii');..  INSER
1a20: 54 20 49 4e 54 4f 20 74 33 20 53 45 4c 45 43 54  T INTO t3 SELECT
1a30: 20 2a 20 46 52 4f 4d 20 74 34 3b 0a 20 20 53 45   * FROM t4;.  SE
1a40: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 33 3b 0a  LECT * FROM t3;.
1a50: 7d 20 7b 69 20 69 69 20 69 69 69 7d 0a 0a 23 23  } {i ii iii}..##
1a60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1aa0: 23 23 23 23 23 23 23 23 23 23 0a 23 20 54 69 63  ##########.# Tic
1ab0: 6b 65 74 20 5b 63 33 34 64 30 35 35 37 66 37 34  ket [c34d0557f74
1ac0: 30 63 34 35 30 37 30 39 64 36 65 33 33 64 66 37  0c450709d6e33df7
1ad0: 32 64 34 66 33 66 36 35 31 61 33 63 63 5d 0a 23  2d4f3f651a3cc].#
1ae0: 20 4e 61 6d 65 20 72 65 73 6f 6c 75 74 69 6f 6e   Name resolution
1af0: 20 69 73 73 75 65 20 77 69 74 68 20 57 49 54 48   issue with WITH
1b00: 4f 55 54 20 52 4f 57 49 44 0a 23 0a 64 6f 5f 65  OUT ROWID.#.do_e
1b10: 78 65 63 73 71 6c 5f 74 65 73 74 20 34 2e 31 20  xecsql_test 4.1 
1b20: 7b 0a 20 20 43 52 45 41 54 45 20 54 41 42 4c 45  {.  CREATE TABLE
1b30: 20 74 34 31 28 61 20 50 52 49 4d 41 52 59 20 4b   t41(a PRIMARY K
1b40: 45 59 29 20 57 49 54 48 4f 55 54 20 52 4f 57 49  EY) WITHOUT ROWI
1b50: 44 3b 0a 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  D;.  INSERT INTO
1b60: 20 74 34 31 20 56 41 4c 55 45 53 28 27 61 62 63   t41 VALUES('abc
1b70: 27 29 3b 0a 20 20 43 52 45 41 54 45 20 54 41 42  ');.  CREATE TAB
1b80: 4c 45 20 74 34 32 28 78 29 3b 0a 20 20 49 4e 53  LE t42(x);.  INS
1b90: 45 52 54 20 49 4e 54 4f 20 74 34 32 20 56 41 4c  ERT INTO t42 VAL
1ba0: 55 45 53 28 27 78 79 7a 27 29 3b 0a 20 20 53 45  UES('xyz');.  SE
1bb0: 4c 45 43 54 20 74 34 32 2e 72 6f 77 69 64 20 46  LECT t42.rowid F
1bc0: 52 4f 4d 20 74 34 31 2c 20 74 34 32 3b 0a 7d 20  ROM t41, t42;.} 
1bd0: 7b 31 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  {1}.do_execsql_t
1be0: 65 73 74 20 34 2e 32 20 7b 0a 20 20 53 45 4c 45  est 4.2 {.  SELE
1bf0: 43 54 20 74 34 32 2e 72 6f 77 69 64 20 46 52 4f  CT t42.rowid FRO
1c00: 4d 20 74 34 32 2c 20 74 34 31 3b 0a 7d 20 7b 31  M t42, t41;.} {1
1c10: 7d 0a 20 20 0a 66 69 6e 69 73 68 5f 74 65 73 74  }.  .finish_test
1c20: 0a                                               .