/ Hex Artifact Content
Login

Artifact d881e787779a175238b72f55b5e50d3a85ab47a6:


0000: 23 20 32 30 30 31 20 53 65 70 74 65 6d 62 65 72  # 2001 September
0010: 20 31 35 0a 23 0a 23 20 54 68 65 20 61 75 74 68   15.#.# The auth
0020: 6f 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70  or disclaims cop
0030: 79 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73  yright to this s
0040: 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20  ource code.  In 
0050: 70 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67  place of.# a leg
0060: 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20  al notice, here 
0070: 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23  is a blessing:.#
0080: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f  .#    May you do
0090: 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76   good and not ev
00a0: 69 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75  il..#    May you
00b0: 20 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73   find forgivenes
00c0: 73 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61  s for yourself a
00d0: 6e 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72  nd forgive other
00e0: 73 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  s..#    May you 
00f0: 73 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65  share freely, ne
0100: 76 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20  ver taking more 
0110: 74 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23  than you give..#
0120: 0a 23 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 2a 2a 0a 23 20 54 68 69 73  *********.# This
0170: 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73   file implements
0180: 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74   regression test
0190: 73 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62  s for SQLite lib
01a0: 72 61 72 79 2e 20 20 54 68 65 0a 23 20 66 6f 63  rary.  The.# foc
01b0: 75 73 20 6f 66 20 74 68 69 73 20 66 69 6c 65 20  us of this file 
01c0: 69 73 20 74 65 73 74 69 6e 67 20 74 68 65 20 73  is testing the s
01d0: 71 6c 69 74 65 5f 65 78 65 63 5f 70 72 69 6e 74  qlite_exec_print
01e0: 66 28 29 20 61 6e 64 0a 23 20 73 71 6c 69 74 65  f() and.# sqlite
01f0: 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74  _get_table_print
0200: 66 28 29 20 41 50 49 73 2e 0a 23 0a 23 20 24 49  f() APIs..#.# $I
0210: 64 3a 20 74 61 62 6c 65 61 70 69 2e 74 65 73 74  d: tableapi.test
0220: 2c 76 20 31 2e 36 20 32 30 30 33 2f 30 39 2f 30  ,v 1.6 2003/09/0
0230: 39 20 30 30 3a 34 37 3a 34 37 20 64 72 68 20 45  9 00:47:47 drh E
0240: 78 70 20 24 0a 0a 73 65 74 20 74 65 73 74 64 69  xp $..set testdi
0250: 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20  r [file dirname 
0260: 24 61 72 67 76 30 5d 0a 73 6f 75 72 63 65 20 24  $argv0].source $
0270: 74 65 73 74 64 69 72 2f 74 65 73 74 65 72 2e 74  testdir/tester.t
0280: 63 6c 0a 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c  cl..do_test tabl
0290: 65 61 70 69 2d 31 2e 30 20 7b 0a 20 20 73 65 74  eapi-1.0 {.  set
02a0: 20 3a 3a 64 62 78 20 5b 73 71 6c 69 74 65 5f 6f   ::dbx [sqlite_o
02b0: 70 65 6e 20 74 65 73 74 2e 64 62 5d 0a 20 20 63  pen test.db].  c
02c0: 61 74 63 68 20 7b 73 71 6c 69 74 65 5f 65 78 65  atch {sqlite_exe
02d0: 63 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62 78 20  c_printf $::dbx 
02e0: 7b 44 52 4f 50 20 54 41 42 4c 45 20 78 79 7a 7d  {DROP TABLE xyz}
02f0: 20 7b 7d 7d 0a 20 20 73 71 6c 69 74 65 5f 65 78   {}}.  sqlite_ex
0300: 65 63 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62 78  ec_printf $::dbx
0310: 20 7b 43 52 45 41 54 45 20 54 41 42 4c 45 20 25   {CREATE TABLE %
0320: 73 28 61 20 69 6e 74 2c 20 62 20 74 65 78 74 29  s(a int, b text)
0330: 7d 20 78 79 7a 0a 7d 20 7b 30 20 7b 7d 7d 0a 64  } xyz.} {0 {}}.d
0340: 6f 5f 74 65 73 74 20 74 61 62 6c 65 61 70 69 2d  o_test tableapi-
0350: 31 2e 31 20 7b 0a 20 20 73 71 6c 69 74 65 5f 65  1.1 {.  sqlite_e
0360: 78 65 63 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62  xec_printf $::db
0370: 78 20 7b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  x {.    INSERT I
0380: 4e 54 4f 20 78 79 7a 20 56 41 4c 55 45 53 28 31  NTO xyz VALUES(1
0390: 2c 27 25 71 27 29 0a 20 20 7d 20 7b 48 69 20 59  ,'%q').  } {Hi Y
03a0: 27 61 6c 6c 7d 0a 7d 20 7b 30 20 7b 7d 7d 0a 64  'all}.} {0 {}}.d
03b0: 6f 5f 74 65 73 74 20 74 61 62 6c 65 61 70 69 2d  o_test tableapi-
03c0: 31 2e 32 20 7b 0a 20 20 73 71 6c 69 74 65 5f 65  1.2 {.  sqlite_e
03d0: 78 65 63 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62  xec_printf $::db
03e0: 78 20 7b 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  x {SELECT * FROM
03f0: 20 78 79 7a 7d 20 7b 7d 0a 7d 20 7b 30 20 7b 61   xyz} {}.} {0 {a
0400: 20 62 20 31 20 7b 48 69 20 59 27 61 6c 6c 7d 7d   b 1 {Hi Y'all}}
0410: 7d 0a 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c 65  }..do_test table
0420: 61 70 69 2d 32 2e 31 20 7b 0a 20 20 73 71 6c 69  api-2.1 {.  sqli
0430: 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72 69  te_get_table_pri
0440: 6e 74 66 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20  ntf $::dbx {.   
0450: 20 42 45 47 49 4e 20 54 52 41 4e 53 41 43 54 49   BEGIN TRANSACTI
0460: 4f 4e 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a  ON;.    SELECT *
0470: 20 46 52 4f 4d 20 78 79 7a 20 57 48 45 52 45 20   FROM xyz WHERE 
0480: 62 3d 27 25 71 27 0a 20 20 7d 20 7b 48 69 20 59  b='%q'.  } {Hi Y
0490: 27 61 6c 6c 7d 0a 7d 20 7b 30 20 31 20 32 20 61  'all}.} {0 1 2 a
04a0: 20 62 20 31 20 7b 48 69 20 59 27 61 6c 6c 7d 7d   b 1 {Hi Y'all}}
04b0: 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c 65 61 70  .do_test tableap
04c0: 69 2d 32 2e 32 20 7b 0a 20 20 73 71 6c 69 74 65  i-2.2 {.  sqlite
04d0: 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74  _get_table_print
04e0: 66 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20 20 53  f $::dbx {.    S
04f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 78 79 7a  ELECT * FROM xyz
0500: 0a 20 20 7d 20 7b 7d 0a 7d 20 7b 30 20 31 20 32  .  } {}.} {0 1 2
0510: 20 61 20 62 20 31 20 7b 48 69 20 59 27 61 6c 6c   a b 1 {Hi Y'all
0520: 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c 65  }}.do_test table
0530: 61 70 69 2d 32 2e 33 20 7b 0a 20 20 66 6f 72 20  api-2.3 {.  for 
0540: 7b 73 65 74 20 69 20 32 7d 20 7b 24 69 3c 3d 35  {set i 2} {$i<=5
0550: 30 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 20 20  0} {incr i} {.  
0560: 20 20 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62    sqlite_get_tab
0570: 6c 65 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62 78  le_printf $::dbx
0580: 20 5c 0a 20 20 20 20 20 20 20 22 49 4e 53 45 52   \.       "INSER
0590: 54 20 49 4e 54 4f 20 78 79 7a 20 56 41 4c 55 45  T INTO xyz VALUE
05a0: 53 28 24 69 2c 27 28 25 73 29 27 29 22 20 24 69  S($i,'(%s)')" $i
05b0: 0a 20 20 7d 0a 20 20 73 71 6c 69 74 65 5f 67 65  .  }.  sqlite_ge
05c0: 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74 66 20 24  t_table_printf $
05d0: 3a 3a 64 62 78 20 7b 0a 20 20 20 20 53 45 4c 45  ::dbx {.    SELE
05e0: 43 54 20 2a 20 46 52 4f 4d 20 78 79 7a 20 4f 52  CT * FROM xyz OR
05f0: 44 45 52 20 42 59 20 61 0a 20 20 7d 20 7b 7d 0a  DER BY a.  } {}.
0600: 7d 20 7b 30 20 35 30 20 32 20 61 20 62 20 31 20  } {0 50 2 a b 1 
0610: 7b 48 69 20 59 27 61 6c 6c 7d 20 32 20 28 32 29  {Hi Y'all} 2 (2)
0620: 20 33 20 28 33 29 20 34 20 28 34 29 20 35 20 28   3 (3) 4 (4) 5 (
0630: 35 29 20 36 20 28 36 29 20 37 20 28 37 29 20 38  5) 6 (6) 7 (7) 8
0640: 20 28 38 29 20 39 20 28 39 29 20 31 30 20 28 31   (8) 9 (9) 10 (1
0650: 30 29 20 31 31 20 28 31 31 29 20 31 32 20 28 31  0) 11 (11) 12 (1
0660: 32 29 20 31 33 20 28 31 33 29 20 31 34 20 28 31  2) 13 (13) 14 (1
0670: 34 29 20 31 35 20 28 31 35 29 20 31 36 20 28 31  4) 15 (15) 16 (1
0680: 36 29 20 31 37 20 28 31 37 29 20 31 38 20 28 31  6) 17 (17) 18 (1
0690: 38 29 20 31 39 20 28 31 39 29 20 32 30 20 28 32  8) 19 (19) 20 (2
06a0: 30 29 20 32 31 20 28 32 31 29 20 32 32 20 28 32  0) 21 (21) 22 (2
06b0: 32 29 20 32 33 20 28 32 33 29 20 32 34 20 28 32  2) 23 (23) 24 (2
06c0: 34 29 20 32 35 20 28 32 35 29 20 32 36 20 28 32  4) 25 (25) 26 (2
06d0: 36 29 20 32 37 20 28 32 37 29 20 32 38 20 28 32  6) 27 (27) 28 (2
06e0: 38 29 20 32 39 20 28 32 39 29 20 33 30 20 28 33  8) 29 (29) 30 (3
06f0: 30 29 20 33 31 20 28 33 31 29 20 33 32 20 28 33  0) 31 (31) 32 (3
0700: 32 29 20 33 33 20 28 33 33 29 20 33 34 20 28 33  2) 33 (33) 34 (3
0710: 34 29 20 33 35 20 28 33 35 29 20 33 36 20 28 33  4) 35 (35) 36 (3
0720: 36 29 20 33 37 20 28 33 37 29 20 33 38 20 28 33  6) 37 (37) 38 (3
0730: 38 29 20 33 39 20 28 33 39 29 20 34 30 20 28 34  8) 39 (39) 40 (4
0740: 30 29 20 34 31 20 28 34 31 29 20 34 32 20 28 34  0) 41 (41) 42 (4
0750: 32 29 20 34 33 20 28 34 33 29 20 34 34 20 28 34  2) 43 (43) 44 (4
0760: 34 29 20 34 35 20 28 34 35 29 20 34 36 20 28 34  4) 45 (45) 46 (4
0770: 36 29 20 34 37 20 28 34 37 29 20 34 38 20 28 34  6) 47 (47) 48 (4
0780: 38 29 20 34 39 20 28 34 39 29 20 35 30 20 28 35  8) 49 (49) 50 (5
0790: 30 29 7d 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c  0)}.do_test tabl
07a0: 65 61 70 69 2d 32 2e 33 2e 31 20 7b 0a 20 20 73  eapi-2.3.1 {.  s
07b0: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f  qlite_get_table_
07c0: 70 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 7b 0a  printf $::dbx {.
07d0: 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f      SELECT * FRO
07e0: 4d 20 78 79 7a 20 20 57 48 45 52 45 20 61 3e 34  M xyz  WHERE a>4
07f0: 39 20 4f 52 44 45 52 20 42 59 20 61 0a 20 20 7d  9 ORDER BY a.  }
0800: 20 7b 7d 0a 7d 20 7b 30 20 31 20 32 20 61 20 62   {}.} {0 1 2 a b
0810: 20 35 30 20 28 35 30 29 7d 0a 64 6f 5f 74 65 73   50 (50)}.do_tes
0820: 74 20 74 61 62 6c 65 61 70 69 2d 32 2e 33 2e 32  t tableapi-2.3.2
0830: 20 7b 0a 20 20 73 71 6c 69 74 65 5f 67 65 74 5f   {.  sqlite_get_
0840: 74 61 62 6c 65 5f 70 72 69 6e 74 66 20 24 3a 3a  table_printf $::
0850: 64 62 78 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  dbx {.    SELECT
0860: 20 2a 20 46 52 4f 4d 20 78 79 7a 20 57 48 45 52   * FROM xyz WHER
0870: 45 20 61 3e 34 37 20 4f 52 44 45 52 20 42 59 20  E a>47 ORDER BY 
0880: 61 0a 20 20 7d 20 7b 7d 0a 7d 20 7b 30 20 33 20  a.  } {}.} {0 3 
0890: 32 20 61 20 62 20 34 38 20 28 34 38 29 20 34 39  2 a b 48 (48) 49
08a0: 20 28 34 39 29 20 35 30 20 28 35 30 29 7d 0a 64   (49) 50 (50)}.d
08b0: 6f 5f 74 65 73 74 20 74 61 62 6c 65 61 70 69 2d  o_test tableapi-
08c0: 32 2e 34 20 7b 0a 20 20 73 65 74 20 3a 3a 62 69  2.4 {.  set ::bi
08d0: 67 5f 73 74 72 20 5b 73 71 6c 69 74 65 5f 6d 70  g_str [sqlite_mp
08e0: 72 69 6e 74 66 5f 73 74 72 20 7b 25 35 30 30 27  rintf_str {%500'
08f0: 2a 20 48 65 6c 6c 6f 20 25 35 30 30 27 2a 7d 20  * Hello %500'*} 
0900: 30 20 30 20 7b 7d 5d 0a 20 20 73 71 6c 69 74 65  0 0 {}].  sqlite
0910: 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74  _get_table_print
0920: 66 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20 20 49  f $::dbx {.    I
0930: 4e 53 45 52 54 20 49 4e 54 4f 20 78 79 7a 20 56  NSERT INTO xyz V
0940: 41 4c 55 45 53 28 35 31 2c 27 25 71 27 29 0a 20  ALUES(51,'%q'). 
0950: 20 7d 20 24 3a 3a 62 69 67 5f 73 74 72 0a 7d 20   } $::big_str.} 
0960: 7b 30 20 30 20 30 7d 0a 64 6f 5f 74 65 73 74 20  {0 0 0}.do_test 
0970: 74 61 62 6c 65 61 70 69 2d 32 2e 35 20 7b 0a 20  tableapi-2.5 {. 
0980: 20 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c   sqlite_get_tabl
0990: 65 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62 78 20  e_printf $::dbx 
09a0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46  {.    SELECT * F
09b0: 52 4f 4d 20 78 79 7a 20 57 48 45 52 45 20 61 3e  ROM xyz WHERE a>
09c0: 34 39 20 4f 52 44 45 52 20 42 59 20 61 3b 0a 20  49 ORDER BY a;. 
09d0: 20 7d 20 7b 7d 0a 7d 20 22 30 20 32 20 32 20 61   } {}.} "0 2 2 a
09e0: 20 62 20 35 30 20 28 35 30 29 20 35 31 20 5c 31   b 50 (50) 51 \1
09f0: 37 33 24 3a 3a 62 69 67 5f 73 74 72 5c 31 37 35  73$::big_str\175
0a00: 22 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c 65 61  ".do_test tablea
0a10: 70 69 2d 32 2e 36 20 7b 0a 20 20 73 71 6c 69 74  pi-2.6 {.  sqlit
0a20: 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e  e_get_table_prin
0a30: 74 66 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20 20  tf $::dbx {.    
0a40: 49 4e 53 45 52 54 20 49 4e 54 4f 20 78 79 7a 20  INSERT INTO xyz 
0a50: 56 41 4c 55 45 53 28 35 32 2c 4e 55 4c 4c 29 0a  VALUES(52,NULL).
0a60: 20 20 7d 20 7b 7d 0a 20 20 73 71 6c 69 74 65 5f    } {}.  sqlite_
0a70: 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74 66  get_table_printf
0a80: 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20 20 53 45   $::dbx {.    SE
0a90: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 78 79 7a 20  LECT * FROM xyz 
0aa0: 57 48 45 52 45 20 61 20 49 4e 20 28 34 32 2c 35  WHERE a IN (42,5
0ab0: 30 2c 35 32 29 20 4f 52 44 45 52 20 42 59 20 61  0,52) ORDER BY a
0ac0: 20 44 45 53 43 0a 20 20 7d 20 7b 7d 0a 7d 20 7b   DESC.  } {}.} {
0ad0: 30 20 33 20 32 20 61 20 62 20 35 32 20 4e 55 4c  0 3 2 a b 52 NUL
0ae0: 4c 20 35 30 20 28 35 30 29 20 34 32 20 28 34 32  L 50 (50) 42 (42
0af0: 29 7d 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c 65  )}.do_test table
0b00: 61 70 69 2d 32 2e 37 20 7b 0a 20 20 73 71 6c 69  api-2.7 {.  sqli
0b10: 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72 69  te_get_table_pri
0b20: 6e 74 66 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20  ntf $::dbx {.   
0b30: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 78   SELECT * FROM x
0b40: 79 7a 20 57 48 45 52 45 20 61 3e 31 30 30 30 0a  yz WHERE a>1000.
0b50: 20 20 7d 20 7b 7d 0a 7d 20 7b 30 20 30 20 30 7d    } {}.} {0 0 0}
0b60: 0a 0a 23 20 52 65 70 65 61 74 20 61 6c 6c 20 74  ..# Repeat all t
0b70: 65 73 74 73 20 77 69 74 68 20 74 68 65 20 65 6d  ests with the em
0b80: 70 74 79 5f 72 65 73 75 6c 74 5f 63 61 6c 6c 62  pty_result_callb
0b90: 61 63 6b 73 20 70 72 61 67 6d 61 20 74 75 72 6e  acks pragma turn
0ba0: 65 64 20 6f 6e 0a 23 0a 64 6f 5f 74 65 73 74 20  ed on.#.do_test 
0bb0: 74 61 62 6c 65 61 70 69 2d 33 2e 31 20 7b 0a 20  tableapi-3.1 {. 
0bc0: 20 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c   sqlite_get_tabl
0bd0: 65 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62 78 20  e_printf $::dbx 
0be0: 7b 0a 20 20 20 20 52 4f 4c 4c 42 41 43 4b 3b 0a  {.    ROLLBACK;.
0bf0: 20 20 20 20 50 52 41 47 4d 41 20 65 6d 70 74 79      PRAGMA empty
0c00: 5f 72 65 73 75 6c 74 5f 63 61 6c 6c 62 61 63 6b  _result_callback
0c10: 73 20 3d 20 4f 4e 3b 0a 20 20 20 20 53 45 4c 45  s = ON;.    SELE
0c20: 43 54 20 2a 20 46 52 4f 4d 20 78 79 7a 20 57 48  CT * FROM xyz WH
0c30: 45 52 45 20 62 3d 27 25 71 27 0a 20 20 7d 20 7b  ERE b='%q'.  } {
0c40: 48 69 20 59 27 61 6c 6c 7d 0a 7d 20 7b 30 20 31  Hi Y'all}.} {0 1
0c50: 20 32 20 61 20 62 20 31 20 7b 48 69 20 59 27 61   2 a b 1 {Hi Y'a
0c60: 6c 6c 7d 7d 0a 64 6f 5f 74 65 73 74 20 74 61 62  ll}}.do_test tab
0c70: 6c 65 61 70 69 2d 33 2e 32 20 7b 0a 20 20 73 71  leapi-3.2 {.  sq
0c80: 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70  lite_get_table_p
0c90: 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 7b 0a 20  rintf $::dbx {. 
0ca0: 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d     SELECT * FROM
0cb0: 20 78 79 7a 0a 20 20 7d 20 7b 7d 0a 7d 20 7b 30   xyz.  } {}.} {0
0cc0: 20 31 20 32 20 61 20 62 20 31 20 7b 48 69 20 59   1 2 a b 1 {Hi Y
0cd0: 27 61 6c 6c 7d 7d 0a 64 6f 5f 74 65 73 74 20 74  'all}}.do_test t
0ce0: 61 62 6c 65 61 70 69 2d 33 2e 33 20 7b 0a 20 20  ableapi-3.3 {.  
0cf0: 66 6f 72 20 7b 73 65 74 20 69 20 32 7d 20 7b 24  for {set i 2} {$
0d00: 69 3c 3d 35 30 7d 20 7b 69 6e 63 72 20 69 7d 20  i<=50} {incr i} 
0d10: 7b 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74  {.    sqlite_get
0d20: 5f 74 61 62 6c 65 5f 70 72 69 6e 74 66 20 24 3a  _table_printf $:
0d30: 3a 64 62 78 20 5c 0a 20 20 20 20 20 20 20 22 49  :dbx \.       "I
0d40: 4e 53 45 52 54 20 49 4e 54 4f 20 78 79 7a 20 56  NSERT INTO xyz V
0d50: 41 4c 55 45 53 28 24 69 2c 27 28 25 73 29 27 29  ALUES($i,'(%s)')
0d60: 22 20 24 69 0a 20 20 7d 0a 20 20 73 71 6c 69 74  " $i.  }.  sqlit
0d70: 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e  e_get_table_prin
0d80: 74 66 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20 20  tf $::dbx {.    
0d90: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 78 79  SELECT * FROM xy
0da0: 7a 20 4f 52 44 45 52 20 42 59 20 61 0a 20 20 7d  z ORDER BY a.  }
0db0: 20 7b 7d 0a 7d 20 7b 30 20 35 30 20 32 20 61 20   {}.} {0 50 2 a 
0dc0: 62 20 31 20 7b 48 69 20 59 27 61 6c 6c 7d 20 32  b 1 {Hi Y'all} 2
0dd0: 20 28 32 29 20 33 20 28 33 29 20 34 20 28 34 29   (2) 3 (3) 4 (4)
0de0: 20 35 20 28 35 29 20 36 20 28 36 29 20 37 20 28   5 (5) 6 (6) 7 (
0df0: 37 29 20 38 20 28 38 29 20 39 20 28 39 29 20 31  7) 8 (8) 9 (9) 1
0e00: 30 20 28 31 30 29 20 31 31 20 28 31 31 29 20 31  0 (10) 11 (11) 1
0e10: 32 20 28 31 32 29 20 31 33 20 28 31 33 29 20 31  2 (12) 13 (13) 1
0e20: 34 20 28 31 34 29 20 31 35 20 28 31 35 29 20 31  4 (14) 15 (15) 1
0e30: 36 20 28 31 36 29 20 31 37 20 28 31 37 29 20 31  6 (16) 17 (17) 1
0e40: 38 20 28 31 38 29 20 31 39 20 28 31 39 29 20 32  8 (18) 19 (19) 2
0e50: 30 20 28 32 30 29 20 32 31 20 28 32 31 29 20 32  0 (20) 21 (21) 2
0e60: 32 20 28 32 32 29 20 32 33 20 28 32 33 29 20 32  2 (22) 23 (23) 2
0e70: 34 20 28 32 34 29 20 32 35 20 28 32 35 29 20 32  4 (24) 25 (25) 2
0e80: 36 20 28 32 36 29 20 32 37 20 28 32 37 29 20 32  6 (26) 27 (27) 2
0e90: 38 20 28 32 38 29 20 32 39 20 28 32 39 29 20 33  8 (28) 29 (29) 3
0ea0: 30 20 28 33 30 29 20 33 31 20 28 33 31 29 20 33  0 (30) 31 (31) 3
0eb0: 32 20 28 33 32 29 20 33 33 20 28 33 33 29 20 33  2 (32) 33 (33) 3
0ec0: 34 20 28 33 34 29 20 33 35 20 28 33 35 29 20 33  4 (34) 35 (35) 3
0ed0: 36 20 28 33 36 29 20 33 37 20 28 33 37 29 20 33  6 (36) 37 (37) 3
0ee0: 38 20 28 33 38 29 20 33 39 20 28 33 39 29 20 34  8 (38) 39 (39) 4
0ef0: 30 20 28 34 30 29 20 34 31 20 28 34 31 29 20 34  0 (40) 41 (41) 4
0f00: 32 20 28 34 32 29 20 34 33 20 28 34 33 29 20 34  2 (42) 43 (43) 4
0f10: 34 20 28 34 34 29 20 34 35 20 28 34 35 29 20 34  4 (44) 45 (45) 4
0f20: 36 20 28 34 36 29 20 34 37 20 28 34 37 29 20 34  6 (46) 47 (47) 4
0f30: 38 20 28 34 38 29 20 34 39 20 28 34 39 29 20 35  8 (48) 49 (49) 5
0f40: 30 20 28 35 30 29 7d 0a 64 6f 5f 74 65 73 74 20  0 (50)}.do_test 
0f50: 74 61 62 6c 65 61 70 69 2d 33 2e 33 2e 31 20 7b  tableapi-3.3.1 {
0f60: 0a 20 20 73 71 6c 69 74 65 5f 67 65 74 5f 74 61  .  sqlite_get_ta
0f70: 62 6c 65 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62  ble_printf $::db
0f80: 78 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 2a  x {.    SELECT *
0f90: 20 46 52 4f 4d 20 78 79 7a 20 20 57 48 45 52 45   FROM xyz  WHERE
0fa0: 20 61 3e 34 39 20 4f 52 44 45 52 20 42 59 20 61   a>49 ORDER BY a
0fb0: 0a 20 20 7d 20 7b 7d 0a 7d 20 7b 30 20 31 20 32  .  } {}.} {0 1 2
0fc0: 20 61 20 62 20 35 30 20 28 35 30 29 7d 0a 64 6f   a b 50 (50)}.do
0fd0: 5f 74 65 73 74 20 74 61 62 6c 65 61 70 69 2d 33  _test tableapi-3
0fe0: 2e 33 2e 32 20 7b 0a 20 20 73 71 6c 69 74 65 5f  .3.2 {.  sqlite_
0ff0: 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74 66  get_table_printf
1000: 20 24 3a 3a 64 62 78 20 7b 0a 20 20 20 20 53 45   $::dbx {.    SE
1010: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 78 79 7a 20  LECT * FROM xyz 
1020: 57 48 45 52 45 20 61 3e 34 37 20 4f 52 44 45 52  WHERE a>47 ORDER
1030: 20 42 59 20 61 0a 20 20 7d 20 7b 7d 0a 7d 20 7b   BY a.  } {}.} {
1040: 30 20 33 20 32 20 61 20 62 20 34 38 20 28 34 38  0 3 2 a b 48 (48
1050: 29 20 34 39 20 28 34 39 29 20 35 30 20 28 35 30  ) 49 (49) 50 (50
1060: 29 7d 0a 64 6f 5f 74 65 73 74 20 74 61 62 6c 65  )}.do_test table
1070: 61 70 69 2d 33 2e 34 20 7b 0a 20 20 73 65 74 20  api-3.4 {.  set 
1080: 3a 3a 62 69 67 5f 73 74 72 20 5b 73 71 6c 69 74  ::big_str [sqlit
1090: 65 5f 6d 70 72 69 6e 74 66 5f 73 74 72 20 7b 25  e_mprintf_str {%
10a0: 35 30 30 27 2a 20 48 65 6c 6c 6f 20 25 35 30 30  500'* Hello %500
10b0: 27 2a 7d 20 30 20 30 20 7b 7d 5d 0a 20 20 73 71  '*} 0 0 {}].  sq
10c0: 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70  lite_get_table_p
10d0: 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 7b 0a 20  rintf $::dbx {. 
10e0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 78     INSERT INTO x
10f0: 79 7a 20 56 41 4c 55 45 53 28 35 31 2c 27 25 71  yz VALUES(51,'%q
1100: 27 29 0a 20 20 7d 20 24 3a 3a 62 69 67 5f 73 74  ').  } $::big_st
1110: 72 0a 7d 20 7b 30 20 30 20 30 7d 0a 64 6f 5f 74  r.} {0 0 0}.do_t
1120: 65 73 74 20 74 61 62 6c 65 61 70 69 2d 33 2e 35  est tableapi-3.5
1130: 20 7b 0a 20 20 73 71 6c 69 74 65 5f 67 65 74 5f   {.  sqlite_get_
1140: 74 61 62 6c 65 5f 70 72 69 6e 74 66 20 24 3a 3a  table_printf $::
1150: 64 62 78 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  dbx {.    SELECT
1160: 20 2a 20 46 52 4f 4d 20 78 79 7a 20 57 48 45 52   * FROM xyz WHER
1170: 45 20 61 3e 34 39 20 4f 52 44 45 52 20 42 59 20  E a>49 ORDER BY 
1180: 61 3b 0a 20 20 7d 20 7b 7d 0a 7d 20 22 30 20 32  a;.  } {}.} "0 2
1190: 20 32 20 61 20 62 20 35 30 20 28 35 30 29 20 35   2 a b 50 (50) 5
11a0: 31 20 5c 31 37 33 24 3a 3a 62 69 67 5f 73 74 72  1 \173$::big_str
11b0: 5c 31 37 35 22 0a 64 6f 5f 74 65 73 74 20 74 61  \175".do_test ta
11c0: 62 6c 65 61 70 69 2d 33 2e 36 20 7b 0a 20 20 73  bleapi-3.6 {.  s
11d0: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f  qlite_get_table_
11e0: 70 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 7b 0a  printf $::dbx {.
11f0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
1200: 78 79 7a 20 56 41 4c 55 45 53 28 35 32 2c 4e 55  xyz VALUES(52,NU
1210: 4c 4c 29 0a 20 20 7d 20 7b 7d 0a 20 20 73 71 6c  LL).  } {}.  sql
1220: 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70 72  ite_get_table_pr
1230: 69 6e 74 66 20 24 3a 3a 64 62 78 20 7b 0a 20 20  intf $::dbx {.  
1240: 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20    SELECT * FROM 
1250: 78 79 7a 20 57 48 45 52 45 20 61 20 49 4e 20 28  xyz WHERE a IN (
1260: 34 32 2c 35 30 2c 35 32 29 20 4f 52 44 45 52 20  42,50,52) ORDER 
1270: 42 59 20 61 20 44 45 53 43 0a 20 20 7d 20 7b 7d  BY a DESC.  } {}
1280: 0a 7d 20 7b 30 20 33 20 32 20 61 20 62 20 35 32  .} {0 3 2 a b 52
1290: 20 4e 55 4c 4c 20 35 30 20 28 35 30 29 20 34 32   NULL 50 (50) 42
12a0: 20 28 34 32 29 7d 0a 64 6f 5f 74 65 73 74 20 74   (42)}.do_test t
12b0: 61 62 6c 65 61 70 69 2d 33 2e 37 20 7b 0a 20 20  ableapi-3.7 {.  
12c0: 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65  sqlite_get_table
12d0: 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 7b  _printf $::dbx {
12e0: 0a 20 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52  .    SELECT * FR
12f0: 4f 4d 20 78 79 7a 20 57 48 45 52 45 20 61 3e 31  OM xyz WHERE a>1
1300: 30 30 30 0a 20 20 7d 20 7b 7d 0a 7d 20 7b 30 20  000.  } {}.} {0 
1310: 30 20 32 20 61 20 62 7d 0a 0a 64 6f 5f 74 65 73  0 2 a b}..do_tes
1320: 74 20 74 61 62 6c 65 61 70 69 2d 34 2e 31 20 7b  t tableapi-4.1 {
1330: 0a 20 20 73 65 74 20 72 63 20 5b 63 61 74 63 68  .  set rc [catch
1340: 20 7b 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65   {.    sqlite_ge
1350: 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74 66 20 24  t_table_printf $
1360: 3a 3a 64 62 78 20 7b 0a 20 20 20 20 20 20 53 45  ::dbx {.      SE
1370: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 78 79 7a 3b  LECT * FROM xyz;
1380: 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20    SELECT * FROM 
1390: 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 0a 20 20  sqlite_master.  
13a0: 20 20 7d 20 7b 7d 0a 20 20 7d 20 6d 73 67 5d 0a    } {}.  } msg].
13b0: 20 20 63 6f 6e 63 61 74 20 24 72 63 20 24 6d 73    concat $rc $ms
13c0: 67 0a 7d 20 7b 30 20 31 20 7b 73 71 6c 69 74 65  g.} {0 1 {sqlite
13d0: 5f 67 65 74 5f 74 61 62 6c 65 28 29 20 63 61 6c  _get_table() cal
13e0: 6c 65 64 20 77 69 74 68 20 74 77 6f 20 6f 72 20  led with two or 
13f0: 6d 6f 72 65 20 69 6e 63 6f 6d 70 61 74 69 62 6c  more incompatibl
1400: 65 20 71 75 65 72 69 65 73 7d 7d 0a 0a 23 20 41  e queries}}..# A
1410: 20 72 65 70 6f 72 74 20 6f 6e 20 74 68 65 20 6d   report on the m
1420: 61 69 6c 69 6e 67 20 6c 69 73 74 20 73 61 79 73  ailing list says
1430: 20 74 68 61 74 20 74 68 65 20 73 71 6c 69 74 65   that the sqlite
1440: 5f 67 65 74 5f 74 61 62 6c 65 28 29 20 61 70 69  _get_table() api
1450: 20 66 61 69 6c 73 0a 23 20 6f 6e 20 71 75 65 72   fails.# on quer
1460: 69 65 73 20 69 6e 76 6f 6c 76 69 6e 67 20 6d 6f  ies involving mo
1470: 72 65 20 74 68 61 6e 20 34 30 20 63 6f 6c 75 6d  re than 40 colum
1480: 6e 73 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69  ns.  The followi
1490: 6e 67 20 63 6f 64 65 20 61 74 74 65 6d 70 74 73  ng code attempts
14a0: 0a 23 20 74 6f 20 74 65 73 74 20 74 68 61 74 20  .# to test that 
14b0: 63 6f 6d 70 6c 61 69 6e 74 0a 23 0a 64 6f 5f 74  complaint.#.do_t
14c0: 65 73 74 20 74 61 62 6c 65 61 70 69 2d 35 2e 31  est tableapi-5.1
14d0: 20 7b 0a 20 20 73 65 74 20 73 71 6c 20 22 43 52   {.  set sql "CR
14e0: 45 41 54 45 20 54 41 42 4c 45 20 74 32 28 22 0a  EATE TABLE t2(".
14f0: 20 20 73 65 74 20 73 65 70 20 22 22 0a 20 20 66    set sep "".  f
1500: 6f 72 20 7b 73 65 74 20 69 20 31 7d 20 7b 24 69  or {set i 1} {$i
1510: 3c 3d 31 30 30 7d 20 7b 69 6e 63 72 20 69 7d 20  <=100} {incr i} 
1520: 7b 0a 20 20 20 20 61 70 70 65 6e 64 20 73 71 6c  {.    append sql
1530: 20 24 7b 73 65 70 7d 78 24 69 0a 20 20 20 20 73   ${sep}x$i.    s
1540: 65 74 20 73 65 70 20 2c 0a 20 20 7d 0a 20 20 61  et sep ,.  }.  a
1550: 70 70 65 6e 64 20 73 71 6c 20 29 0a 20 20 73 71  ppend sql ).  sq
1560: 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70  lite_get_table_p
1570: 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 24 73 71  rintf $::dbx $sq
1580: 6c 20 7b 7d 0a 20 20 73 65 74 20 73 71 6c 20 22  l {}.  set sql "
1590: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 56  INSERT INTO t2 V
15a0: 41 4c 55 45 53 28 22 0a 20 20 73 65 74 20 73 65  ALUES(".  set se
15b0: 70 20 22 22 0a 20 20 66 6f 72 20 7b 73 65 74 20  p "".  for {set 
15c0: 69 20 31 7d 20 7b 24 69 3c 3d 31 30 30 7d 20 7b  i 1} {$i<=100} {
15d0: 69 6e 63 72 20 69 7d 20 7b 0a 20 20 20 20 61 70  incr i} {.    ap
15e0: 70 65 6e 64 20 73 71 6c 20 24 7b 73 65 70 7d 24  pend sql ${sep}$
15f0: 69 0a 20 20 20 20 73 65 74 20 73 65 70 20 2c 0a  i.    set sep ,.
1600: 20 20 7d 0a 20 20 61 70 70 65 6e 64 20 73 71 6c    }.  append sql
1610: 20 29 0a 20 20 73 71 6c 69 74 65 5f 67 65 74 5f   ).  sqlite_get_
1620: 74 61 62 6c 65 5f 70 72 69 6e 74 66 20 24 3a 3a  table_printf $::
1630: 64 62 78 20 24 73 71 6c 20 7b 7d 0a 20 20 73 71  dbx $sql {}.  sq
1640: 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 5f 70  lite_get_table_p
1650: 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 7b 53 45  rintf $::dbx {SE
1660: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 32 7d 20  LECT * FROM t2} 
1670: 7b 7d 0a 7d 20 7b 30 20 31 20 31 30 30 20 78 31  {}.} {0 1 100 x1
1680: 20 78 32 20 78 33 20 78 34 20 78 35 20 78 36 20   x2 x3 x4 x5 x6 
1690: 78 37 20 78 38 20 78 39 20 78 31 30 20 78 31 31  x7 x8 x9 x10 x11
16a0: 20 78 31 32 20 78 31 33 20 78 31 34 20 78 31 35   x12 x13 x14 x15
16b0: 20 78 31 36 20 78 31 37 20 78 31 38 20 78 31 39   x16 x17 x18 x19
16c0: 20 78 32 30 20 78 32 31 20 78 32 32 20 78 32 33   x20 x21 x22 x23
16d0: 20 78 32 34 20 78 32 35 20 78 32 36 20 78 32 37   x24 x25 x26 x27
16e0: 20 78 32 38 20 78 32 39 20 78 33 30 20 78 33 31   x28 x29 x30 x31
16f0: 20 78 33 32 20 78 33 33 20 78 33 34 20 78 33 35   x32 x33 x34 x35
1700: 20 78 33 36 20 78 33 37 20 78 33 38 20 78 33 39   x36 x37 x38 x39
1710: 20 78 34 30 20 78 34 31 20 78 34 32 20 78 34 33   x40 x41 x42 x43
1720: 20 78 34 34 20 78 34 35 20 78 34 36 20 78 34 37   x44 x45 x46 x47
1730: 20 78 34 38 20 78 34 39 20 78 35 30 20 78 35 31   x48 x49 x50 x51
1740: 20 78 35 32 20 78 35 33 20 78 35 34 20 78 35 35   x52 x53 x54 x55
1750: 20 78 35 36 20 78 35 37 20 78 35 38 20 78 35 39   x56 x57 x58 x59
1760: 20 78 36 30 20 78 36 31 20 78 36 32 20 78 36 33   x60 x61 x62 x63
1770: 20 78 36 34 20 78 36 35 20 78 36 36 20 78 36 37   x64 x65 x66 x67
1780: 20 78 36 38 20 78 36 39 20 78 37 30 20 78 37 31   x68 x69 x70 x71
1790: 20 78 37 32 20 78 37 33 20 78 37 34 20 78 37 35   x72 x73 x74 x75
17a0: 20 78 37 36 20 78 37 37 20 78 37 38 20 78 37 39   x76 x77 x78 x79
17b0: 20 78 38 30 20 78 38 31 20 78 38 32 20 78 38 33   x80 x81 x82 x83
17c0: 20 78 38 34 20 78 38 35 20 78 38 36 20 78 38 37   x84 x85 x86 x87
17d0: 20 78 38 38 20 78 38 39 20 78 39 30 20 78 39 31   x88 x89 x90 x91
17e0: 20 78 39 32 20 78 39 33 20 78 39 34 20 78 39 35   x92 x93 x94 x95
17f0: 20 78 39 36 20 78 39 37 20 78 39 38 20 78 39 39   x96 x97 x98 x99
1800: 20 78 31 30 30 20 31 20 32 20 33 20 34 20 35 20   x100 1 2 3 4 5 
1810: 36 20 37 20 38 20 39 20 31 30 20 31 31 20 31 32  6 7 8 9 10 11 12
1820: 20 31 33 20 31 34 20 31 35 20 31 36 20 31 37 20   13 14 15 16 17 
1830: 31 38 20 31 39 20 32 30 20 32 31 20 32 32 20 32  18 19 20 21 22 2
1840: 33 20 32 34 20 32 35 20 32 36 20 32 37 20 32 38  3 24 25 26 27 28
1850: 20 32 39 20 33 30 20 33 31 20 33 32 20 33 33 20   29 30 31 32 33 
1860: 33 34 20 33 35 20 33 36 20 33 37 20 33 38 20 33  34 35 36 37 38 3
1870: 39 20 34 30 20 34 31 20 34 32 20 34 33 20 34 34  9 40 41 42 43 44
1880: 20 34 35 20 34 36 20 34 37 20 34 38 20 34 39 20   45 46 47 48 49 
1890: 35 30 20 35 31 20 35 32 20 35 33 20 35 34 20 35  50 51 52 53 54 5
18a0: 35 20 35 36 20 35 37 20 35 38 20 35 39 20 36 30  5 56 57 58 59 60
18b0: 20 36 31 20 36 32 20 36 33 20 36 34 20 36 35 20   61 62 63 64 65 
18c0: 36 36 20 36 37 20 36 38 20 36 39 20 37 30 20 37  66 67 68 69 70 7
18d0: 31 20 37 32 20 37 33 20 37 34 20 37 35 20 37 36  1 72 73 74 75 76
18e0: 20 37 37 20 37 38 20 37 39 20 38 30 20 38 31 20   77 78 79 80 81 
18f0: 38 32 20 38 33 20 38 34 20 38 35 20 38 36 20 38  82 83 84 85 86 8
1900: 37 20 38 38 20 38 39 20 39 30 20 39 31 20 39 32  7 88 89 90 91 92
1910: 20 39 33 20 39 34 20 39 35 20 39 36 20 39 37 20   93 94 95 96 97 
1920: 39 38 20 39 39 20 31 30 30 7d 0a 64 6f 5f 74 65  98 99 100}.do_te
1930: 73 74 20 74 61 62 6c 65 61 70 69 2d 35 2e 32 20  st tableapi-5.2 
1940: 7b 0a 20 20 73 65 74 20 73 71 6c 20 22 49 4e 53  {.  set sql "INS
1950: 45 52 54 20 49 4e 54 4f 20 74 32 20 56 41 4c 55  ERT INTO t2 VALU
1960: 45 53 28 22 0a 20 20 73 65 74 20 73 65 70 20 22  ES(".  set sep "
1970: 22 0a 20 20 66 6f 72 20 7b 73 65 74 20 69 20 31  ".  for {set i 1
1980: 7d 20 7b 24 69 3c 3d 31 30 30 7d 20 7b 69 6e 63  } {$i<=100} {inc
1990: 72 20 69 7d 20 7b 0a 20 20 20 20 61 70 70 65 6e  r i} {.    appen
19a0: 64 20 73 71 6c 20 24 7b 73 65 70 7d 5b 65 78 70  d sql ${sep}[exp
19b0: 72 20 7b 24 69 2b 31 30 30 30 7d 5d 0a 20 20 20  r {$i+1000}].   
19c0: 20 73 65 74 20 73 65 70 20 2c 0a 20 20 7d 0a 20   set sep ,.  }. 
19d0: 20 61 70 70 65 6e 64 20 73 71 6c 20 29 0a 20 20   append sql ).  
19e0: 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65  sqlite_get_table
19f0: 5f 70 72 69 6e 74 66 20 24 3a 3a 64 62 78 20 24  _printf $::dbx $
1a00: 73 71 6c 20 7b 7d 0a 20 20 73 71 6c 69 74 65 5f  sql {}.  sqlite_
1a10: 67 65 74 5f 74 61 62 6c 65 5f 70 72 69 6e 74 66  get_table_printf
1a20: 20 24 3a 3a 64 62 78 20 7b 53 45 4c 45 43 54 20   $::dbx {SELECT 
1a30: 2a 20 46 52 4f 4d 20 74 32 7d 20 7b 7d 0a 7d 20  * FROM t2} {}.} 
1a40: 7b 30 20 32 20 31 30 30 20 78 31 20 78 32 20 78  {0 2 100 x1 x2 x
1a50: 33 20 78 34 20 78 35 20 78 36 20 78 37 20 78 38  3 x4 x5 x6 x7 x8
1a60: 20 78 39 20 78 31 30 20 78 31 31 20 78 31 32 20   x9 x10 x11 x12 
1a70: 78 31 33 20 78 31 34 20 78 31 35 20 78 31 36 20  x13 x14 x15 x16 
1a80: 78 31 37 20 78 31 38 20 78 31 39 20 78 32 30 20  x17 x18 x19 x20 
1a90: 78 32 31 20 78 32 32 20 78 32 33 20 78 32 34 20  x21 x22 x23 x24 
1aa0: 78 32 35 20 78 32 36 20 78 32 37 20 78 32 38 20  x25 x26 x27 x28 
1ab0: 78 32 39 20 78 33 30 20 78 33 31 20 78 33 32 20  x29 x30 x31 x32 
1ac0: 78 33 33 20 78 33 34 20 78 33 35 20 78 33 36 20  x33 x34 x35 x36 
1ad0: 78 33 37 20 78 33 38 20 78 33 39 20 78 34 30 20  x37 x38 x39 x40 
1ae0: 78 34 31 20 78 34 32 20 78 34 33 20 78 34 34 20  x41 x42 x43 x44 
1af0: 78 34 35 20 78 34 36 20 78 34 37 20 78 34 38 20  x45 x46 x47 x48 
1b00: 78 34 39 20 78 35 30 20 78 35 31 20 78 35 32 20  x49 x50 x51 x52 
1b10: 78 35 33 20 78 35 34 20 78 35 35 20 78 35 36 20  x53 x54 x55 x56 
1b20: 78 35 37 20 78 35 38 20 78 35 39 20 78 36 30 20  x57 x58 x59 x60 
1b30: 78 36 31 20 78 36 32 20 78 36 33 20 78 36 34 20  x61 x62 x63 x64 
1b40: 78 36 35 20 78 36 36 20 78 36 37 20 78 36 38 20  x65 x66 x67 x68 
1b50: 78 36 39 20 78 37 30 20 78 37 31 20 78 37 32 20  x69 x70 x71 x72 
1b60: 78 37 33 20 78 37 34 20 78 37 35 20 78 37 36 20  x73 x74 x75 x76 
1b70: 78 37 37 20 78 37 38 20 78 37 39 20 78 38 30 20  x77 x78 x79 x80 
1b80: 78 38 31 20 78 38 32 20 78 38 33 20 78 38 34 20  x81 x82 x83 x84 
1b90: 78 38 35 20 78 38 36 20 78 38 37 20 78 38 38 20  x85 x86 x87 x88 
1ba0: 78 38 39 20 78 39 30 20 78 39 31 20 78 39 32 20  x89 x90 x91 x92 
1bb0: 78 39 33 20 78 39 34 20 78 39 35 20 78 39 36 20  x93 x94 x95 x96 
1bc0: 78 39 37 20 78 39 38 20 78 39 39 20 78 31 30 30  x97 x98 x99 x100
1bd0: 20 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38   1 2 3 4 5 6 7 8
1be0: 20 39 20 31 30 20 31 31 20 31 32 20 31 33 20 31   9 10 11 12 13 1
1bf0: 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
1c00: 20 32 30 20 32 31 20 32 32 20 32 33 20 32 34 20   20 21 22 23 24 
1c10: 32 35 20 32 36 20 32 37 20 32 38 20 32 39 20 33  25 26 27 28 29 3
1c20: 30 20 33 31 20 33 32 20 33 33 20 33 34 20 33 35  0 31 32 33 34 35
1c30: 20 33 36 20 33 37 20 33 38 20 33 39 20 34 30 20   36 37 38 39 40 
1c40: 34 31 20 34 32 20 34 33 20 34 34 20 34 35 20 34  41 42 43 44 45 4
1c50: 36 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31  6 47 48 49 50 51
1c60: 20 35 32 20 35 33 20 35 34 20 35 35 20 35 36 20   52 53 54 55 56 
1c70: 35 37 20 35 38 20 35 39 20 36 30 20 36 31 20 36  57 58 59 60 61 6
1c80: 32 20 36 33 20 36 34 20 36 35 20 36 36 20 36 37  2 63 64 65 66 67
1c90: 20 36 38 20 36 39 20 37 30 20 37 31 20 37 32 20   68 69 70 71 72 
1ca0: 37 33 20 37 34 20 37 35 20 37 36 20 37 37 20 37  73 74 75 76 77 7
1cb0: 38 20 37 39 20 38 30 20 38 31 20 38 32 20 38 33  8 79 80 81 82 83
1cc0: 20 38 34 20 38 35 20 38 36 20 38 37 20 38 38 20   84 85 86 87 88 
1cd0: 38 39 20 39 30 20 39 31 20 39 32 20 39 33 20 39  89 90 91 92 93 9
1ce0: 34 20 39 35 20 39 36 20 39 37 20 39 38 20 39 39  4 95 96 97 98 99
1cf0: 20 31 30 30 20 31 30 30 31 20 31 30 30 32 20 31   100 1001 1002 1
1d00: 30 30 33 20 31 30 30 34 20 31 30 30 35 20 31 30  003 1004 1005 10
1d10: 30 36 20 31 30 30 37 20 31 30 30 38 20 31 30 30  06 1007 1008 100
1d20: 39 20 31 30 31 30 20 31 30 31 31 20 31 30 31 32  9 1010 1011 1012
1d30: 20 31 30 31 33 20 31 30 31 34 20 31 30 31 35 20   1013 1014 1015 
1d40: 31 30 31 36 20 31 30 31 37 20 31 30 31 38 20 31  1016 1017 1018 1
1d50: 30 31 39 20 31 30 32 30 20 31 30 32 31 20 31 30  019 1020 1021 10
1d60: 32 32 20 31 30 32 33 20 31 30 32 34 20 31 30 32  22 1023 1024 102
1d70: 35 20 31 30 32 36 20 31 30 32 37 20 31 30 32 38  5 1026 1027 1028
1d80: 20 31 30 32 39 20 31 30 33 30 20 31 30 33 31 20   1029 1030 1031 
1d90: 31 30 33 32 20 31 30 33 33 20 31 30 33 34 20 31  1032 1033 1034 1
1da0: 30 33 35 20 31 30 33 36 20 31 30 33 37 20 31 30  035 1036 1037 10
1db0: 33 38 20 31 30 33 39 20 31 30 34 30 20 31 30 34  38 1039 1040 104
1dc0: 31 20 31 30 34 32 20 31 30 34 33 20 31 30 34 34  1 1042 1043 1044
1dd0: 20 31 30 34 35 20 31 30 34 36 20 31 30 34 37 20   1045 1046 1047 
1de0: 31 30 34 38 20 31 30 34 39 20 31 30 35 30 20 31  1048 1049 1050 1
1df0: 30 35 31 20 31 30 35 32 20 31 30 35 33 20 31 30  051 1052 1053 10
1e00: 35 34 20 31 30 35 35 20 31 30 35 36 20 31 30 35  54 1055 1056 105
1e10: 37 20 31 30 35 38 20 31 30 35 39 20 31 30 36 30  7 1058 1059 1060
1e20: 20 31 30 36 31 20 31 30 36 32 20 31 30 36 33 20   1061 1062 1063 
1e30: 31 30 36 34 20 31 30 36 35 20 31 30 36 36 20 31  1064 1065 1066 1
1e40: 30 36 37 20 31 30 36 38 20 31 30 36 39 20 31 30  067 1068 1069 10
1e50: 37 30 20 31 30 37 31 20 31 30 37 32 20 31 30 37  70 1071 1072 107
1e60: 33 20 31 30 37 34 20 31 30 37 35 20 31 30 37 36  3 1074 1075 1076
1e70: 20 31 30 37 37 20 31 30 37 38 20 31 30 37 39 20   1077 1078 1079 
1e80: 31 30 38 30 20 31 30 38 31 20 31 30 38 32 20 31  1080 1081 1082 1
1e90: 30 38 33 20 31 30 38 34 20 31 30 38 35 20 31 30  083 1084 1085 10
1ea0: 38 36 20 31 30 38 37 20 31 30 38 38 20 31 30 38  86 1087 1088 108
1eb0: 39 20 31 30 39 30 20 31 30 39 31 20 31 30 39 32  9 1090 1091 1092
1ec0: 20 31 30 39 33 20 31 30 39 34 20 31 30 39 35 20   1093 1094 1095 
1ed0: 31 30 39 36 20 31 30 39 37 20 31 30 39 38 20 31  1096 1097 1098 1
1ee0: 30 39 39 20 31 31 30 30 7d 0a 0a 64 6f 5f 74 65  099 1100}..do_te
1ef0: 73 74 20 74 61 62 6c 65 61 70 69 2d 39 39 2e 30  st tableapi-99.0
1f00: 20 7b 0a 20 20 73 71 6c 69 74 65 5f 63 6c 6f 73   {.  sqlite_clos
1f10: 65 20 24 3a 3a 64 62 78 0a 7d 20 7b 7d 0a 0a 66  e $::dbx.} {}..f
1f20: 69 6e 69 73 68 5f 74 65 73 74 0a                 inish_test.