/ Hex Artifact Content
Login

Artifact 0e9934283259a5e637eec756a7eefd6964c0f79b:


0000: 23 20 32 30 30 31 20 4f 63 74 6f 62 65 72 20 37  # 2001 October 7
0010: 0a 23 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20  .#.# The author 
0020: 64 69 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69  disclaims copyri
0030: 67 68 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72  ght to this sour
0040: 63 65 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61  ce code.  In pla
0050: 63 65 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20  ce of.# a legal 
0060: 6e 6f 74 69 63 65 2c 20 68 65 72 65 20 69 73 20  notice, here is 
0070: 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20  a blessing:.#.# 
0080: 20 20 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f     May you do go
0090: 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e  od and not evil.
00a0: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69  .#    May you fi
00b0: 6e 64 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66  nd forgiveness f
00c0: 6f 72 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20  or yourself and 
00d0: 66 6f 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a  forgive others..
00e0: 23 20 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61  #    May you sha
00f0: 72 65 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72  re freely, never
0100: 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61   taking more tha
0110: 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a  n 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 0a 23 20 54 68 69 73 20 66 69  ******.# This fi
0170: 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65  le implements re
0180: 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73 20 66  gression tests f
0190: 6f 72 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72  or SQLite librar
01a0: 79 2e 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65  y..#.# This file
01b0: 20 69 6d 70 6c 65 6d 65 6e 74 73 20 74 65 73 74   implements test
01c0: 73 20 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20  s for temporary 
01d0: 74 61 62 6c 65 73 20 61 6e 64 20 69 6e 64 69 63  tables and indic
01e0: 65 73 2e 0a 23 0a 23 20 24 49 64 3a 20 74 65 6d  es..#.# $Id: tem
01f0: 70 74 61 62 6c 65 2e 74 65 73 74 2c 76 20 31 2e  ptable.test,v 1.
0200: 34 20 32 30 30 32 2f 30 31 2f 31 30 20 31 34 3a  4 2002/01/10 14:
0210: 33 31 3a 34 39 20 64 72 68 20 45 78 70 20 24 0a  31:49 drh Exp $.
0220: 0a 73 65 74 20 74 65 73 74 64 69 72 20 5b 66 69  .set testdir [fi
0230: 6c 65 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76  le dirname $argv
0240: 30 5d 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64  0].source $testd
0250: 69 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a 23  ir/tester.tcl..#
0260: 20 43 72 65 61 74 65 20 61 6e 20 61 6c 74 65 72   Create an alter
0270: 6e 61 74 69 76 65 20 63 6f 6e 6e 65 63 74 69 6f  native connectio
0280: 6e 20 74 6f 20 74 68 65 20 64 61 74 61 62 61 73  n to the databas
0290: 65 0a 23 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70  e.#.do_test temp
02a0: 74 61 62 6c 65 2d 31 2e 30 20 7b 0a 20 20 73 71  table-1.0 {.  sq
02b0: 6c 69 74 65 20 64 62 32 20 2e 2f 74 65 73 74 2e  lite db2 ./test.
02c0: 64 62 0a 7d 20 7b 7d 0a 0a 23 20 43 72 65 61 74  db.} {}..# Creat
02d0: 65 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 74 61  e a permanent ta
02e0: 62 6c 65 2e 0a 23 0a 64 6f 5f 74 65 73 74 20 74  ble..#.do_test t
02f0: 65 6d 70 74 61 62 6c 65 2d 31 2e 31 20 7b 0a 20  emptable-1.1 {. 
0300: 20 65 78 65 63 73 71 6c 20 7b 43 52 45 41 54 45   execsql {CREATE
0310: 20 54 41 42 4c 45 20 74 31 28 61 2c 62 2c 63 29   TABLE t1(a,b,c)
0320: 3b 7d 0a 20 20 65 78 65 63 73 71 6c 20 7b 49 4e  ;}.  execsql {IN
0330: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c  SERT INTO t1 VAL
0340: 55 45 53 28 31 2c 32 2c 33 29 3b 7d 0a 20 20 65  UES(1,2,3);}.  e
0350: 78 65 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 2a  xecsql {SELECT *
0360: 20 46 52 4f 4d 20 74 31 7d 0a 7d 20 7b 31 20 32   FROM t1}.} {1 2
0370: 20 33 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70   3}.do_test temp
0380: 74 61 62 6c 65 2d 31 2e 32 20 7b 0a 20 20 63 61  table-1.2 {.  ca
0390: 74 63 68 20 7b 64 62 32 20 65 76 61 6c 20 7b 53  tch {db2 eval {S
03a0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 73 71 6c  ELECT * FROM sql
03b0: 69 74 65 5f 6d 61 73 74 65 72 7d 7d 0a 20 20 64  ite_master}}.  d
03c0: 62 32 20 65 76 61 6c 20 7b 53 45 4c 45 43 54 20  b2 eval {SELECT 
03d0: 2a 20 46 52 4f 4d 20 74 31 7d 0a 7d 20 7b 31 20  * FROM t1}.} {1 
03e0: 32 20 33 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d  2 3}.do_test tem
03f0: 70 74 61 62 6c 65 2d 31 2e 33 20 7b 0a 20 20 65  ptable-1.3 {.  e
0400: 78 65 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 6e  xecsql {SELECT n
0410: 61 6d 65 20 46 52 4f 4d 20 73 71 6c 69 74 65 5f  ame FROM sqlite_
0420: 6d 61 73 74 65 72 7d 0a 7d 20 7b 74 31 7d 0a 64  master}.} {t1}.d
0430: 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62 6c 65  o_test temptable
0440: 2d 31 2e 34 20 7b 0a 20 20 64 62 32 20 65 76 61  -1.4 {.  db2 eva
0450: 6c 20 7b 53 45 4c 45 43 54 20 6e 61 6d 65 20 46  l {SELECT name F
0460: 52 4f 4d 20 73 71 6c 69 74 65 5f 6d 61 73 74 65  ROM sqlite_maste
0470: 72 7d 0a 7d 20 7b 74 31 7d 0a 0a 23 20 43 72 65  r}.} {t1}..# Cre
0480: 61 74 65 20 61 20 74 65 6d 70 6f 72 61 72 79 20  ate a temporary 
0490: 74 61 62 6c 65 2e 20 20 56 65 72 69 66 79 20 74  table.  Verify t
04a0: 68 61 74 20 6f 6e 6c 79 20 6f 6e 65 20 6f 66 20  hat only one of 
04b0: 74 68 65 20 74 77 6f 0a 23 20 70 72 6f 63 65 73  the two.# proces
04c0: 73 65 73 20 63 61 6e 20 73 65 65 20 69 74 2e 0a  ses can see it..
04d0: 23 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61  #.do_test tempta
04e0: 62 6c 65 2d 31 2e 35 20 7b 0a 20 20 64 62 32 20  ble-1.5 {.  db2 
04f0: 65 76 61 6c 20 7b 0a 20 20 20 20 43 52 45 41 54  eval {.    CREAT
0500: 45 20 54 45 4d 50 20 54 41 42 4c 45 20 74 32 28  E TEMP TABLE t2(
0510: 78 2c 79 2c 7a 29 3b 0a 20 20 20 20 49 4e 53 45  x,y,z);.    INSE
0520: 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45  RT INTO t2 VALUE
0530: 53 28 34 2c 35 2c 36 29 3b 0a 20 20 7d 0a 20 20  S(4,5,6);.  }.  
0540: 64 62 32 20 65 76 61 6c 20 7b 53 45 4c 45 43 54  db2 eval {SELECT
0550: 20 2a 20 46 52 4f 4d 20 74 32 7d 0a 7d 20 7b 34   * FROM t2}.} {4
0560: 20 35 20 36 7d 0a 64 6f 5f 74 65 73 74 20 74 65   5 6}.do_test te
0570: 6d 70 74 61 62 6c 65 2d 31 2e 36 20 7b 0a 20 20  mptable-1.6 {.  
0580: 63 61 74 63 68 20 7b 65 78 65 63 73 71 6c 20 7b  catch {execsql {
0590: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 73 71  SELECT * FROM sq
05a0: 6c 69 74 65 5f 6d 61 73 74 65 72 7d 7d 0a 20 20  lite_master}}.  
05b0: 63 61 74 63 68 73 71 6c 20 7b 53 45 4c 45 43 54  catchsql {SELECT
05c0: 20 2a 20 46 52 4f 4d 20 74 32 7d 0a 7d 20 7b 31   * FROM t2}.} {1
05d0: 20 7b 6e 6f 20 73 75 63 68 20 74 61 62 6c 65 3a   {no such table:
05e0: 20 74 32 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 65   t2}}.do_test te
05f0: 6d 70 74 61 62 6c 65 2d 31 2e 37 20 7b 0a 20 20  mptable-1.7 {.  
0600: 63 61 74 63 68 73 71 6c 20 7b 49 4e 53 45 52 54  catchsql {INSERT
0610: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
0620: 38 2c 39 2c 30 29 3b 7d 0a 7d 20 7b 31 20 7b 6e  8,9,0);}.} {1 {n
0630: 6f 20 73 75 63 68 20 74 61 62 6c 65 3a 20 74 32  o such table: t2
0640: 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74  }}.do_test tempt
0650: 61 62 6c 65 2d 31 2e 38 20 7b 0a 20 20 64 62 32  able-1.8 {.  db2
0660: 20 65 76 61 6c 20 7b 49 4e 53 45 52 54 20 49 4e   eval {INSERT IN
0670: 54 4f 20 74 32 20 56 41 4c 55 45 53 28 38 2c 39  TO t2 VALUES(8,9
0680: 2c 30 29 3b 7d 0a 20 20 64 62 32 20 65 76 61 6c  ,0);}.  db2 eval
0690: 20 7b 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20   {SELECT * FROM 
06a0: 74 32 20 4f 52 44 45 52 20 42 59 20 78 7d 0a 7d  t2 ORDER BY x}.}
06b0: 20 7b 34 20 35 20 36 20 38 20 39 20 30 7d 0a 64   {4 5 6 8 9 0}.d
06c0: 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62 6c 65  o_test temptable
06d0: 2d 31 2e 39 20 7b 0a 20 20 64 62 32 20 65 76 61  -1.9 {.  db2 eva
06e0: 6c 20 7b 44 45 4c 45 54 45 20 46 52 4f 4d 20 74  l {DELETE FROM t
06f0: 32 20 57 48 45 52 45 20 78 3d 3d 38 7d 0a 20 20  2 WHERE x==8}.  
0700: 64 62 32 20 65 76 61 6c 20 7b 53 45 4c 45 43 54  db2 eval {SELECT
0710: 20 2a 20 46 52 4f 4d 20 74 32 20 4f 52 44 45 52   * FROM t2 ORDER
0720: 20 42 59 20 78 7d 0a 7d 20 7b 34 20 35 20 36 7d   BY x}.} {4 5 6}
0730: 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62  .do_test temptab
0740: 6c 65 2d 31 2e 31 30 20 7b 0a 20 20 64 62 32 20  le-1.10 {.  db2 
0750: 65 76 61 6c 20 7b 44 45 4c 45 54 45 20 46 52 4f  eval {DELETE FRO
0760: 4d 20 74 32 7d 0a 20 20 64 62 32 20 65 76 61 6c  M t2}.  db2 eval
0770: 20 7b 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20   {SELECT * FROM 
0780: 74 32 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74  t2}.} {}.do_test
0790: 20 74 65 6d 70 74 61 62 6c 65 2d 31 2e 31 31 20   temptable-1.11 
07a0: 7b 0a 20 20 64 62 32 20 65 76 61 6c 20 7b 0a 20  {.  db2 eval {. 
07b0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
07c0: 74 32 20 56 41 4c 55 45 53 28 37 2c 36 2c 35 29  t2 VALUES(7,6,5)
07d0: 3b 0a 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e  ;.     INSERT IN
07e0: 54 4f 20 74 32 20 56 41 4c 55 45 53 28 34 2c 33  TO t2 VALUES(4,3
07f0: 2c 32 29 3b 0a 20 20 20 20 20 53 45 4c 45 43 54  ,2);.     SELECT
0800: 20 2a 20 46 52 4f 4d 20 74 32 20 4f 52 44 45 52   * FROM t2 ORDER
0810: 20 42 59 20 78 3b 0a 20 20 7d 0a 7d 20 7b 34 20   BY x;.  }.} {4 
0820: 33 20 32 20 37 20 36 20 35 7d 0a 64 6f 5f 74 65  3 2 7 6 5}.do_te
0830: 73 74 20 74 65 6d 70 74 61 62 6c 65 2d 31 2e 31  st temptable-1.1
0840: 32 20 7b 0a 20 20 64 62 32 20 65 76 61 6c 20 7b  2 {.  db2 eval {
0850: 44 52 4f 50 20 54 41 42 4c 45 20 74 32 3b 7d 0a  DROP TABLE t2;}.
0860: 20 20 73 65 74 20 72 20 5b 63 61 74 63 68 20 7b    set r [catch {
0870: 64 62 32 20 65 76 61 6c 20 7b 53 45 4c 45 43 54  db2 eval {SELECT
0880: 20 2a 20 46 52 4f 4d 20 74 32 7d 7d 20 6d 73 67   * FROM t2}} msg
0890: 5d 0a 20 20 6c 61 70 70 65 6e 64 20 72 20 24 6d  ].  lappend r $m
08a0: 73 67 0a 7d 20 7b 31 20 7b 6e 6f 20 73 75 63 68  sg.} {1 {no such
08b0: 20 74 61 62 6c 65 3a 20 74 32 7d 7d 0a 0a 23 20   table: t2}}..# 
08c0: 4d 61 6b 65 20 73 75 72 65 20 74 65 6d 70 6f 72  Make sure tempor
08d0: 61 72 79 20 74 61 62 6c 65 73 20 77 6f 72 6b 20  ary tables work 
08e0: 77 69 74 68 20 74 72 61 6e 73 61 63 74 69 6f 6e  with transaction
08f0: 73 0a 23 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70  s.#.do_test temp
0900: 74 61 62 6c 65 2d 32 2e 31 20 7b 0a 20 20 65 78  table-2.1 {.  ex
0910: 65 63 73 71 6c 20 7b 0a 20 20 20 20 42 45 47 49  ecsql {.    BEGI
0920: 4e 20 54 52 41 4e 53 41 43 54 49 4f 4e 3b 0a 20  N TRANSACTION;. 
0930: 20 20 20 43 52 45 41 54 45 20 54 45 4d 50 4f 52     CREATE TEMPOR
0940: 41 52 59 20 54 41 42 4c 45 20 74 32 28 78 2c 79  ARY TABLE t2(x,y
0950: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
0960: 54 4f 20 74 32 20 56 41 4c 55 45 53 28 31 2c 32  TO t2 VALUES(1,2
0970: 29 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20  );.    SELECT * 
0980: 46 52 4f 4d 20 74 32 3b 0a 20 20 7d 0a 7d 20 7b  FROM t2;.  }.} {
0990: 31 20 32 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d  1 2}.do_test tem
09a0: 70 74 61 62 6c 65 2d 32 2e 32 20 7b 0a 20 20 65  ptable-2.2 {.  e
09b0: 78 65 63 73 71 6c 20 7b 52 4f 4c 4c 42 41 43 4b  xecsql {ROLLBACK
09c0: 7d 0a 20 20 63 61 74 63 68 73 71 6c 20 7b 53 45  }.  catchsql {SE
09d0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 7d 0a  LECT * FROM t2}.
09e0: 7d 20 7b 31 20 7b 6e 6f 20 73 75 63 68 20 74 61  } {1 {no such ta
09f0: 62 6c 65 3a 20 74 32 7d 7d 0a 64 6f 5f 74 65 73  ble: t2}}.do_tes
0a00: 74 20 74 65 6d 70 74 61 62 6c 65 2d 32 2e 33 20  t temptable-2.3 
0a10: 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20  {.  execsql {.  
0a20: 20 20 42 45 47 49 4e 20 54 52 41 4e 53 41 43 54    BEGIN TRANSACT
0a30: 49 4f 4e 3b 0a 20 20 20 20 43 52 45 41 54 45 20  ION;.    CREATE 
0a40: 54 45 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 20  TEMPORARY TABLE 
0a50: 74 32 28 78 2c 79 29 3b 0a 20 20 20 20 49 4e 53  t2(x,y);.    INS
0a60: 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55  ERT INTO t2 VALU
0a70: 45 53 28 31 2c 32 29 3b 0a 20 20 20 20 53 45 4c  ES(1,2);.    SEL
0a80: 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a 20  ECT * FROM t2;. 
0a90: 20 7d 0a 7d 20 7b 31 20 32 7d 0a 64 6f 5f 74 65   }.} {1 2}.do_te
0aa0: 73 74 20 74 65 6d 70 74 61 62 6c 65 2d 32 2e 34  st temptable-2.4
0ab0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 43 4f   {.  execsql {CO
0ac0: 4d 4d 49 54 7d 0a 20 20 63 61 74 63 68 73 71 6c  MMIT}.  catchsql
0ad0: 20 7b 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20   {SELECT * FROM 
0ae0: 74 32 7d 0a 7d 20 7b 30 20 7b 31 20 32 7d 7d 0a  t2}.} {0 {1 2}}.
0af0: 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62 6c  do_test temptabl
0b00: 65 2d 32 2e 35 20 7b 0a 20 20 73 65 74 20 72 20  e-2.5 {.  set r 
0b10: 5b 63 61 74 63 68 20 7b 64 62 32 20 65 76 61 6c  [catch {db2 eval
0b20: 20 7b 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20   {SELECT * FROM 
0b30: 74 32 7d 7d 20 6d 73 67 5d 0a 20 20 6c 61 70 70  t2}} msg].  lapp
0b40: 65 6e 64 20 72 20 24 6d 73 67 0a 7d 20 7b 31 20  end r $msg.} {1 
0b50: 7b 6e 6f 20 73 75 63 68 20 74 61 62 6c 65 3a 20  {no such table: 
0b60: 74 32 7d 7d 0a 0a 0a 23 20 4d 61 6b 65 20 73 75  t2}}...# Make su
0b70: 72 65 20 69 6e 64 69 63 65 73 20 6f 6e 20 74 65  re indices on te
0b80: 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 73 20 61  mporary tables a
0b90: 72 65 20 61 6c 73 6f 20 74 65 6d 70 6f 72 61 72  re also temporar
0ba0: 79 2e 0a 23 0a 64 6f 5f 74 65 73 74 20 74 65 6d  y..#.do_test tem
0bb0: 70 74 61 62 6c 65 2d 33 2e 31 20 7b 0a 20 20 65  ptable-3.1 {.  e
0bc0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 43 52 45  xecsql {.    CRE
0bd0: 41 54 45 20 49 4e 44 45 58 20 69 32 20 4f 4e 20  ATE INDEX i2 ON 
0be0: 74 32 28 78 29 3b 0a 20 20 20 20 53 45 4c 45 43  t2(x);.    SELEC
0bf0: 54 20 6e 61 6d 65 20 46 52 4f 4d 20 73 71 6c 69  T name FROM sqli
0c00: 74 65 5f 6d 61 73 74 65 72 20 57 48 45 52 45 20  te_master WHERE 
0c10: 74 79 70 65 3d 27 69 6e 64 65 78 27 3b 0a 20 20  type='index';.  
0c20: 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 74  }.} {}.do_test t
0c30: 65 6d 70 74 61 62 6c 65 2d 33 2e 32 20 7b 0a 20  emptable-3.2 {. 
0c40: 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53   execsql {.    S
0c50: 45 4c 45 43 54 20 79 20 46 52 4f 4d 20 74 32 20  ELECT y FROM t2 
0c60: 57 48 45 52 45 20 78 3d 31 3b 0a 20 20 7d 0a 7d  WHERE x=1;.  }.}
0c70: 20 7b 32 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d   {2}.do_test tem
0c80: 70 74 61 62 6c 65 2d 33 2e 33 20 7b 0a 20 20 65  ptable-3.3 {.  e
0c90: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 44 52 4f  xecsql {.    DRO
0ca0: 50 20 49 4e 44 45 58 20 69 32 3b 0a 20 20 20 20  P INDEX i2;.    
0cb0: 53 45 4c 45 43 54 20 79 20 46 52 4f 4d 20 74 32  SELECT y FROM t2
0cc0: 20 57 48 45 52 45 20 78 3d 31 3b 0a 20 20 7d 0a   WHERE x=1;.  }.
0cd0: 7d 20 7b 32 7d 0a 64 6f 5f 74 65 73 74 20 74 65  } {2}.do_test te
0ce0: 6d 70 74 61 62 6c 65 2d 33 2e 34 20 7b 0a 20 20  mptable-3.4 {.  
0cf0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 43 52  execsql {.    CR
0d00: 45 41 54 45 20 49 4e 44 45 58 20 69 32 20 4f 4e  EATE INDEX i2 ON
0d10: 20 74 32 28 78 29 3b 0a 20 20 20 20 44 52 4f 50   t2(x);.    DROP
0d20: 20 54 41 42 4c 45 20 74 32 3b 0a 20 20 7d 0a 20   TABLE t2;.  }. 
0d30: 20 63 61 74 63 68 73 71 6c 20 7b 44 52 4f 50 20   catchsql {DROP 
0d40: 49 4e 44 45 58 20 69 32 7d 0a 7d 20 7b 31 20 7b  INDEX i2}.} {1 {
0d50: 6e 6f 20 73 75 63 68 20 69 6e 64 65 78 3a 20 69  no such index: i
0d60: 32 7d 7d 0a 0a 23 20 43 68 65 63 6b 20 66 6f 72  2}}..# Check for
0d70: 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 20 63 6f   correct name co
0d80: 6c 6c 69 73 69 6f 6e 20 70 72 6f 63 65 73 73 69  llision processi
0d90: 6e 67 2e 20 41 20 6e 61 6d 65 20 63 6f 6c 6c 69  ng. A name colli
0da0: 73 69 6f 6e 20 63 61 6e 0a 23 20 6f 63 63 75 72  sion can.# occur
0db0: 20 77 68 65 6e 20 70 72 6f 63 65 73 73 20 41 20   when process A 
0dc0: 63 72 65 61 74 65 73 20 61 20 74 65 6d 70 6f 72  creates a tempor
0dd0: 61 72 79 20 74 61 62 6c 65 20 54 20 74 68 65 6e  ary table T then
0de0: 20 70 72 6f 63 65 73 73 20 42 0a 23 20 63 72 65   process B.# cre
0df0: 61 74 65 73 20 61 20 70 65 72 6d 61 6e 65 6e 74  ates a permanent
0e00: 20 74 61 62 6c 65 20 61 6c 73 6f 20 6e 61 6d 65   table also name
0e10: 64 20 54 2e 20 20 54 68 65 20 74 65 6d 70 20 74  d T.  The temp t
0e20: 61 62 6c 65 20 69 6e 20 70 72 6f 63 65 73 73 20  able in process 
0e30: 41 0a 23 20 68 69 64 65 73 20 74 68 65 20 65 78  A.# hides the ex
0e40: 69 73 74 61 6e 63 65 20 6f 66 20 74 68 65 20 70  istance of the p
0e50: 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65 2e 0a  ermanent table..
0e60: 23 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61  #.do_test tempta
0e70: 62 6c 65 2d 34 2e 31 20 7b 0a 20 20 65 78 65 63  ble-4.1 {.  exec
0e80: 73 71 6c 20 7b 0a 20 20 20 20 43 52 45 41 54 45  sql {.    CREATE
0e90: 20 54 45 4d 50 20 54 41 42 4c 45 20 74 32 28 78   TEMP TABLE t2(x
0ea0: 2c 79 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  ,y);.    INSERT 
0eb0: 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28 31  INTO t2 VALUES(1
0ec0: 30 2c 32 30 29 3b 0a 20 20 20 20 53 45 4c 45 43  0,20);.    SELEC
0ed0: 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20 7d  T * FROM t2;.  }
0ee0: 20 64 62 32 0a 7d 20 7b 31 30 20 32 30 7d 0a 64   db2.} {10 20}.d
0ef0: 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62 6c 65  o_test temptable
0f00: 2d 34 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  -4.2 {.  execsql
0f10: 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54 41   {.    CREATE TA
0f20: 42 4c 45 20 74 32 28 78 2c 79 2c 7a 29 3b 0a 20  BLE t2(x,y,z);. 
0f30: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0f40: 32 20 56 41 4c 55 45 53 28 39 2c 38 2c 37 29 3b  2 VALUES(9,8,7);
0f50: 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52  .    SELECT * FR
0f60: 4f 4d 20 74 32 3b 0a 20 20 7d 0a 7d 20 7b 39 20  OM t2;.  }.} {9 
0f70: 38 20 37 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d  8 7}.do_test tem
0f80: 70 74 61 62 6c 65 2d 34 2e 33 20 7b 0a 20 20 63  ptable-4.3 {.  c
0f90: 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 53 45  atchsql {.    SE
0fa0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a  LECT * FROM t2;.
0fb0: 20 20 7d 20 64 62 32 0a 7d 20 7b 31 20 7b 64 61    } db2.} {1 {da
0fc0: 74 61 62 61 73 65 20 73 63 68 65 6d 61 20 68 61  tabase schema ha
0fd0: 73 20 63 68 61 6e 67 65 64 7d 7d 0a 64 6f 5f 74  s changed}}.do_t
0fe0: 65 73 74 20 74 65 6d 70 74 61 62 6c 65 2d 34 2e  est temptable-4.
0ff0: 34 20 7b 0a 20 20 63 61 74 63 68 73 71 6c 20 7b  4 {.  catchsql {
1000: 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52  .    SELECT * FR
1010: 4f 4d 20 74 32 3b 0a 20 20 7d 20 64 62 32 0a 7d  OM t2;.  } db2.}
1020: 20 7b 30 20 7b 31 30 20 32 30 7d 7d 0a 64 6f 5f   {0 {10 20}}.do_
1030: 74 65 73 74 20 74 65 6d 70 74 61 62 6c 65 2d 34  test temptable-4
1040: 2e 35 20 7b 0a 20 20 63 61 74 63 68 73 71 6c 20  .5 {.  catchsql 
1050: 7b 0a 20 20 20 20 44 52 4f 50 20 54 41 42 4c 45  {.    DROP TABLE
1060: 20 74 32 3b 0a 20 20 20 20 53 45 4c 45 43 54 20   t2;.    SELECT 
1070: 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20 7d 20 64  * FROM t2;.  } d
1080: 62 32 0a 7d 20 7b 31 20 7b 6e 6f 20 73 75 63 68  b2.} {1 {no such
1090: 20 74 61 62 6c 65 3a 20 74 32 7d 7d 0a 64 6f 5f   table: t2}}.do_
10a0: 74 65 73 74 20 74 65 6d 70 74 61 62 6c 65 2d 34  test temptable-4
10b0: 2e 36 20 7b 0a 20 20 64 62 32 20 63 6c 6f 73 65  .6 {.  db2 close
10c0: 0a 20 20 73 71 6c 69 74 65 20 64 62 32 20 2e 2f  .  sqlite db2 ./
10d0: 74 65 73 74 2e 64 62 0a 20 20 63 61 74 63 68 73  test.db.  catchs
10e0: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
10f0: 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20 7d 20 64  * FROM t2;.  } d
1100: 62 32 0a 7d 20 7b 30 20 7b 39 20 38 20 37 7d 7d  b2.} {0 {9 8 7}}
1110: 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62  .do_test temptab
1120: 6c 65 2d 34 2e 37 20 7b 0a 20 20 63 61 74 63 68  le-4.7 {.  catch
1130: 73 71 6c 20 7b 0a 20 20 20 20 44 52 4f 50 20 54  sql {.    DROP T
1140: 41 42 4c 45 20 74 32 3b 0a 20 20 20 20 53 45 4c  ABLE t2;.    SEL
1150: 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a 20  ECT * FROM t2;. 
1160: 20 7d 0a 7d 20 7b 31 20 7b 6e 6f 20 73 75 63 68   }.} {1 {no such
1170: 20 74 61 62 6c 65 3a 20 74 32 7d 7d 0a 64 6f 5f   table: t2}}.do_
1180: 74 65 73 74 20 74 65 6d 70 74 61 62 6c 65 2d 34  test temptable-4
1190: 2e 38 20 7b 0a 20 20 64 62 32 20 63 6c 6f 73 65  .8 {.  db2 close
11a0: 0a 20 20 73 71 6c 69 74 65 20 64 62 32 20 2e 2f  .  sqlite db2 ./
11b0: 74 65 73 74 2e 64 62 0a 20 20 65 78 65 63 73 71  test.db.  execsq
11c0: 6c 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54  l {.    CREATE T
11d0: 45 4d 50 20 54 41 42 4c 45 20 74 32 28 78 20 75  EMP TABLE t2(x u
11e0: 6e 69 71 75 65 2c 79 29 3b 0a 20 20 20 20 49 4e  nique,y);.    IN
11f0: 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c  SERT INTO t2 VAL
1200: 55 45 53 28 31 2c 32 29 3b 0a 20 20 20 20 53 45  UES(1,2);.    SE
1210: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a  LECT * FROM t2;.
1220: 20 20 7d 20 64 62 32 0a 7d 20 7b 31 20 32 7d 0a    } db2.} {1 2}.
1230: 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62 6c  do_test temptabl
1240: 65 2d 34 2e 39 20 7b 0a 20 20 65 78 65 63 73 71  e-4.9 {.  execsq
1250: 6c 20 7b 0a 20 20 20 20 43 52 45 41 54 45 20 54  l {.    CREATE T
1260: 41 42 4c 45 20 74 32 28 78 20 75 6e 69 71 75 65  ABLE t2(x unique
1270: 2c 20 79 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  , y);.    INSERT
1280: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
1290: 33 2c 34 29 3b 0a 20 20 20 20 53 45 4c 45 43 54  3,4);.    SELECT
12a0: 20 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20 7d 0a   * FROM t2;.  }.
12b0: 7d 20 7b 33 20 34 7d 0a 64 6f 5f 74 65 73 74 20  } {3 4}.do_test 
12c0: 74 65 6d 70 74 61 62 6c 65 2d 34 2e 31 30 20 7b  temptable-4.10 {
12d0: 0a 20 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20  .  catchsql {.  
12e0: 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20    SELECT * FROM 
12f0: 74 32 3b 0a 20 20 7d 20 64 62 32 0a 7d 20 7b 31  t2;.  } db2.} {1
1300: 20 7b 64 61 74 61 62 61 73 65 20 73 63 68 65 6d   {database schem
1310: 61 20 68 61 73 20 63 68 61 6e 67 65 64 7d 7d 0a  a has changed}}.
1320: 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62 6c  do_test temptabl
1330: 65 2d 34 2e 31 31 20 7b 0a 20 20 65 78 65 63 73  e-4.11 {.  execs
1340: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
1350: 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20 7d 20 64  * FROM t2;.  } d
1360: 62 32 0a 7d 20 7b 31 20 32 7d 0a 64 6f 5f 74 65  b2.} {1 2}.do_te
1370: 73 74 20 74 65 6d 70 74 61 62 6c 65 2d 34 2e 31  st temptable-4.1
1380: 32 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  2 {.  execsql {.
1390: 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f      SELECT * FRO
13a0: 4d 20 74 32 3b 0a 20 20 7d 0a 7d 20 7b 33 20 34  M t2;.  }.} {3 4
13b0: 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61  }.do_test tempta
13c0: 62 6c 65 2d 34 2e 31 33 20 7b 0a 20 20 63 61 74  ble-4.13 {.  cat
13d0: 63 68 73 71 6c 20 7b 0a 20 20 20 20 44 52 4f 50  chsql {.    DROP
13e0: 20 54 41 42 4c 45 20 74 32 3b 0a 20 20 20 20 53   TABLE t2;.    S
13f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b  ELECT * FROM t2;
1400: 0a 20 20 7d 20 64 62 32 0a 7d 20 7b 31 20 7b 6e  .  } db2.} {1 {n
1410: 6f 20 73 75 63 68 20 74 61 62 6c 65 3a 20 74 32  o such table: t2
1420: 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74  }}.do_test tempt
1430: 61 62 6c 65 2d 34 2e 31 34 20 7b 0a 20 20 65 78  able-4.14 {.  ex
1440: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
1450: 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a 20 20  CT * FROM t2;.  
1460: 7d 0a 7d 20 7b 33 20 34 7d 0a 64 6f 5f 74 65 73  }.} {3 4}.do_tes
1470: 74 20 74 65 6d 70 74 61 62 6c 65 2d 34 2e 31 35  t temptable-4.15
1480: 20 7b 0a 20 20 64 62 32 20 63 6c 6f 73 65 0a 20   {.  db2 close. 
1490: 20 73 71 6c 69 74 65 20 64 62 32 20 2e 2f 74 65   sqlite db2 ./te
14a0: 73 74 2e 64 62 0a 20 20 65 78 65 63 73 71 6c 20  st.db.  execsql 
14b0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46  {.    SELECT * F
14c0: 52 4f 4d 20 74 32 3b 0a 20 20 7d 20 64 62 32 0a  ROM t2;.  } db2.
14d0: 7d 20 7b 33 20 34 7d 0a 0a 23 20 4e 6f 77 20 63  } {3 4}..# Now c
14e0: 72 65 61 74 65 20 61 20 74 65 6d 70 6f 72 61 72  reate a temporar
14f0: 79 20 74 61 62 6c 65 20 69 6e 20 64 62 32 20 61  y table in db2 a
1500: 6e 64 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 69  nd a permanent i
1510: 6e 64 65 78 20 69 6e 20 64 62 2e 20 20 54 68 65  ndex in db.  The
1520: 0a 23 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62  .# temporary tab
1530: 6c 65 20 69 6e 20 64 62 32 20 73 68 6f 75 6c 64  le in db2 should
1540: 20 6d 61 73 6b 20 74 68 65 20 6e 61 6d 65 20 6f   mask the name o
1550: 66 20 74 68 65 20 70 65 72 6d 61 6e 65 6e 74 20  f the permanent 
1560: 69 6e 64 65 78 2c 0a 23 20 62 75 74 20 74 68 65  index,.# but the
1570: 20 70 65 72 6d 61 6e 65 6e 74 20 69 6e 64 65 78   permanent index
1580: 20 73 68 6f 75 6c 64 20 73 74 69 6c 6c 20 62 65   should still be
1590: 20 61 63 63 65 73 73 69 62 6c 65 20 61 6e 64 20   accessible and 
15a0: 73 68 6f 75 6c 64 20 73 74 69 6c 6c 0a 23 20 62  should still.# b
15b0: 65 20 75 70 64 61 74 65 64 20 77 68 65 6e 20 69  e updated when i
15c0: 74 73 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  ts corresponding
15d0: 20 74 61 62 6c 65 20 63 68 61 6e 67 65 73 2e 0a   table changes..
15e0: 23 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61  #.do_test tempta
15f0: 62 6c 65 2d 35 2e 31 20 7b 0a 20 20 65 78 65 63  ble-5.1 {.  exec
1600: 73 71 6c 20 7b 0a 20 20 20 20 43 52 45 41 54 45  sql {.    CREATE
1610: 20 54 45 4d 50 20 54 41 42 4c 45 20 6d 61 73 6b   TEMP TABLE mask
1620: 28 61 2c 62 2c 63 29 0a 20 20 7d 20 64 62 32 0a  (a,b,c).  } db2.
1630: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
1640: 43 52 45 41 54 45 20 49 4e 44 45 58 20 6d 61 73  CREATE INDEX mas
1650: 6b 20 4f 4e 20 74 32 28 78 29 3b 0a 20 20 20 20  k ON t2(x);.    
1660: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32  SELECT * FROM t2
1670: 3b 0a 20 20 7d 0a 7d 20 7b 33 20 34 7d 0a 64 6f  ;.  }.} {3 4}.do
1680: 5f 74 65 73 74 20 74 65 6d 70 74 61 62 6c 65 2d  _test temptable-
1690: 35 2e 32 20 7b 0a 20 20 63 61 74 63 68 73 71 6c  5.2 {.  catchsql
16a0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20   {.    SELECT * 
16b0: 46 52 4f 4d 20 74 32 3b 0a 20 20 7d 20 64 62 32  FROM t2;.  } db2
16c0: 0a 7d 20 7b 31 20 7b 64 61 74 61 62 61 73 65 20  .} {1 {database 
16d0: 73 63 68 65 6d 61 20 68 61 73 20 63 68 61 6e 67  schema has chang
16e0: 65 64 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d  ed}}.do_test tem
16f0: 70 74 61 62 6c 65 2d 35 2e 33 20 7b 0a 20 20 63  ptable-5.3 {.  c
1700: 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 53 45  atchsql {.    SE
1710: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 3b 0a  LECT * FROM t2;.
1720: 20 20 7d 20 64 62 32 0a 7d 20 7b 30 20 7b 33 20    } db2.} {0 {3 
1730: 34 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70  4}}.do_test temp
1740: 74 61 62 6c 65 2d 35 2e 34 20 7b 0a 20 20 65 78  table-5.4 {.  ex
1750: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
1760: 43 54 20 79 20 46 52 4f 4d 20 74 32 20 57 48 45  CT y FROM t2 WHE
1770: 52 45 20 78 3d 33 0a 20 20 7d 0a 7d 20 7b 34 7d  RE x=3.  }.} {4}
1780: 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61 62  .do_test temptab
1790: 6c 65 2d 35 2e 35 20 7b 0a 20 20 65 78 65 63 73  le-5.5 {.  execs
17a0: 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  ql {.    SELECT 
17b0: 79 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45 20  y FROM t2 WHERE 
17c0: 78 3d 33 0a 20 20 7d 20 64 62 32 0a 7d 20 7b 34  x=3.  } db2.} {4
17d0: 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74 61  }.do_test tempta
17e0: 62 6c 65 2d 35 2e 36 20 7b 0a 20 20 65 78 65 63  ble-5.6 {.  exec
17f0: 73 71 6c 20 7b 0a 20 20 20 20 49 4e 53 45 52 54  sql {.    INSERT
1800: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
1810: 31 2c 32 29 3b 0a 20 20 20 20 53 45 4c 45 43 54  1,2);.    SELECT
1820: 20 79 20 46 52 4f 4d 20 74 32 20 57 48 45 52 45   y FROM t2 WHERE
1830: 20 78 3d 31 3b 0a 20 20 7d 20 64 62 32 0a 7d 20   x=1;.  } db2.} 
1840: 7b 32 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70  {2}.do_test temp
1850: 74 61 62 6c 65 2d 35 2e 37 20 7b 0a 20 20 65 78  table-5.7 {.  ex
1860: 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45  ecsql {.    SELE
1870: 43 54 20 79 20 46 52 4f 4d 20 74 32 20 57 48 45  CT y FROM t2 WHE
1880: 52 45 20 78 3d 33 0a 20 20 7d 20 64 62 32 0a 7d  RE x=3.  } db2.}
1890: 20 7b 34 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d   {4}.do_test tem
18a0: 70 74 61 62 6c 65 2d 35 2e 38 20 7b 0a 20 20 65  ptable-5.8 {.  e
18b0: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c  xecsql {.    SEL
18c0: 45 43 54 20 79 20 46 52 4f 4d 20 74 32 20 57 48  ECT y FROM t2 WH
18d0: 45 52 45 20 78 3d 31 3b 0a 20 20 7d 0a 7d 20 7b  ERE x=1;.  }.} {
18e0: 32 7d 0a 64 6f 5f 74 65 73 74 20 74 65 6d 70 74  2}.do_test tempt
18f0: 61 62 6c 65 2d 35 2e 39 20 7b 0a 20 20 65 78 65  able-5.9 {.  exe
1900: 63 73 71 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  csql {.    SELEC
1910: 54 20 79 20 46 52 4f 4d 20 74 32 20 57 48 45 52  T y FROM t2 WHER
1920: 45 20 78 3d 33 0a 20 20 7d 0a 7d 20 7b 34 7d 0a  E x=3.  }.} {4}.
1930: 0a 64 62 32 20 63 6c 6f 73 65 0a 0a 66 69 6e 69  .db2 close..fini
1940: 73 68 5f 74 65 73 74 0a                          sh_test.