/ Hex Artifact Content
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Artifact 24bd03404039ec727028ac9cf7fd9066fd209ec9:


0000: 23 20 32 30 30 35 20 4d 61 72 20 31 36 0a 23 0a  # 2005 Mar 16.#.
0010: 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69 73  # The author dis
0020: 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68 74  claims copyright
0030: 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65 20   to this source 
0040: 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65 20  code.  In place 
0050: 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f 74  of.# a legal not
0060: 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20 62  ice, here is a b
0070: 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20 20  lessing:.#.#    
0080: 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64 20  May you do good 
0090: 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23 20  and not evil..# 
00a0: 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64 20     May you find 
00b0: 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72 20  forgiveness for 
00c0: 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f 72  yourself and for
00d0: 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20 20  give others..#  
00e0: 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65 20    May you share 
00f0: 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74 61  freely, never ta
0100: 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 79  king more than y
0110: 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a 2a  ou give..#.#****
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 0a 23 20 54 68 69 73 20 66 69 6c 65 20  ***.# This file 
0170: 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67 72 65  implements regre
0180: 73 73 69 6f 6e 20 74 65 73 74 73 20 66 6f 72 20  ssion tests for 
0190: 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 2e 0a  SQLite library..
01a0: 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 6d  #.# This file im
01b0: 70 6c 65 6d 65 6e 74 73 20 74 65 73 74 73 20 66  plements tests f
01c0: 6f 72 20 6d 69 73 63 65 6c 6c 61 6e 6f 75 73 20  or miscellanous 
01d0: 66 65 61 74 75 72 65 73 20 74 68 61 74 20 77 65  features that we
01e0: 72 65 0a 23 20 6c 65 66 74 20 6f 75 74 20 6f 66  re.# left out of
01f0: 20 6f 74 68 65 72 20 74 65 73 74 20 66 69 6c 65   other test file
0200: 73 2e 0a 23 0a 23 20 24 49 64 3a 20 6d 69 73 63  s..#.# $Id: misc
0210: 35 2e 74 65 73 74 2c 76 20 31 2e 35 20 32 30 30  5.test,v 1.5 200
0220: 35 2f 30 38 2f 32 33 20 31 31 3a 33 31 3a 32 36  5/08/23 11:31:26
0230: 20 64 72 68 20 45 78 70 20 24 0a 0a 73 65 74 20   drh Exp $..set 
0240: 74 65 73 74 64 69 72 20 5b 66 69 6c 65 20 64 69  testdir [file di
0250: 72 6e 61 6d 65 20 24 61 72 67 76 30 5d 0a 73 6f  rname $argv0].so
0260: 75 72 63 65 20 24 74 65 73 74 64 69 72 2f 74 65  urce $testdir/te
0270: 73 74 65 72 2e 74 63 6c 0a 0a 23 20 42 75 69 6c  ster.tcl..# Buil
0280: 64 20 72 65 63 6f 72 64 73 20 75 73 69 6e 67 20  d records using 
0290: 74 68 65 20 4d 61 6b 65 52 65 63 6f 72 64 20 6f  the MakeRecord o
02a0: 70 63 6f 64 65 20 73 75 63 68 20 74 68 61 74 20  pcode such that 
02b0: 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20  the size of the 
02c0: 0a 23 20 68 65 61 64 65 72 20 69 73 20 61 74 20  .# header is at 
02d0: 74 68 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 70  the transition p
02e0: 6f 69 6e 74 20 69 6e 20 74 68 65 20 73 69 7a 65  oint in the size
02f0: 20 6f 66 20 61 20 76 61 72 69 6e 74 2e 0a 23 0a   of a varint..#.
0300: 23 20 54 68 69 73 20 74 65 73 74 20 63 61 75 73  # This test caus
0310: 65 73 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20  es an assertion 
0320: 66 61 69 6c 75 72 65 20 6f 72 20 61 20 62 75 66  failure or a buf
0330: 66 65 72 20 6f 76 65 72 72 75 6e 20 69 6e 20 76  fer overrun in v
0340: 65 72 73 69 6f 6e 0a 23 20 33 2e 31 2e 35 20 61  ersion.# 3.1.5 a
0350: 6e 64 20 65 61 72 6c 69 65 72 2e 0a 23 0a 66 6f  nd earlier..#.fo
0360: 72 20 7b 73 65 74 20 69 20 31 32 30 7d 20 7b 24  r {set i 120} {$
0370: 69 3c 31 34 30 7d 20 7b 69 6e 63 72 20 69 7d 20  i<140} {incr i} 
0380: 7b 0a 20 20 64 6f 5f 74 65 73 74 20 6d 69 73 63  {.  do_test misc
0390: 35 2d 31 2e 24 69 20 7b 0a 20 20 20 20 63 61 74  5-1.$i {.    cat
03a0: 63 68 73 71 6c 20 7b 44 52 4f 50 20 54 41 42 4c  chsql {DROP TABL
03b0: 45 20 74 31 7d 0a 20 20 20 20 73 65 74 20 73 71  E t1}.    set sq
03c0: 6c 31 20 7b 43 52 45 41 54 45 20 54 41 42 4c 45  l1 {CREATE TABLE
03d0: 20 74 31 7d 0a 20 20 20 20 73 65 74 20 73 71 6c   t1}.    set sql
03e0: 32 20 7b 49 4e 53 45 52 54 20 49 4e 54 4f 20 74  2 {INSERT INTO t
03f0: 31 20 56 41 4c 55 45 53 7d 0a 20 20 20 20 73 65  1 VALUES}.    se
0400: 74 20 73 65 70 20 28 0a 20 20 20 20 66 6f 72 20  t sep (.    for 
0410: 7b 73 65 74 20 6a 20 30 7d 20 7b 24 6a 3c 24 69  {set j 0} {$j<$i
0420: 7d 20 7b 69 6e 63 72 20 6a 7d 20 7b 0a 20 20 20  } {incr j} {.   
0430: 20 20 20 61 70 70 65 6e 64 20 73 71 6c 31 20 24     append sql1 $
0440: 7b 73 65 70 7d 61 24 6a 0a 20 20 20 20 20 20 61  {sep}a$j.      a
0450: 70 70 65 6e 64 20 73 71 6c 32 20 24 7b 73 65 70  ppend sql2 ${sep
0460: 7d 24 6a 0a 20 20 20 20 20 20 73 65 74 20 73 65  }$j.      set se
0470: 70 20 2c 0a 20 20 20 20 7d 0a 20 20 20 20 61 70  p ,.    }.    ap
0480: 70 65 6e 64 20 73 71 6c 31 20 7b 29 3b 7d 0a 20  pend sql1 {);}. 
0490: 20 20 20 61 70 70 65 6e 64 20 73 71 6c 32 20 7b     append sql2 {
04a0: 29 3b 7d 0a 20 20 20 20 65 78 65 63 73 71 6c 20  );}.    execsql 
04b0: 24 73 71 6c 31 24 73 71 6c 32 0a 20 20 7d 20 7b  $sql1$sql2.  } {
04c0: 7d 0a 7d 0a 0a 23 20 4d 61 6b 65 20 73 75 72 65  }.}..# Make sure
04d0: 20 6c 61 72 67 65 20 69 6e 74 65 67 65 72 73 20   large integers 
04e0: 61 72 65 20 73 74 6f 72 65 64 20 63 6f 72 72 65  are stored corre
04f0: 63 74 6c 79 2e 0a 23 0a 64 6f 5f 74 65 73 74 20  ctly..#.do_test 
0500: 6d 69 73 63 35 2d 32 2e 31 20 7b 0a 20 20 65 78  misc5-2.1 {.  ex
0510: 65 63 73 71 6c 20 7b 0a 20 20 20 20 63 72 65 61  ecsql {.    crea
0520: 74 65 20 74 61 62 6c 65 20 74 32 28 78 20 75 6e  te table t2(x un
0530: 69 71 75 65 29 3b 0a 20 20 20 20 69 6e 73 65 72  ique);.    inser
0540: 74 20 69 6e 74 6f 20 74 32 20 76 61 6c 75 65 73  t into t2 values
0550: 28 31 29 3b 0a 20 20 20 20 69 6e 73 65 72 74 20  (1);.    insert 
0560: 6f 72 20 69 67 6e 6f 72 65 20 69 6e 74 6f 20 74  or ignore into t
0570: 32 20 73 65 6c 65 63 74 20 78 2a 32 20 66 72 6f  2 select x*2 fro
0580: 6d 20 74 32 3b 0a 20 20 20 20 69 6e 73 65 72 74  m t2;.    insert
0590: 20 6f 72 20 69 67 6e 6f 72 65 20 69 6e 74 6f 20   or ignore into 
05a0: 74 32 20 73 65 6c 65 63 74 20 78 2a 34 20 66 72  t2 select x*4 fr
05b0: 6f 6d 20 74 32 3b 0a 20 20 20 20 69 6e 73 65 72  om t2;.    inser
05c0: 74 20 6f 72 20 69 67 6e 6f 72 65 20 69 6e 74 6f  t or ignore into
05d0: 20 74 32 20 73 65 6c 65 63 74 20 78 2a 31 36 20   t2 select x*16 
05e0: 66 72 6f 6d 20 74 32 3b 0a 20 20 20 20 69 6e 73  from t2;.    ins
05f0: 65 72 74 20 6f 72 20 69 67 6e 6f 72 65 20 69 6e  ert or ignore in
0600: 74 6f 20 74 32 20 73 65 6c 65 63 74 20 78 2a 32  to t2 select x*2
0610: 35 36 20 66 72 6f 6d 20 74 32 3b 0a 20 20 20 20  56 from t2;.    
0620: 69 6e 73 65 72 74 20 6f 72 20 69 67 6e 6f 72 65  insert or ignore
0630: 20 69 6e 74 6f 20 74 32 20 73 65 6c 65 63 74 20   into t2 select 
0640: 78 2a 36 35 35 33 36 20 66 72 6f 6d 20 74 32 3b  x*65536 from t2;
0650: 0a 20 20 20 20 69 6e 73 65 72 74 20 6f 72 20 69  .    insert or i
0660: 67 6e 6f 72 65 20 69 6e 74 6f 20 74 32 20 73 65  gnore into t2 se
0670: 6c 65 63 74 20 78 2a 32 31 34 37 34 38 33 36 34  lect x*214748364
0680: 38 20 66 72 6f 6d 20 74 32 3b 0a 20 20 20 20 69  8 from t2;.    i
0690: 6e 73 65 72 74 20 6f 72 20 69 67 6e 6f 72 65 20  nsert or ignore 
06a0: 69 6e 74 6f 20 74 32 20 73 65 6c 65 63 74 20 78  into t2 select x
06b0: 2d 31 20 66 72 6f 6d 20 74 32 3b 0a 20 20 20 20  -1 from t2;.    
06c0: 69 6e 73 65 72 74 20 6f 72 20 69 67 6e 6f 72 65  insert or ignore
06d0: 20 69 6e 74 6f 20 74 32 20 73 65 6c 65 63 74 20   into t2 select 
06e0: 78 2b 31 20 66 72 6f 6d 20 74 32 3b 0a 20 20 20  x+1 from t2;.   
06f0: 20 69 6e 73 65 72 74 20 6f 72 20 69 67 6e 6f 72   insert or ignor
0700: 65 20 69 6e 74 6f 20 74 32 20 73 65 6c 65 63 74  e into t2 select
0710: 20 2d 78 20 66 72 6f 6d 20 74 32 3b 0a 20 20 20   -x from t2;.   
0720: 20 73 65 6c 65 63 74 20 63 6f 75 6e 74 28 2a 29   select count(*)
0730: 20 66 72 6f 6d 20 74 32 3b 0a 20 20 7d 0a 7d 20   from t2;.  }.} 
0740: 33 37 31 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63  371.do_test misc
0750: 35 2d 32 2e 32 20 7b 0a 20 20 65 78 65 63 73 71  5-2.2 {.  execsq
0760: 6c 20 7b 0a 20 20 20 20 73 65 6c 65 63 74 20 78  l {.    select x
0770: 20 66 72 6f 6d 20 74 32 20 6f 72 64 65 72 20 62   from t2 order b
0780: 79 20 78 3b 0a 20 20 7d 0a 7d 20 5c 0a 22 2d 34  y x;.  }.} \."-4
0790: 36 31 31 36 38 36 30 31 38 34 32 37 33 38 37 39  6116860184273879
07a0: 30 35 5c 0a 2d 34 36 31 31 36 38 36 30 31 38 34  05\.-46116860184
07b0: 32 37 33 38 37 39 30 34 5c 0a 2d 34 36 31 31 36  27387904\.-46116
07c0: 38 36 30 31 38 34 32 37 33 38 37 39 30 33 5c 0a  86018427387903\.
07d0: 2d 32 33 30 35 38 34 33 30 30 39 32 31 33 36 39  -230584300921369
07e0: 33 39 35 33 5c 0a 2d 32 33 30 35 38 34 33 30 30  3953\.-230584300
07f0: 39 32 31 33 36 39 33 39 35 32 5c 0a 2d 32 33 30  9213693952\.-230
0800: 35 38 34 33 30 30 39 32 31 33 36 39 33 39 35 31  5843009213693951
0810: 5c 0a 2d 31 31 35 32 39 32 31 35 30 34 36 30 36  \.-1152921504606
0820: 38 34 36 39 37 37 5c 0a 2d 31 31 35 32 39 32 31  846977\.-1152921
0830: 35 30 34 36 30 36 38 34 36 39 37 36 5c 0a 2d 31  504606846976\.-1
0840: 31 35 32 39 32 31 35 30 34 36 30 36 38 34 36 39  1529215046068469
0850: 37 35 5c 0a 2d 35 37 36 34 36 30 37 35 32 33 30  75\.-57646075230
0860: 33 34 32 33 34 38 39 5c 0a 2d 35 37 36 34 36 30  3423489\.-576460
0870: 37 35 32 33 30 33 34 32 33 34 38 38 5c 0a 2d 35  752303423488\.-5
0880: 37 36 34 36 30 37 35 32 33 30 33 34 32 33 34 38  7646075230342348
0890: 37 5c 0a 2d 32 38 38 32 33 30 33 37 36 31 35 31  7\.-288230376151
08a0: 37 31 31 37 34 35 5c 0a 2d 32 38 38 32 33 30 33  711745\.-2882303
08b0: 37 36 31 35 31 37 31 31 37 34 34 5c 0a 2d 32 38  76151711744\.-28
08c0: 38 32 33 30 33 37 36 31 35 31 37 31 31 37 34 33  8230376151711743
08d0: 5c 0a 2d 31 34 34 31 31 35 31 38 38 30 37 35 38  \.-1441151880758
08e0: 35 35 38 37 33 5c 0a 2d 31 34 34 31 31 35 31 38  55873\.-14411518
08f0: 38 30 37 35 38 35 35 38 37 32 5c 0a 2d 31 34 34  8075855872\.-144
0900: 31 31 35 31 38 38 30 37 35 38 35 35 38 37 31 5c  115188075855871\
0910: 0a 2d 37 32 30 35 37 35 39 34 30 33 37 39 32 37  .-72057594037927
0920: 39 33 37 5c 0a 2d 37 32 30 35 37 35 39 34 30 33  937\.-7205759403
0930: 37 39 32 37 39 33 36 5c 0a 2d 37 32 30 35 37 35  7927936\.-720575
0940: 39 34 30 33 37 39 32 37 39 33 35 5c 0a 2d 33 36  94037927935\.-36
0950: 30 32 38 37 39 37 30 31 38 39 36 33 39 36 39 5c  028797018963969\
0960: 0a 2d 33 36 30 32 38 37 39 37 30 31 38 39 36 33  .-36028797018963
0970: 39 36 38 5c 0a 2d 33 36 30 32 38 37 39 37 30 31  968\.-3602879701
0980: 38 39 36 33 39 36 37 5c 0a 2d 31 38 30 31 34 33  8963967\.-180143
0990: 39 38 35 30 39 34 38 31 39 38 35 5c 0a 2d 31 38  98509481985\.-18
09a0: 30 31 34 33 39 38 35 30 39 34 38 31 39 38 34 5c  014398509481984\
09b0: 0a 2d 31 38 30 31 34 33 39 38 35 30 39 34 38 31  .-18014398509481
09c0: 39 38 33 5c 0a 2d 39 30 30 37 31 39 39 32 35 34  983\.-9007199254
09d0: 37 34 30 39 39 33 5c 0a 2d 39 30 30 37 31 39 39  740993\.-9007199
09e0: 32 35 34 37 34 30 39 39 32 5c 0a 2d 39 30 30 37  254740992\.-9007
09f0: 31 39 39 32 35 34 37 34 30 39 39 31 5c 0a 2d 34  199254740991\.-4
0a00: 35 30 33 35 39 39 36 32 37 33 37 30 34 39 37 5c  503599627370497\
0a10: 0a 2d 34 35 30 33 35 39 39 36 32 37 33 37 30 34  .-45035996273704
0a20: 39 36 5c 0a 2d 34 35 30 33 35 39 39 36 32 37 33  96\.-45035996273
0a30: 37 30 34 39 35 5c 0a 2d 32 32 35 31 37 39 39 38  70495\.-22517998
0a40: 31 33 36 38 35 32 34 39 5c 0a 2d 32 32 35 31 37  13685249\.-22517
0a50: 39 39 38 31 33 36 38 35 32 34 38 5c 0a 2d 32 32  99813685248\.-22
0a60: 35 31 37 39 39 38 31 33 36 38 35 32 34 37 5c 0a  51799813685247\.
0a70: 2d 31 31 32 35 38 39 39 39 30 36 38 34 32 36 32  -112589990684262
0a80: 35 5c 0a 2d 31 31 32 35 38 39 39 39 30 36 38 34  5\.-112589990684
0a90: 32 36 32 34 5c 0a 2d 31 31 32 35 38 39 39 39 30  2624\.-112589990
0aa0: 36 38 34 32 36 32 33 5c 0a 2d 35 36 32 39 34 39  6842623\.-562949
0ab0: 39 35 33 34 32 31 33 31 33 5c 0a 2d 35 36 32 39  953421313\.-5629
0ac0: 34 39 39 35 33 34 32 31 33 31 32 5c 0a 2d 35 36  49953421312\.-56
0ad0: 32 39 34 39 39 35 33 34 32 31 33 31 31 5c 0a 2d  2949953421311\.-
0ae0: 32 38 31 34 37 34 39 37 36 37 31 30 36 35 37 5c  281474976710657\
0af0: 0a 2d 32 38 31 34 37 34 39 37 36 37 31 30 36 35  .-28147497671065
0b00: 36 5c 0a 2d 32 38 31 34 37 34 39 37 36 37 31 30  6\.-281474976710
0b10: 36 35 35 5c 0a 2d 31 34 30 37 33 37 34 38 38 33  655\.-1407374883
0b20: 35 35 33 32 39 5c 0a 2d 31 34 30 37 33 37 34 38  55329\.-14073748
0b30: 38 33 35 35 33 32 38 5c 0a 2d 31 34 30 37 33 37  8355328\.-140737
0b40: 34 38 38 33 35 35 33 32 37 5c 0a 2d 37 30 33 36  488355327\.-7036
0b50: 38 37 34 34 31 37 37 36 36 35 5c 0a 2d 37 30 33  8744177665\.-703
0b60: 36 38 37 34 34 31 37 37 36 36 34 5c 0a 2d 37 30  68744177664\.-70
0b70: 33 36 38 37 34 34 31 37 37 36 36 33 5c 0a 2d 33  368744177663\.-3
0b80: 35 31 38 34 33 37 32 30 38 38 38 33 33 5c 0a 2d  5184372088833\.-
0b90: 33 35 31 38 34 33 37 32 30 38 38 38 33 32 5c 0a  35184372088832\.
0ba0: 2d 33 35 31 38 34 33 37 32 30 38 38 38 33 31 5c  -35184372088831\
0bb0: 0a 2d 31 37 35 39 32 31 38 36 30 34 34 34 31 37  .-17592186044417
0bc0: 5c 0a 2d 31 37 35 39 32 31 38 36 30 34 34 34 31  \.-1759218604441
0bd0: 36 5c 0a 2d 31 37 35 39 32 31 38 36 30 34 34 34  6\.-175921860444
0be0: 31 35 5c 0a 2d 38 37 39 36 30 39 33 30 32 32 32  15\.-87960930222
0bf0: 30 39 5c 0a 2d 38 37 39 36 30 39 33 30 32 32 32  09\.-87960930222
0c00: 30 38 5c 0a 2d 38 37 39 36 30 39 33 30 32 32 32  08\.-87960930222
0c10: 30 37 5c 0a 2d 34 33 39 38 30 34 36 35 31 31 31  07\.-43980465111
0c20: 30 35 5c 0a 2d 34 33 39 38 30 34 36 35 31 31 31  05\.-43980465111
0c30: 30 34 5c 0a 2d 34 33 39 38 30 34 36 35 31 31 31  04\.-43980465111
0c40: 30 33 5c 0a 2d 32 31 39 39 30 32 33 32 35 35 35  03\.-21990232555
0c50: 35 33 5c 0a 2d 32 31 39 39 30 32 33 32 35 35 35  53\.-21990232555
0c60: 35 32 5c 0a 2d 32 31 39 39 30 32 33 32 35 35 35  52\.-21990232555
0c70: 35 31 5c 0a 2d 31 30 39 39 35 31 31 36 32 37 37  51\.-10995116277
0c80: 37 37 5c 0a 2d 31 30 39 39 35 31 31 36 32 37 37  77\.-10995116277
0c90: 37 36 5c 0a 2d 31 30 39 39 35 31 31 36 32 37 37  76\.-10995116277
0ca0: 37 35 5c 0a 2d 35 34 39 37 35 35 38 31 33 38 38  75\.-54975581388
0cb0: 39 5c 0a 2d 35 34 39 37 35 35 38 31 33 38 38 38  9\.-549755813888
0cc0: 5c 0a 2d 35 34 39 37 35 35 38 31 33 38 38 37 5c  \.-549755813887\
0cd0: 0a 2d 32 37 34 38 37 37 39 30 36 39 34 35 5c 0a  .-274877906945\.
0ce0: 2d 32 37 34 38 37 37 39 30 36 39 34 34 5c 0a 2d  -274877906944\.-
0cf0: 32 37 34 38 37 37 39 30 36 39 34 33 5c 0a 2d 31  274877906943\.-1
0d00: 33 37 34 33 38 39 35 33 34 37 33 5c 0a 2d 31 33  37438953473\.-13
0d10: 37 34 33 38 39 35 33 34 37 32 5c 0a 2d 31 33 37  7438953472\.-137
0d20: 34 33 38 39 35 33 34 37 31 5c 0a 2d 36 38 37 31  438953471\.-6871
0d30: 39 34 37 36 37 33 37 5c 0a 2d 36 38 37 31 39 34  9476737\.-687194
0d40: 37 36 37 33 36 5c 0a 2d 36 38 37 31 39 34 37 36  76736\.-68719476
0d50: 37 33 35 5c 0a 2d 33 34 33 35 39 37 33 38 33 36  735\.-3435973836
0d60: 39 5c 0a 2d 33 34 33 35 39 37 33 38 33 36 38 5c  9\.-34359738368\
0d70: 0a 2d 33 34 33 35 39 37 33 38 33 36 37 5c 0a 2d  .-34359738367\.-
0d80: 31 37 31 37 39 38 36 39 31 38 35 5c 0a 2d 31 37  17179869185\.-17
0d90: 31 37 39 38 36 39 31 38 34 5c 0a 2d 31 37 31 37  179869184\.-1717
0da0: 39 38 36 39 31 38 33 5c 0a 2d 38 35 38 39 39 33  9869183\.-858993
0db0: 34 35 39 33 5c 0a 2d 38 35 38 39 39 33 34 35 39  4593\.-858993459
0dc0: 32 5c 0a 2d 38 35 38 39 39 33 34 35 39 31 5c 0a  2\.-8589934591\.
0dd0: 2d 34 32 39 34 39 36 37 32 39 37 5c 0a 2d 34 32  -4294967297\.-42
0de0: 39 34 39 36 37 32 39 36 5c 0a 2d 34 32 39 34 39  94967296\.-42949
0df0: 36 37 32 39 35 5c 0a 2d 32 31 34 37 34 38 33 36  67295\.-21474836
0e00: 34 39 5c 0a 2d 32 31 34 37 34 38 33 36 34 38 5c  49\.-2147483648\
0e10: 0a 2d 32 31 34 37 34 38 33 36 34 37 5c 0a 2d 31  .-2147483647\.-1
0e20: 30 37 33 37 34 31 38 32 35 5c 0a 2d 31 30 37 33  073741825\.-1073
0e30: 37 34 31 38 32 34 5c 0a 2d 31 30 37 33 37 34 31  741824\.-1073741
0e40: 38 32 33 5c 0a 2d 35 33 36 38 37 30 39 31 33 5c  823\.-536870913\
0e50: 0a 2d 35 33 36 38 37 30 39 31 32 5c 0a 2d 35 33  .-536870912\.-53
0e60: 36 38 37 30 39 31 31 5c 0a 2d 32 36 38 34 33 35  6870911\.-268435
0e70: 34 35 37 5c 0a 2d 32 36 38 34 33 35 34 35 36 5c  457\.-268435456\
0e80: 0a 2d 32 36 38 34 33 35 34 35 35 5c 0a 2d 31 33  .-268435455\.-13
0e90: 34 32 31 37 37 32 39 5c 0a 2d 31 33 34 32 31 37  4217729\.-134217
0ea0: 37 32 38 5c 0a 2d 31 33 34 32 31 37 37 32 37 5c  728\.-134217727\
0eb0: 0a 2d 36 37 31 30 38 38 36 35 5c 0a 2d 36 37 31  .-67108865\.-671
0ec0: 30 38 38 36 34 5c 0a 2d 36 37 31 30 38 38 36 33  08864\.-67108863
0ed0: 5c 0a 2d 33 33 35 35 34 34 33 33 5c 0a 2d 33 33  \.-33554433\.-33
0ee0: 35 35 34 34 33 32 5c 0a 2d 33 33 35 35 34 34 33  554432\.-3355443
0ef0: 31 5c 0a 2d 31 36 37 37 37 32 31 37 5c 0a 2d 31  1\.-16777217\.-1
0f00: 36 37 37 37 32 31 36 5c 0a 2d 31 36 37 37 37 32  6777216\.-167772
0f10: 31 35 5c 0a 2d 38 33 38 38 36 30 39 5c 0a 2d 38  15\.-8388609\.-8
0f20: 33 38 38 36 30 38 5c 0a 2d 38 33 38 38 36 30 37  388608\.-8388607
0f30: 5c 0a 2d 34 31 39 34 33 30 35 5c 0a 2d 34 31 39  \.-4194305\.-419
0f40: 34 33 30 34 5c 0a 2d 34 31 39 34 33 30 33 5c 0a  4304\.-4194303\.
0f50: 2d 32 30 39 37 31 35 33 5c 0a 2d 32 30 39 37 31  -2097153\.-20971
0f60: 35 32 5c 0a 2d 32 30 39 37 31 35 31 5c 0a 2d 31  52\.-2097151\.-1
0f70: 30 34 38 35 37 37 5c 0a 2d 31 30 34 38 35 37 36  048577\.-1048576
0f80: 5c 0a 2d 31 30 34 38 35 37 35 5c 0a 2d 35 32 34  \.-1048575\.-524
0f90: 32 38 39 5c 0a 2d 35 32 34 32 38 38 5c 0a 2d 35  289\.-524288\.-5
0fa0: 32 34 32 38 37 5c 0a 2d 32 36 32 31 34 35 5c 0a  24287\.-262145\.
0fb0: 2d 32 36 32 31 34 34 5c 0a 2d 32 36 32 31 34 33  -262144\.-262143
0fc0: 5c 0a 2d 31 33 31 30 37 33 5c 0a 2d 31 33 31 30  \.-131073\.-1310
0fd0: 37 32 5c 0a 2d 31 33 31 30 37 31 5c 0a 2d 36 35  72\.-131071\.-65
0fe0: 35 33 37 5c 0a 2d 36 35 35 33 36 5c 0a 2d 36 35  537\.-65536\.-65
0ff0: 35 33 35 5c 0a 2d 33 32 37 36 39 5c 0a 2d 33 32  535\.-32769\.-32
1000: 37 36 38 5c 0a 2d 33 32 37 36 37 5c 0a 2d 31 36  768\.-32767\.-16
1010: 33 38 35 5c 0a 2d 31 36 33 38 34 5c 0a 2d 31 36  385\.-16384\.-16
1020: 33 38 33 5c 0a 2d 38 31 39 33 5c 0a 2d 38 31 39  383\.-8193\.-819
1030: 32 5c 0a 2d 38 31 39 31 5c 0a 2d 34 30 39 37 5c  2\.-8191\.-4097\
1040: 0a 2d 34 30 39 36 5c 0a 2d 34 30 39 35 5c 0a 2d  .-4096\.-4095\.-
1050: 32 30 34 39 5c 0a 2d 32 30 34 38 5c 0a 2d 32 30  2049\.-2048\.-20
1060: 34 37 5c 0a 2d 31 30 32 35 5c 0a 2d 31 30 32 34  47\.-1025\.-1024
1070: 5c 0a 2d 31 30 32 33 5c 0a 2d 35 31 33 5c 0a 2d  \.-1023\.-513\.-
1080: 35 31 32 5c 0a 2d 35 31 31 5c 0a 2d 32 35 37 5c  512\.-511\.-257\
1090: 0a 2d 32 35 36 5c 0a 2d 32 35 35 5c 0a 2d 31 32  .-256\.-255\.-12
10a0: 39 5c 0a 2d 31 32 38 5c 0a 2d 31 32 37 5c 0a 2d  9\.-128\.-127\.-
10b0: 36 35 5c 0a 2d 36 34 5c 0a 2d 36 33 5c 0a 2d 33  65\.-64\.-63\.-3
10c0: 33 5c 0a 2d 33 32 5c 0a 2d 33 31 5c 0a 2d 31 37  3\.-32\.-31\.-17
10d0: 5c 0a 2d 31 36 5c 0a 2d 31 35 5c 0a 2d 39 5c 0a  \.-16\.-15\.-9\.
10e0: 2d 38 5c 0a 2d 37 5c 0a 2d 35 5c 0a 2d 34 5c 0a  -8\.-7\.-5\.-4\.
10f0: 2d 33 5c 0a 2d 32 5c 0a 2d 31 5c 0a 30 5c 0a 31  -3\.-2\.-1\.0\.1
1100: 5c 0a 32 5c 0a 33 5c 0a 34 5c 0a 35 5c 0a 37 5c  \.2\.3\.4\.5\.7\
1110: 0a 38 5c 0a 39 5c 0a 31 35 5c 0a 31 36 5c 0a 31  .8\.9\.15\.16\.1
1120: 37 5c 0a 33 31 5c 0a 33 32 5c 0a 33 33 5c 0a 36  7\.31\.32\.33\.6
1130: 33 5c 0a 36 34 5c 0a 36 35 5c 0a 31 32 37 5c 0a  3\.64\.65\.127\.
1140: 31 32 38 5c 0a 31 32 39 5c 0a 32 35 35 5c 0a 32  128\.129\.255\.2
1150: 35 36 5c 0a 32 35 37 5c 0a 35 31 31 5c 0a 35 31  56\.257\.511\.51
1160: 32 5c 0a 35 31 33 5c 0a 31 30 32 33 5c 0a 31 30  2\.513\.1023\.10
1170: 32 34 5c 0a 31 30 32 35 5c 0a 32 30 34 37 5c 0a  24\.1025\.2047\.
1180: 32 30 34 38 5c 0a 32 30 34 39 5c 0a 34 30 39 35  2048\.2049\.4095
1190: 5c 0a 34 30 39 36 5c 0a 34 30 39 37 5c 0a 38 31  \.4096\.4097\.81
11a0: 39 31 5c 0a 38 31 39 32 5c 0a 38 31 39 33 5c 0a  91\.8192\.8193\.
11b0: 31 36 33 38 33 5c 0a 31 36 33 38 34 5c 0a 31 36  16383\.16384\.16
11c0: 33 38 35 5c 0a 33 32 37 36 37 5c 0a 33 32 37 36  385\.32767\.3276
11d0: 38 5c 0a 33 32 37 36 39 5c 0a 36 35 35 33 35 5c  8\.32769\.65535\
11e0: 0a 36 35 35 33 36 5c 0a 36 35 35 33 37 5c 0a 31  .65536\.65537\.1
11f0: 33 31 30 37 31 5c 0a 31 33 31 30 37 32 5c 0a 31  31071\.131072\.1
1200: 33 31 30 37 33 5c 0a 32 36 32 31 34 33 5c 0a 32  31073\.262143\.2
1210: 36 32 31 34 34 5c 0a 32 36 32 31 34 35 5c 0a 35  62144\.262145\.5
1220: 32 34 32 38 37 5c 0a 35 32 34 32 38 38 5c 0a 35  24287\.524288\.5
1230: 32 34 32 38 39 5c 0a 31 30 34 38 35 37 35 5c 0a  24289\.1048575\.
1240: 31 30 34 38 35 37 36 5c 0a 31 30 34 38 35 37 37  1048576\.1048577
1250: 5c 0a 32 30 39 37 31 35 31 5c 0a 32 30 39 37 31  \.2097151\.20971
1260: 35 32 5c 0a 32 30 39 37 31 35 33 5c 0a 34 31 39  52\.2097153\.419
1270: 34 33 30 33 5c 0a 34 31 39 34 33 30 34 5c 0a 34  4303\.4194304\.4
1280: 31 39 34 33 30 35 5c 0a 38 33 38 38 36 30 37 5c  194305\.8388607\
1290: 0a 38 33 38 38 36 30 38 5c 0a 38 33 38 38 36 30  .8388608\.838860
12a0: 39 5c 0a 31 36 37 37 37 32 31 35 5c 0a 31 36 37  9\.16777215\.167
12b0: 37 37 32 31 36 5c 0a 31 36 37 37 37 32 31 37 5c  77216\.16777217\
12c0: 0a 33 33 35 35 34 34 33 31 5c 0a 33 33 35 35 34  .33554431\.33554
12d0: 34 33 32 5c 0a 33 33 35 35 34 34 33 33 5c 0a 36  432\.33554433\.6
12e0: 37 31 30 38 38 36 33 5c 0a 36 37 31 30 38 38 36  7108863\.6710886
12f0: 34 5c 0a 36 37 31 30 38 38 36 35 5c 0a 31 33 34  4\.67108865\.134
1300: 32 31 37 37 32 37 5c 0a 31 33 34 32 31 37 37 32  217727\.13421772
1310: 38 5c 0a 31 33 34 32 31 37 37 32 39 5c 0a 32 36  8\.134217729\.26
1320: 38 34 33 35 34 35 35 5c 0a 32 36 38 34 33 35 34  8435455\.2684354
1330: 35 36 5c 0a 32 36 38 34 33 35 34 35 37 5c 0a 35  56\.268435457\.5
1340: 33 36 38 37 30 39 31 31 5c 0a 35 33 36 38 37 30  36870911\.536870
1350: 39 31 32 5c 0a 35 33 36 38 37 30 39 31 33 5c 0a  912\.536870913\.
1360: 31 30 37 33 37 34 31 38 32 33 5c 0a 31 30 37 33  1073741823\.1073
1370: 37 34 31 38 32 34 5c 0a 31 30 37 33 37 34 31 38  741824\.10737418
1380: 32 35 5c 0a 32 31 34 37 34 38 33 36 34 37 5c 0a  25\.2147483647\.
1390: 32 31 34 37 34 38 33 36 34 38 5c 0a 32 31 34 37  2147483648\.2147
13a0: 34 38 33 36 34 39 5c 0a 34 32 39 34 39 36 37 32  483649\.42949672
13b0: 39 35 5c 0a 34 32 39 34 39 36 37 32 39 36 5c 0a  95\.4294967296\.
13c0: 34 32 39 34 39 36 37 32 39 37 5c 0a 38 35 38 39  4294967297\.8589
13d0: 39 33 34 35 39 31 5c 0a 38 35 38 39 39 33 34 35  934591\.85899345
13e0: 39 32 5c 0a 38 35 38 39 39 33 34 35 39 33 5c 0a  92\.8589934593\.
13f0: 31 37 31 37 39 38 36 39 31 38 33 5c 0a 31 37 31  17179869183\.171
1400: 37 39 38 36 39 31 38 34 5c 0a 31 37 31 37 39 38  79869184\.171798
1410: 36 39 31 38 35 5c 0a 33 34 33 35 39 37 33 38 33  69185\.343597383
1420: 36 37 5c 0a 33 34 33 35 39 37 33 38 33 36 38 5c  67\.34359738368\
1430: 0a 33 34 33 35 39 37 33 38 33 36 39 5c 0a 36 38  .34359738369\.68
1440: 37 31 39 34 37 36 37 33 35 5c 0a 36 38 37 31 39  719476735\.68719
1450: 34 37 36 37 33 36 5c 0a 36 38 37 31 39 34 37 36  476736\.68719476
1460: 37 33 37 5c 0a 31 33 37 34 33 38 39 35 33 34 37  737\.13743895347
1470: 31 5c 0a 31 33 37 34 33 38 39 35 33 34 37 32 5c  1\.137438953472\
1480: 0a 31 33 37 34 33 38 39 35 33 34 37 33 5c 0a 32  .137438953473\.2
1490: 37 34 38 37 37 39 30 36 39 34 33 5c 0a 32 37 34  74877906943\.274
14a0: 38 37 37 39 30 36 39 34 34 5c 0a 32 37 34 38 37  877906944\.27487
14b0: 37 39 30 36 39 34 35 5c 0a 35 34 39 37 35 35 38  7906945\.5497558
14c0: 31 33 38 38 37 5c 0a 35 34 39 37 35 35 38 31 33  13887\.549755813
14d0: 38 38 38 5c 0a 35 34 39 37 35 35 38 31 33 38 38  888\.54975581388
14e0: 39 5c 0a 31 30 39 39 35 31 31 36 32 37 37 37 35  9\.1099511627775
14f0: 5c 0a 31 30 39 39 35 31 31 36 32 37 37 37 36 5c  \.1099511627776\
1500: 0a 31 30 39 39 35 31 31 36 32 37 37 37 37 5c 0a  .1099511627777\.
1510: 32 31 39 39 30 32 33 32 35 35 35 35 31 5c 0a 32  2199023255551\.2
1520: 31 39 39 30 32 33 32 35 35 35 35 32 5c 0a 32 31  199023255552\.21
1530: 39 39 30 32 33 32 35 35 35 35 33 5c 0a 34 33 39  99023255553\.439
1540: 38 30 34 36 35 31 31 31 30 33 5c 0a 34 33 39 38  8046511103\.4398
1550: 30 34 36 35 31 31 31 30 34 5c 0a 34 33 39 38 30  046511104\.43980
1560: 34 36 35 31 31 31 30 35 5c 0a 38 37 39 36 30 39  46511105\.879609
1570: 33 30 32 32 32 30 37 5c 0a 38 37 39 36 30 39 33  3022207\.8796093
1580: 30 32 32 32 30 38 5c 0a 38 37 39 36 30 39 33 30  022208\.87960930
1590: 32 32 32 30 39 5c 0a 31 37 35 39 32 31 38 36 30  22209\.175921860
15a0: 34 34 34 31 35 5c 0a 31 37 35 39 32 31 38 36 30  44415\.175921860
15b0: 34 34 34 31 36 5c 0a 31 37 35 39 32 31 38 36 30  44416\.175921860
15c0: 34 34 34 31 37 5c 0a 33 35 31 38 34 33 37 32 30  44417\.351843720
15d0: 38 38 38 33 31 5c 0a 33 35 31 38 34 33 37 32 30  88831\.351843720
15e0: 38 38 38 33 32 5c 0a 33 35 31 38 34 33 37 32 30  88832\.351843720
15f0: 38 38 38 33 33 5c 0a 37 30 33 36 38 37 34 34 31  88833\.703687441
1600: 37 37 36 36 33 5c 0a 37 30 33 36 38 37 34 34 31  77663\.703687441
1610: 37 37 36 36 34 5c 0a 37 30 33 36 38 37 34 34 31  77664\.703687441
1620: 37 37 36 36 35 5c 0a 31 34 30 37 33 37 34 38 38  77665\.140737488
1630: 33 35 35 33 32 37 5c 0a 31 34 30 37 33 37 34 38  355327\.14073748
1640: 38 33 35 35 33 32 38 5c 0a 31 34 30 37 33 37 34  8355328\.1407374
1650: 38 38 33 35 35 33 32 39 5c 0a 32 38 31 34 37 34  88355329\.281474
1660: 39 37 36 37 31 30 36 35 35 5c 0a 32 38 31 34 37  976710655\.28147
1670: 34 39 37 36 37 31 30 36 35 36 5c 0a 32 38 31 34  4976710656\.2814
1680: 37 34 39 37 36 37 31 30 36 35 37 5c 0a 35 36 32  74976710657\.562
1690: 39 34 39 39 35 33 34 32 31 33 31 31 5c 0a 35 36  949953421311\.56
16a0: 32 39 34 39 39 35 33 34 32 31 33 31 32 5c 0a 35  2949953421312\.5
16b0: 36 32 39 34 39 39 35 33 34 32 31 33 31 33 5c 0a  62949953421313\.
16c0: 31 31 32 35 38 39 39 39 30 36 38 34 32 36 32 33  1125899906842623
16d0: 5c 0a 31 31 32 35 38 39 39 39 30 36 38 34 32 36  \.11258999068426
16e0: 32 34 5c 0a 31 31 32 35 38 39 39 39 30 36 38 34  24\.112589990684
16f0: 32 36 32 35 5c 0a 32 32 35 31 37 39 39 38 31 33  2625\.2251799813
1700: 36 38 35 32 34 37 5c 0a 32 32 35 31 37 39 39 38  685247\.22517998
1710: 31 33 36 38 35 32 34 38 5c 0a 32 32 35 31 37 39  13685248\.225179
1720: 39 38 31 33 36 38 35 32 34 39 5c 0a 34 35 30 33  9813685249\.4503
1730: 35 39 39 36 32 37 33 37 30 34 39 35 5c 0a 34 35  599627370495\.45
1740: 30 33 35 39 39 36 32 37 33 37 30 34 39 36 5c 0a  03599627370496\.
1750: 34 35 30 33 35 39 39 36 32 37 33 37 30 34 39 37  4503599627370497
1760: 5c 0a 39 30 30 37 31 39 39 32 35 34 37 34 30 39  \.90071992547409
1770: 39 31 5c 0a 39 30 30 37 31 39 39 32 35 34 37 34  91\.900719925474
1780: 30 39 39 32 5c 0a 39 30 30 37 31 39 39 32 35 34  0992\.9007199254
1790: 37 34 30 39 39 33 5c 0a 31 38 30 31 34 33 39 38  740993\.18014398
17a0: 35 30 39 34 38 31 39 38 33 5c 0a 31 38 30 31 34  509481983\.18014
17b0: 33 39 38 35 30 39 34 38 31 39 38 34 5c 0a 31 38  398509481984\.18
17c0: 30 31 34 33 39 38 35 30 39 34 38 31 39 38 35 5c  014398509481985\
17d0: 0a 33 36 30 32 38 37 39 37 30 31 38 39 36 33 39  .360287970189639
17e0: 36 37 5c 0a 33 36 30 32 38 37 39 37 30 31 38 39  67\.360287970189
17f0: 36 33 39 36 38 5c 0a 33 36 30 32 38 37 39 37 30  63968\.360287970
1800: 31 38 39 36 33 39 36 39 5c 0a 37 32 30 35 37 35  18963969\.720575
1810: 39 34 30 33 37 39 32 37 39 33 35 5c 0a 37 32 30  94037927935\.720
1820: 35 37 35 39 34 30 33 37 39 32 37 39 33 36 5c 0a  57594037927936\.
1830: 37 32 30 35 37 35 39 34 30 33 37 39 32 37 39 33  7205759403792793
1840: 37 5c 0a 31 34 34 31 31 35 31 38 38 30 37 35 38  7\.1441151880758
1850: 35 35 38 37 31 5c 0a 31 34 34 31 31 35 31 38 38  55871\.144115188
1860: 30 37 35 38 35 35 38 37 32 5c 0a 31 34 34 31 31  075855872\.14411
1870: 35 31 38 38 30 37 35 38 35 35 38 37 33 5c 0a 32  5188075855873\.2
1880: 38 38 32 33 30 33 37 36 31 35 31 37 31 31 37 34  8823037615171174
1890: 33 5c 0a 32 38 38 32 33 30 33 37 36 31 35 31 37  3\.2882303761517
18a0: 31 31 37 34 34 5c 0a 32 38 38 32 33 30 33 37 36  11744\.288230376
18b0: 31 35 31 37 31 31 37 34 35 5c 0a 35 37 36 34 36  151711745\.57646
18c0: 30 37 35 32 33 30 33 34 32 33 34 38 37 5c 0a 35  0752303423487\.5
18d0: 37 36 34 36 30 37 35 32 33 30 33 34 32 33 34 38  7646075230342348
18e0: 38 5c 0a 35 37 36 34 36 30 37 35 32 33 30 33 34  8\.5764607523034
18f0: 32 33 34 38 39 5c 0a 31 31 35 32 39 32 31 35 30  23489\.115292150
1900: 34 36 30 36 38 34 36 39 37 35 5c 0a 31 31 35 32  4606846975\.1152
1910: 39 32 31 35 30 34 36 30 36 38 34 36 39 37 36 5c  921504606846976\
1920: 0a 31 31 35 32 39 32 31 35 30 34 36 30 36 38 34  .115292150460684
1930: 36 39 37 37 5c 0a 32 33 30 35 38 34 33 30 30 39  6977\.2305843009
1940: 32 31 33 36 39 33 39 35 31 5c 0a 32 33 30 35 38  213693951\.23058
1950: 34 33 30 30 39 32 31 33 36 39 33 39 35 32 5c 0a  43009213693952\.
1960: 32 33 30 35 38 34 33 30 30 39 32 31 33 36 39 33  2305843009213693
1970: 39 35 33 5c 0a 34 36 31 31 36 38 36 30 31 38 34  953\.46116860184
1980: 32 37 33 38 37 39 30 33 5c 0a 34 36 31 31 36 38  27387903\.461168
1990: 36 30 31 38 34 32 37 33 38 37 39 30 34 5c 0a 34  6018427387904\.4
19a0: 36 31 31 36 38 36 30 31 38 34 32 37 33 38 37 39  6116860184273879
19b0: 30 35 22 0a 0a 23 20 54 69 63 6b 65 74 20 23 31  05"..# Ticket #1
19c0: 32 31 30 2e 20 20 44 6f 20 70 72 6f 70 65 72 20  210.  Do proper 
19d0: 72 65 66 65 72 65 6e 63 65 20 63 6f 75 6e 74 69  reference counti
19e0: 6e 67 20 6f 66 20 54 61 62 6c 65 20 73 74 72 75  ng of Table stru
19f0: 63 74 75 72 65 73 0a 23 20 73 6f 20 74 68 61 74  ctures.# so that
1a00: 20 64 65 65 70 6c 79 20 6e 65 73 74 65 64 20 53   deeply nested S
1a10: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 73  ELECT statements
1a20: 20 63 61 6e 20 62 65 20 66 6c 61 74 74 65 6e 65   can be flattene
1a30: 64 20 63 6f 72 72 65 63 74 6c 79 2e 0a 23 0a 64  d correctly..#.d
1a40: 6f 5f 74 65 73 74 20 6d 69 73 63 35 2d 33 2e 31  o_test misc5-3.1
1a50: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
1a60: 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20     CREATE TABLE 
1a70: 73 6f 6e 67 73 28 73 6f 6e 67 69 64 2c 20 61 72  songs(songid, ar
1a80: 74 69 73 74 2c 20 74 69 6d 65 73 70 6c 61 79 65  tist, timesplaye
1a90: 64 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  d);.    INSERT I
1aa0: 4e 54 4f 20 73 6f 6e 67 73 20 56 41 4c 55 45 53  NTO songs VALUES
1ab0: 28 31 2c 27 6f 6e 65 27 2c 31 29 3b 0a 20 20 20  (1,'one',1);.   
1ac0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 73 6f 6e   INSERT INTO son
1ad0: 67 73 20 56 41 4c 55 45 53 28 32 2c 27 6f 6e 65  gs VALUES(2,'one
1ae0: 27 2c 32 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ',2);.    INSERT
1af0: 20 49 4e 54 4f 20 73 6f 6e 67 73 20 56 41 4c 55   INTO songs VALU
1b00: 45 53 28 33 2c 27 74 77 6f 27 2c 33 29 3b 0a 20  ES(3,'two',3);. 
1b10: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 73     INSERT INTO s
1b20: 6f 6e 67 73 20 56 41 4c 55 45 53 28 34 2c 27 74  ongs VALUES(4,'t
1b30: 68 72 65 65 27 2c 35 29 3b 0a 20 20 20 20 49 4e  hree',5);.    IN
1b40: 53 45 52 54 20 49 4e 54 4f 20 73 6f 6e 67 73 20  SERT INTO songs 
1b50: 56 41 4c 55 45 53 28 35 2c 27 6f 6e 65 27 2c 37  VALUES(5,'one',7
1b60: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
1b70: 54 4f 20 73 6f 6e 67 73 20 56 41 4c 55 45 53 28  TO songs VALUES(
1b80: 36 2c 27 74 77 6f 27 2c 31 31 29 3b 0a 20 20 20  6,'two',11);.   
1b90: 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54   SELECT DISTINCT
1ba0: 20 61 72 74 69 73 74 20 0a 20 20 20 20 46 52 4f   artist .    FRO
1bb0: 4d 20 28 20 20 20 20 0a 20 20 20 20 20 53 45 4c  M (    .     SEL
1bc0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 61 72 74  ECT DISTINCT art
1bd0: 69 73 74 20 20 20 20 0a 20 20 20 20 20 46 52 4f  ist    .     FRO
1be0: 4d 20 73 6f 6e 67 73 20 20 20 20 20 20 0a 20 20  M songs      .  
1bf0: 20 20 20 57 48 45 52 45 20 73 6f 6e 67 69 64 20     WHERE songid 
1c00: 49 4e 20 28 20 20 20 20 0a 20 20 20 20 20 20 53  IN (    .      S
1c10: 45 4c 45 43 54 20 73 6f 6e 67 69 64 20 20 20 20  ELECT songid    
1c20: 0a 20 20 20 20 20 20 46 52 4f 4d 20 73 6f 6e 67  .      FROM song
1c30: 73 20 20 20 20 0a 20 20 20 20 20 20 57 48 45 52  s    .      WHER
1c40: 45 20 4c 4f 57 45 52 28 61 72 74 69 73 74 29 20  E LOWER(artist) 
1c50: 3d 20 28 20 20 20 20 0a 20 20 20 20 20 20 20 20  = (    .        
1c60: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c70: 4c 4f 57 45 52 28 61 72 74 69 73 74 29 20 20 20  LOWER(artist)   
1c80: 20 0a 20 20 20 20 20 20 20 20 46 52 4f 4d 20 28   .        FROM (
1c90: 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20        .         
1ca0: 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54   SELECT DISTINCT
1cb0: 20 61 72 74 69 73 74 2c 73 75 6d 28 74 69 6d 65   artist,sum(time
1cc0: 73 70 6c 61 79 65 64 29 20 41 53 20 74 6f 74 61  splayed) AS tota
1cd0: 6c 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20  l      .        
1ce0: 20 20 46 52 4f 4d 20 73 6f 6e 67 73 20 20 20 20    FROM songs    
1cf0: 20 20 0a 20 20 20 20 20 20 20 20 20 20 47 52 4f    .          GRO
1d00: 55 50 20 42 59 20 4c 4f 57 45 52 28 61 72 74 69  UP BY LOWER(arti
1d10: 73 74 29 20 20 20 20 20 20 0a 20 20 20 20 20 20  st)      .      
1d20: 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 6f 74      ORDER BY tot
1d30: 61 6c 20 44 45 53 43 20 20 20 20 20 20 0a 20 20  al DESC      .  
1d40: 20 20 20 20 20 20 20 20 4c 49 4d 49 54 20 31 30          LIMIT 10
1d50: 20 20 20 20 0a 20 20 20 20 20 20 20 20 29 20 20      .        )  
1d60: 20 20 0a 20 20 20 20 20 20 20 20 57 48 45 52 45    .        WHERE
1d70: 20 61 72 74 69 73 74 20 3c 3e 20 27 27 20 0a 20   artist <> '' . 
1d80: 20 20 20 20 20 29 20 20 0a 20 20 20 20 20 29 20       )  .     ) 
1d90: 20 20 20 20 20 20 0a 20 20 20 20 29 20 20 0a 20        .    )  . 
1da0: 20 20 20 4f 52 44 45 52 20 42 59 20 4c 4f 57 45     ORDER BY LOWE
1db0: 52 28 61 72 74 69 73 74 29 20 41 53 43 3b 0a 20  R(artist) ASC;. 
1dc0: 20 7d 0a 7d 20 7b 74 77 6f 7d 0a 0a 23 20 54 69   }.} {two}..# Ti
1dd0: 63 6b 65 74 20 23 31 33 37 30 2e 20 20 44 6f 20  cket #1370.  Do 
1de0: 6e 6f 74 20 6f 76 65 72 77 72 69 74 65 20 73 6d  not overwrite sm
1df0: 61 6c 6c 20 66 69 6c 65 73 20 28 6c 65 73 73 20  all files (less 
1e00: 74 68 61 6e 20 31 30 32 34 20 62 79 74 65 73 29  than 1024 bytes)
1e10: 0a 23 20 77 68 65 6e 20 74 72 79 69 6e 67 20 74  .# when trying t
1e20: 6f 20 6f 70 65 6e 20 74 68 65 6d 20 61 73 20 61  o open them as a
1e30: 20 64 61 74 61 62 61 73 65 2e 0a 23 0a 64 6f 5f   database..#.do_
1e40: 74 65 73 74 20 6d 69 73 63 35 2d 34 2e 31 20 7b  test misc5-4.1 {
1e50: 0a 20 20 64 62 20 63 6c 6f 73 65 0a 20 20 66 69  .  db close.  fi
1e60: 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65  le delete -force
1e70: 20 74 65 73 74 2e 64 62 0a 20 20 73 65 74 20 66   test.db.  set f
1e80: 64 20 5b 6f 70 65 6e 20 74 65 73 74 2e 64 62 20  d [open test.db 
1e90: 77 5d 0a 20 20 70 75 74 73 20 24 66 64 20 22 54  w].  puts $fd "T
1ea0: 68 69 73 20 69 73 20 6e 6f 74 20 72 65 61 6c 6c  his is not reall
1eb0: 79 20 61 20 64 61 74 61 62 61 73 65 22 0a 20 20  y a database".  
1ec0: 63 6c 6f 73 65 20 24 66 64 0a 20 20 73 71 6c 69  close $fd.  sqli
1ed0: 74 65 33 20 64 62 20 74 65 73 74 2e 64 62 0a 20  te3 db test.db. 
1ee0: 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20   catchsql {.    
1ef0: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31 28  CREATE TABLE t1(
1f00: 61 2c 62 2c 63 29 3b 0a 20 20 7d 0a 7d 20 7b 31  a,b,c);.  }.} {1
1f10: 20 7b 66 69 6c 65 20 69 73 20 65 6e 63 72 79 70   {file is encryp
1f20: 74 65 64 20 6f 72 20 69 73 20 6e 6f 74 20 61 20  ted or is not a 
1f30: 64 61 74 61 62 61 73 65 7d 7d 0a 0a 23 20 54 69  database}}..# Ti
1f40: 63 6b 65 74 20 23 31 33 37 31 2e 20 20 41 6c 6c  cket #1371.  All
1f50: 6f 77 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  ow floating poin
1f60: 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 74 68 65  t numbers of the
1f70: 20 66 6f 72 6d 20 2e 4e 20 20 6f 72 20 4e 2e 0a   form .N  or N..
1f80: 23 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63 35 2d  #.do_test misc5-
1f90: 35 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  5.1 {.  execsql 
1fa0: 7b 53 45 4c 45 43 54 20 2e 31 20 7d 0a 7d 20 30  {SELECT .1 }.} 0
1fb0: 2e 31 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63 35  .1.do_test misc5
1fc0: 2d 35 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  -5.2 {.  execsql
1fd0: 20 7b 53 45 4c 45 43 54 20 32 2e 20 7d 0a 7d 20   {SELECT 2. }.} 
1fe0: 32 2e 30 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63  2.0.do_test misc
1ff0: 35 2d 35 2e 33 20 7b 0a 20 20 65 78 65 63 73 71  5-5.3 {.  execsq
2000: 6c 20 7b 53 45 4c 45 43 54 20 33 2e 65 30 20 7d  l {SELECT 3.e0 }
2010: 0a 7d 20 33 2e 30 0a 64 6f 5f 74 65 73 74 20 6d  .} 3.0.do_test m
2020: 69 73 63 35 2d 35 2e 34 20 7b 0a 20 20 65 78 65  isc5-5.4 {.  exe
2030: 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 2e 34 65  csql {SELECT .4e
2040: 2b 31 7d 0a 7d 20 34 2e 30 0a 0a 0a 66 69 6e 69  +1}.} 4.0...fini
2050: 73 68 5f 74 65 73 74 0a                          sh_test.