/ Hex Artifact Content
Login

Artifact aa5d7b4ef0963aaa87c18654e266682ca3565779:


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 31 30 20 32 30  5.test,v 1.10 20
0220: 30 36 2f 30 31 2f 31 36 20 31 36 3a 32 34 3a 32  06/01/16 16:24:2
0230: 35 20 64 61 6e 69 65 6c 6b 31 39 37 37 20 45 78  5 danielk1977 Ex
0240: 70 20 24 0a 0a 73 65 74 20 74 65 73 74 64 69 72  p $..set testdir
0250: 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24   [file dirname $
0260: 61 72 67 76 30 5d 0a 73 6f 75 72 63 65 20 24 74  argv0].source $t
0270: 65 73 74 64 69 72 2f 74 65 73 74 65 72 2e 74 63  estdir/tester.tc
0280: 6c 0a 0a 23 20 42 75 69 6c 64 20 72 65 63 6f 72  l..# Build recor
0290: 64 73 20 75 73 69 6e 67 20 74 68 65 20 4d 61 6b  ds using the Mak
02a0: 65 52 65 63 6f 72 64 20 6f 70 63 6f 64 65 20 73  eRecord opcode s
02b0: 75 63 68 20 74 68 61 74 20 74 68 65 20 73 69 7a  uch that the siz
02c0: 65 20 6f 66 20 74 68 65 20 0a 23 20 68 65 61 64  e of the .# head
02d0: 65 72 20 69 73 20 61 74 20 74 68 65 20 74 72 61  er is at the tra
02e0: 6e 73 69 74 69 6f 6e 20 70 6f 69 6e 74 20 69 6e  nsition point in
02f0: 20 74 68 65 20 73 69 7a 65 20 6f 66 20 61 20 76   the size of a v
0300: 61 72 69 6e 74 2e 0a 23 0a 23 20 54 68 69 73 20  arint..#.# This 
0310: 74 65 73 74 20 63 61 75 73 65 73 20 61 6e 20 61  test causes an a
0320: 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65  ssertion failure
0330: 20 6f 72 20 61 20 62 75 66 66 65 72 20 6f 76 65   or a buffer ove
0340: 72 72 75 6e 20 69 6e 20 76 65 72 73 69 6f 6e 0a  rrun in version.
0350: 23 20 33 2e 31 2e 35 20 61 6e 64 20 65 61 72 6c  # 3.1.5 and earl
0360: 69 65 72 2e 0a 23 0a 66 6f 72 20 7b 73 65 74 20  ier..#.for {set 
0370: 69 20 31 32 30 7d 20 7b 24 69 3c 31 34 30 7d 20  i 120} {$i<140} 
0380: 7b 69 6e 63 72 20 69 7d 20 7b 0a 20 20 64 6f 5f  {incr i} {.  do_
0390: 74 65 73 74 20 6d 69 73 63 35 2d 31 2e 24 69 20  test misc5-1.$i 
03a0: 7b 0a 20 20 20 20 63 61 74 63 68 73 71 6c 20 7b  {.    catchsql {
03b0: 44 52 4f 50 20 54 41 42 4c 45 20 74 31 7d 0a 20  DROP TABLE t1}. 
03c0: 20 20 20 73 65 74 20 73 71 6c 31 20 7b 43 52 45     set sql1 {CRE
03d0: 41 54 45 20 54 41 42 4c 45 20 74 31 7d 0a 20 20  ATE TABLE t1}.  
03e0: 20 20 73 65 74 20 73 71 6c 32 20 7b 49 4e 53 45    set sql2 {INSE
03f0: 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45  RT INTO t1 VALUE
0400: 53 7d 0a 20 20 20 20 73 65 74 20 73 65 70 20 28  S}.    set sep (
0410: 0a 20 20 20 20 66 6f 72 20 7b 73 65 74 20 6a 20  .    for {set j 
0420: 30 7d 20 7b 24 6a 3c 24 69 7d 20 7b 69 6e 63 72  0} {$j<$i} {incr
0430: 20 6a 7d 20 7b 0a 20 20 20 20 20 20 61 70 70 65   j} {.      appe
0440: 6e 64 20 73 71 6c 31 20 24 7b 73 65 70 7d 61 24  nd sql1 ${sep}a$
0450: 6a 0a 20 20 20 20 20 20 61 70 70 65 6e 64 20 73  j.      append s
0460: 71 6c 32 20 24 7b 73 65 70 7d 24 6a 0a 20 20 20  ql2 ${sep}$j.   
0470: 20 20 20 73 65 74 20 73 65 70 20 2c 0a 20 20 20     set sep ,.   
0480: 20 7d 0a 20 20 20 20 61 70 70 65 6e 64 20 73 71   }.    append sq
0490: 6c 31 20 7b 29 3b 7d 0a 20 20 20 20 61 70 70 65  l1 {);}.    appe
04a0: 6e 64 20 73 71 6c 32 20 7b 29 3b 7d 0a 20 20 20  nd sql2 {);}.   
04b0: 20 65 78 65 63 73 71 6c 20 24 73 71 6c 31 24 73   execsql $sql1$s
04c0: 71 6c 32 0a 20 20 7d 20 7b 7d 0a 7d 0a 0a 23 20  ql2.  } {}.}..# 
04d0: 4d 61 6b 65 20 73 75 72 65 20 6c 61 72 67 65 20  Make sure large 
04e0: 69 6e 74 65 67 65 72 73 20 61 72 65 20 73 74 6f  integers are sto
04f0: 72 65 64 20 63 6f 72 72 65 63 74 6c 79 2e 0a 23  red correctly..#
0500: 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63 35 2d 32  .do_test misc5-2
0510: 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .1 {.  execsql {
0520: 0a 20 20 20 20 63 72 65 61 74 65 20 74 61 62 6c  .    create tabl
0530: 65 20 74 32 28 78 20 75 6e 69 71 75 65 29 3b 0a  e t2(x unique);.
0540: 20 20 20 20 69 6e 73 65 72 74 20 69 6e 74 6f 20      insert into 
0550: 74 32 20 76 61 6c 75 65 73 28 31 29 3b 0a 20 20  t2 values(1);.  
0560: 20 20 69 6e 73 65 72 74 20 6f 72 20 69 67 6e 6f    insert or igno
0570: 72 65 20 69 6e 74 6f 20 74 32 20 73 65 6c 65 63  re into t2 selec
0580: 74 20 78 2a 32 20 66 72 6f 6d 20 74 32 3b 0a 20  t x*2 from t2;. 
0590: 20 20 20 69 6e 73 65 72 74 20 6f 72 20 69 67 6e     insert or ign
05a0: 6f 72 65 20 69 6e 74 6f 20 74 32 20 73 65 6c 65  ore into t2 sele
05b0: 63 74 20 78 2a 34 20 66 72 6f 6d 20 74 32 3b 0a  ct x*4 from t2;.
05c0: 20 20 20 20 69 6e 73 65 72 74 20 6f 72 20 69 67      insert or ig
05d0: 6e 6f 72 65 20 69 6e 74 6f 20 74 32 20 73 65 6c  nore into t2 sel
05e0: 65 63 74 20 78 2a 31 36 20 66 72 6f 6d 20 74 32  ect x*16 from t2
05f0: 3b 0a 20 20 20 20 69 6e 73 65 72 74 20 6f 72 20  ;.    insert or 
0600: 69 67 6e 6f 72 65 20 69 6e 74 6f 20 74 32 20 73  ignore into t2 s
0610: 65 6c 65 63 74 20 78 2a 32 35 36 20 66 72 6f 6d  elect x*256 from
0620: 20 74 32 3b 0a 20 20 20 20 69 6e 73 65 72 74 20   t2;.    insert 
0630: 6f 72 20 69 67 6e 6f 72 65 20 69 6e 74 6f 20 74  or ignore into t
0640: 32 20 73 65 6c 65 63 74 20 78 2a 36 35 35 33 36  2 select x*65536
0650: 20 66 72 6f 6d 20 74 32 3b 0a 20 20 20 20 69 6e   from t2;.    in
0660: 73 65 72 74 20 6f 72 20 69 67 6e 6f 72 65 20 69  sert or ignore i
0670: 6e 74 6f 20 74 32 20 73 65 6c 65 63 74 20 78 2a  nto t2 select x*
0680: 32 31 34 37 34 38 33 36 34 38 20 66 72 6f 6d 20  2147483648 from 
0690: 74 32 3b 0a 20 20 20 20 69 6e 73 65 72 74 20 6f  t2;.    insert o
06a0: 72 20 69 67 6e 6f 72 65 20 69 6e 74 6f 20 74 32  r ignore into t2
06b0: 20 73 65 6c 65 63 74 20 78 2d 31 20 66 72 6f 6d   select x-1 from
06c0: 20 74 32 3b 0a 20 20 20 20 69 6e 73 65 72 74 20   t2;.    insert 
06d0: 6f 72 20 69 67 6e 6f 72 65 20 69 6e 74 6f 20 74  or ignore into t
06e0: 32 20 73 65 6c 65 63 74 20 78 2b 31 20 66 72 6f  2 select x+1 fro
06f0: 6d 20 74 32 3b 0a 20 20 20 20 69 6e 73 65 72 74  m t2;.    insert
0700: 20 6f 72 20 69 67 6e 6f 72 65 20 69 6e 74 6f 20   or ignore into 
0710: 74 32 20 73 65 6c 65 63 74 20 2d 78 20 66 72 6f  t2 select -x fro
0720: 6d 20 74 32 3b 0a 20 20 20 20 73 65 6c 65 63 74  m t2;.    select
0730: 20 63 6f 75 6e 74 28 2a 29 20 66 72 6f 6d 20 74   count(*) from t
0740: 32 3b 0a 20 20 7d 0a 7d 20 33 37 31 0a 64 6f 5f  2;.  }.} 371.do_
0750: 74 65 73 74 20 6d 69 73 63 35 2d 32 2e 32 20 7b  test misc5-2.2 {
0760: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
0770: 20 73 65 6c 65 63 74 20 78 20 66 72 6f 6d 20 74   select x from t
0780: 32 20 6f 72 64 65 72 20 62 79 20 78 3b 0a 20 20  2 order by x;.  
0790: 7d 0a 7d 20 5c 0a 22 2d 34 36 31 31 36 38 36 30  }.} \."-46116860
07a0: 31 38 34 32 37 33 38 37 39 30 35 5c 0a 2d 34 36  18427387905\.-46
07b0: 31 31 36 38 36 30 31 38 34 32 37 33 38 37 39 30  1168601842738790
07c0: 34 5c 0a 2d 34 36 31 31 36 38 36 30 31 38 34 32  4\.-461168601842
07d0: 37 33 38 37 39 30 33 5c 0a 2d 32 33 30 35 38 34  7387903\.-230584
07e0: 33 30 30 39 32 31 33 36 39 33 39 35 33 5c 0a 2d  3009213693953\.-
07f0: 32 33 30 35 38 34 33 30 30 39 32 31 33 36 39 33  2305843009213693
0800: 39 35 32 5c 0a 2d 32 33 30 35 38 34 33 30 30 39  952\.-2305843009
0810: 32 31 33 36 39 33 39 35 31 5c 0a 2d 31 31 35 32  213693951\.-1152
0820: 39 32 31 35 30 34 36 30 36 38 34 36 39 37 37 5c  921504606846977\
0830: 0a 2d 31 31 35 32 39 32 31 35 30 34 36 30 36 38  .-11529215046068
0840: 34 36 39 37 36 5c 0a 2d 31 31 35 32 39 32 31 35  46976\.-11529215
0850: 30 34 36 30 36 38 34 36 39 37 35 5c 0a 2d 35 37  04606846975\.-57
0860: 36 34 36 30 37 35 32 33 30 33 34 32 33 34 38 39  6460752303423489
0870: 5c 0a 2d 35 37 36 34 36 30 37 35 32 33 30 33 34  \.-5764607523034
0880: 32 33 34 38 38 5c 0a 2d 35 37 36 34 36 30 37 35  23488\.-57646075
0890: 32 33 30 33 34 32 33 34 38 37 5c 0a 2d 32 38 38  2303423487\.-288
08a0: 32 33 30 33 37 36 31 35 31 37 31 31 37 34 35 5c  230376151711745\
08b0: 0a 2d 32 38 38 32 33 30 33 37 36 31 35 31 37 31  .-28823037615171
08c0: 31 37 34 34 5c 0a 2d 32 38 38 32 33 30 33 37 36  1744\.-288230376
08d0: 31 35 31 37 31 31 37 34 33 5c 0a 2d 31 34 34 31  151711743\.-1441
08e0: 31 35 31 38 38 30 37 35 38 35 35 38 37 33 5c 0a  15188075855873\.
08f0: 2d 31 34 34 31 31 35 31 38 38 30 37 35 38 35 35  -144115188075855
0900: 38 37 32 5c 0a 2d 31 34 34 31 31 35 31 38 38 30  872\.-1441151880
0910: 37 35 38 35 35 38 37 31 5c 0a 2d 37 32 30 35 37  75855871\.-72057
0920: 35 39 34 30 33 37 39 32 37 39 33 37 5c 0a 2d 37  594037927937\.-7
0930: 32 30 35 37 35 39 34 30 33 37 39 32 37 39 33 36  2057594037927936
0940: 5c 0a 2d 37 32 30 35 37 35 39 34 30 33 37 39 32  \.-7205759403792
0950: 37 39 33 35 5c 0a 2d 33 36 30 32 38 37 39 37 30  7935\.-360287970
0960: 31 38 39 36 33 39 36 39 5c 0a 2d 33 36 30 32 38  18963969\.-36028
0970: 37 39 37 30 31 38 39 36 33 39 36 38 5c 0a 2d 33  797018963968\.-3
0980: 36 30 32 38 37 39 37 30 31 38 39 36 33 39 36 37  6028797018963967
0990: 5c 0a 2d 31 38 30 31 34 33 39 38 35 30 39 34 38  \.-1801439850948
09a0: 31 39 38 35 5c 0a 2d 31 38 30 31 34 33 39 38 35  1985\.-180143985
09b0: 30 39 34 38 31 39 38 34 5c 0a 2d 31 38 30 31 34  09481984\.-18014
09c0: 33 39 38 35 30 39 34 38 31 39 38 33 5c 0a 2d 39  398509481983\.-9
09d0: 30 30 37 31 39 39 32 35 34 37 34 30 39 39 33 5c  007199254740993\
09e0: 0a 2d 39 30 30 37 31 39 39 32 35 34 37 34 30 39  .-90071992547409
09f0: 39 32 5c 0a 2d 39 30 30 37 31 39 39 32 35 34 37  92\.-90071992547
0a00: 34 30 39 39 31 5c 0a 2d 34 35 30 33 35 39 39 36  40991\.-45035996
0a10: 32 37 33 37 30 34 39 37 5c 0a 2d 34 35 30 33 35  27370497\.-45035
0a20: 39 39 36 32 37 33 37 30 34 39 36 5c 0a 2d 34 35  99627370496\.-45
0a30: 30 33 35 39 39 36 32 37 33 37 30 34 39 35 5c 0a  03599627370495\.
0a40: 2d 32 32 35 31 37 39 39 38 31 33 36 38 35 32 34  -225179981368524
0a50: 39 5c 0a 2d 32 32 35 31 37 39 39 38 31 33 36 38  9\.-225179981368
0a60: 35 32 34 38 5c 0a 2d 32 32 35 31 37 39 39 38 31  5248\.-225179981
0a70: 33 36 38 35 32 34 37 5c 0a 2d 31 31 32 35 38 39  3685247\.-112589
0a80: 39 39 30 36 38 34 32 36 32 35 5c 0a 2d 31 31 32  9906842625\.-112
0a90: 35 38 39 39 39 30 36 38 34 32 36 32 34 5c 0a 2d  5899906842624\.-
0aa0: 31 31 32 35 38 39 39 39 30 36 38 34 32 36 32 33  1125899906842623
0ab0: 5c 0a 2d 35 36 32 39 34 39 39 35 33 34 32 31 33  \.-5629499534213
0ac0: 31 33 5c 0a 2d 35 36 32 39 34 39 39 35 33 34 32  13\.-56294995342
0ad0: 31 33 31 32 5c 0a 2d 35 36 32 39 34 39 39 35 33  1312\.-562949953
0ae0: 34 32 31 33 31 31 5c 0a 2d 32 38 31 34 37 34 39  421311\.-2814749
0af0: 37 36 37 31 30 36 35 37 5c 0a 2d 32 38 31 34 37  76710657\.-28147
0b00: 34 39 37 36 37 31 30 36 35 36 5c 0a 2d 32 38 31  4976710656\.-281
0b10: 34 37 34 39 37 36 37 31 30 36 35 35 5c 0a 2d 31  474976710655\.-1
0b20: 34 30 37 33 37 34 38 38 33 35 35 33 32 39 5c 0a  40737488355329\.
0b30: 2d 31 34 30 37 33 37 34 38 38 33 35 35 33 32 38  -140737488355328
0b40: 5c 0a 2d 31 34 30 37 33 37 34 38 38 33 35 35 33  \.-1407374883553
0b50: 32 37 5c 0a 2d 37 30 33 36 38 37 34 34 31 37 37  27\.-70368744177
0b60: 36 36 35 5c 0a 2d 37 30 33 36 38 37 34 34 31 37  665\.-7036874417
0b70: 37 36 36 34 5c 0a 2d 37 30 33 36 38 37 34 34 31  7664\.-703687441
0b80: 37 37 36 36 33 5c 0a 2d 33 35 31 38 34 33 37 32  77663\.-35184372
0b90: 30 38 38 38 33 33 5c 0a 2d 33 35 31 38 34 33 37  088833\.-3518437
0ba0: 32 30 38 38 38 33 32 5c 0a 2d 33 35 31 38 34 33  2088832\.-351843
0bb0: 37 32 30 38 38 38 33 31 5c 0a 2d 31 37 35 39 32  72088831\.-17592
0bc0: 31 38 36 30 34 34 34 31 37 5c 0a 2d 31 37 35 39  186044417\.-1759
0bd0: 32 31 38 36 30 34 34 34 31 36 5c 0a 2d 31 37 35  2186044416\.-175
0be0: 39 32 31 38 36 30 34 34 34 31 35 5c 0a 2d 38 37  92186044415\.-87
0bf0: 39 36 30 39 33 30 32 32 32 30 39 5c 0a 2d 38 37  96093022209\.-87
0c00: 39 36 30 39 33 30 32 32 32 30 38 5c 0a 2d 38 37  96093022208\.-87
0c10: 39 36 30 39 33 30 32 32 32 30 37 5c 0a 2d 34 33  96093022207\.-43
0c20: 39 38 30 34 36 35 31 31 31 30 35 5c 0a 2d 34 33  98046511105\.-43
0c30: 39 38 30 34 36 35 31 31 31 30 34 5c 0a 2d 34 33  98046511104\.-43
0c40: 39 38 30 34 36 35 31 31 31 30 33 5c 0a 2d 32 31  98046511103\.-21
0c50: 39 39 30 32 33 32 35 35 35 35 33 5c 0a 2d 32 31  99023255553\.-21
0c60: 39 39 30 32 33 32 35 35 35 35 32 5c 0a 2d 32 31  99023255552\.-21
0c70: 39 39 30 32 33 32 35 35 35 35 31 5c 0a 2d 31 30  99023255551\.-10
0c80: 39 39 35 31 31 36 32 37 37 37 37 5c 0a 2d 31 30  99511627777\.-10
0c90: 39 39 35 31 31 36 32 37 37 37 36 5c 0a 2d 31 30  99511627776\.-10
0ca0: 39 39 35 31 31 36 32 37 37 37 35 5c 0a 2d 35 34  99511627775\.-54
0cb0: 39 37 35 35 38 31 33 38 38 39 5c 0a 2d 35 34 39  9755813889\.-549
0cc0: 37 35 35 38 31 33 38 38 38 5c 0a 2d 35 34 39 37  755813888\.-5497
0cd0: 35 35 38 31 33 38 38 37 5c 0a 2d 32 37 34 38 37  55813887\.-27487
0ce0: 37 39 30 36 39 34 35 5c 0a 2d 32 37 34 38 37 37  7906945\.-274877
0cf0: 39 30 36 39 34 34 5c 0a 2d 32 37 34 38 37 37 39  906944\.-2748779
0d00: 30 36 39 34 33 5c 0a 2d 31 33 37 34 33 38 39 35  06943\.-13743895
0d10: 33 34 37 33 5c 0a 2d 31 33 37 34 33 38 39 35 33  3473\.-137438953
0d20: 34 37 32 5c 0a 2d 31 33 37 34 33 38 39 35 33 34  472\.-1374389534
0d30: 37 31 5c 0a 2d 36 38 37 31 39 34 37 36 37 33 37  71\.-68719476737
0d40: 5c 0a 2d 36 38 37 31 39 34 37 36 37 33 36 5c 0a  \.-68719476736\.
0d50: 2d 36 38 37 31 39 34 37 36 37 33 35 5c 0a 2d 33  -68719476735\.-3
0d60: 34 33 35 39 37 33 38 33 36 39 5c 0a 2d 33 34 33  4359738369\.-343
0d70: 35 39 37 33 38 33 36 38 5c 0a 2d 33 34 33 35 39  59738368\.-34359
0d80: 37 33 38 33 36 37 5c 0a 2d 31 37 31 37 39 38 36  738367\.-1717986
0d90: 39 31 38 35 5c 0a 2d 31 37 31 37 39 38 36 39 31  9185\.-171798691
0da0: 38 34 5c 0a 2d 31 37 31 37 39 38 36 39 31 38 33  84\.-17179869183
0db0: 5c 0a 2d 38 35 38 39 39 33 34 35 39 33 5c 0a 2d  \.-8589934593\.-
0dc0: 38 35 38 39 39 33 34 35 39 32 5c 0a 2d 38 35 38  8589934592\.-858
0dd0: 39 39 33 34 35 39 31 5c 0a 2d 34 32 39 34 39 36  9934591\.-429496
0de0: 37 32 39 37 5c 0a 2d 34 32 39 34 39 36 37 32 39  7297\.-429496729
0df0: 36 5c 0a 2d 34 32 39 34 39 36 37 32 39 35 5c 0a  6\.-4294967295\.
0e00: 2d 32 31 34 37 34 38 33 36 34 39 5c 0a 2d 32 31  -2147483649\.-21
0e10: 34 37 34 38 33 36 34 38 5c 0a 2d 32 31 34 37 34  47483648\.-21474
0e20: 38 33 36 34 37 5c 0a 2d 31 30 37 33 37 34 31 38  83647\.-10737418
0e30: 32 35 5c 0a 2d 31 30 37 33 37 34 31 38 32 34 5c  25\.-1073741824\
0e40: 0a 2d 31 30 37 33 37 34 31 38 32 33 5c 0a 2d 35  .-1073741823\.-5
0e50: 33 36 38 37 30 39 31 33 5c 0a 2d 35 33 36 38 37  36870913\.-53687
0e60: 30 39 31 32 5c 0a 2d 35 33 36 38 37 30 39 31 31  0912\.-536870911
0e70: 5c 0a 2d 32 36 38 34 33 35 34 35 37 5c 0a 2d 32  \.-268435457\.-2
0e80: 36 38 34 33 35 34 35 36 5c 0a 2d 32 36 38 34 33  68435456\.-26843
0e90: 35 34 35 35 5c 0a 2d 31 33 34 32 31 37 37 32 39  5455\.-134217729
0ea0: 5c 0a 2d 31 33 34 32 31 37 37 32 38 5c 0a 2d 31  \.-134217728\.-1
0eb0: 33 34 32 31 37 37 32 37 5c 0a 2d 36 37 31 30 38  34217727\.-67108
0ec0: 38 36 35 5c 0a 2d 36 37 31 30 38 38 36 34 5c 0a  865\.-67108864\.
0ed0: 2d 36 37 31 30 38 38 36 33 5c 0a 2d 33 33 35 35  -67108863\.-3355
0ee0: 34 34 33 33 5c 0a 2d 33 33 35 35 34 34 33 32 5c  4433\.-33554432\
0ef0: 0a 2d 33 33 35 35 34 34 33 31 5c 0a 2d 31 36 37  .-33554431\.-167
0f00: 37 37 32 31 37 5c 0a 2d 31 36 37 37 37 32 31 36  77217\.-16777216
0f10: 5c 0a 2d 31 36 37 37 37 32 31 35 5c 0a 2d 38 33  \.-16777215\.-83
0f20: 38 38 36 30 39 5c 0a 2d 38 33 38 38 36 30 38 5c  88609\.-8388608\
0f30: 0a 2d 38 33 38 38 36 30 37 5c 0a 2d 34 31 39 34  .-8388607\.-4194
0f40: 33 30 35 5c 0a 2d 34 31 39 34 33 30 34 5c 0a 2d  305\.-4194304\.-
0f50: 34 31 39 34 33 30 33 5c 0a 2d 32 30 39 37 31 35  4194303\.-209715
0f60: 33 5c 0a 2d 32 30 39 37 31 35 32 5c 0a 2d 32 30  3\.-2097152\.-20
0f70: 39 37 31 35 31 5c 0a 2d 31 30 34 38 35 37 37 5c  97151\.-1048577\
0f80: 0a 2d 31 30 34 38 35 37 36 5c 0a 2d 31 30 34 38  .-1048576\.-1048
0f90: 35 37 35 5c 0a 2d 35 32 34 32 38 39 5c 0a 2d 35  575\.-524289\.-5
0fa0: 32 34 32 38 38 5c 0a 2d 35 32 34 32 38 37 5c 0a  24288\.-524287\.
0fb0: 2d 32 36 32 31 34 35 5c 0a 2d 32 36 32 31 34 34  -262145\.-262144
0fc0: 5c 0a 2d 32 36 32 31 34 33 5c 0a 2d 31 33 31 30  \.-262143\.-1310
0fd0: 37 33 5c 0a 2d 31 33 31 30 37 32 5c 0a 2d 31 33  73\.-131072\.-13
0fe0: 31 30 37 31 5c 0a 2d 36 35 35 33 37 5c 0a 2d 36  1071\.-65537\.-6
0ff0: 35 35 33 36 5c 0a 2d 36 35 35 33 35 5c 0a 2d 33  5536\.-65535\.-3
1000: 32 37 36 39 5c 0a 2d 33 32 37 36 38 5c 0a 2d 33  2769\.-32768\.-3
1010: 32 37 36 37 5c 0a 2d 31 36 33 38 35 5c 0a 2d 31  2767\.-16385\.-1
1020: 36 33 38 34 5c 0a 2d 31 36 33 38 33 5c 0a 2d 38  6384\.-16383\.-8
1030: 31 39 33 5c 0a 2d 38 31 39 32 5c 0a 2d 38 31 39  193\.-8192\.-819
1040: 31 5c 0a 2d 34 30 39 37 5c 0a 2d 34 30 39 36 5c  1\.-4097\.-4096\
1050: 0a 2d 34 30 39 35 5c 0a 2d 32 30 34 39 5c 0a 2d  .-4095\.-2049\.-
1060: 32 30 34 38 5c 0a 2d 32 30 34 37 5c 0a 2d 31 30  2048\.-2047\.-10
1070: 32 35 5c 0a 2d 31 30 32 34 5c 0a 2d 31 30 32 33  25\.-1024\.-1023
1080: 5c 0a 2d 35 31 33 5c 0a 2d 35 31 32 5c 0a 2d 35  \.-513\.-512\.-5
1090: 31 31 5c 0a 2d 32 35 37 5c 0a 2d 32 35 36 5c 0a  11\.-257\.-256\.
10a0: 2d 32 35 35 5c 0a 2d 31 32 39 5c 0a 2d 31 32 38  -255\.-129\.-128
10b0: 5c 0a 2d 31 32 37 5c 0a 2d 36 35 5c 0a 2d 36 34  \.-127\.-65\.-64
10c0: 5c 0a 2d 36 33 5c 0a 2d 33 33 5c 0a 2d 33 32 5c  \.-63\.-33\.-32\
10d0: 0a 2d 33 31 5c 0a 2d 31 37 5c 0a 2d 31 36 5c 0a  .-31\.-17\.-16\.
10e0: 2d 31 35 5c 0a 2d 39 5c 0a 2d 38 5c 0a 2d 37 5c  -15\.-9\.-8\.-7\
10f0: 0a 2d 35 5c 0a 2d 34 5c 0a 2d 33 5c 0a 2d 32 5c  .-5\.-4\.-3\.-2\
1100: 0a 2d 31 5c 0a 30 5c 0a 31 5c 0a 32 5c 0a 33 5c  .-1\.0\.1\.2\.3\
1110: 0a 34 5c 0a 35 5c 0a 37 5c 0a 38 5c 0a 39 5c 0a  .4\.5\.7\.8\.9\.
1120: 31 35 5c 0a 31 36 5c 0a 31 37 5c 0a 33 31 5c 0a  15\.16\.17\.31\.
1130: 33 32 5c 0a 33 33 5c 0a 36 33 5c 0a 36 34 5c 0a  32\.33\.63\.64\.
1140: 36 35 5c 0a 31 32 37 5c 0a 31 32 38 5c 0a 31 32  65\.127\.128\.12
1150: 39 5c 0a 32 35 35 5c 0a 32 35 36 5c 0a 32 35 37  9\.255\.256\.257
1160: 5c 0a 35 31 31 5c 0a 35 31 32 5c 0a 35 31 33 5c  \.511\.512\.513\
1170: 0a 31 30 32 33 5c 0a 31 30 32 34 5c 0a 31 30 32  .1023\.1024\.102
1180: 35 5c 0a 32 30 34 37 5c 0a 32 30 34 38 5c 0a 32  5\.2047\.2048\.2
1190: 30 34 39 5c 0a 34 30 39 35 5c 0a 34 30 39 36 5c  049\.4095\.4096\
11a0: 0a 34 30 39 37 5c 0a 38 31 39 31 5c 0a 38 31 39  .4097\.8191\.819
11b0: 32 5c 0a 38 31 39 33 5c 0a 31 36 33 38 33 5c 0a  2\.8193\.16383\.
11c0: 31 36 33 38 34 5c 0a 31 36 33 38 35 5c 0a 33 32  16384\.16385\.32
11d0: 37 36 37 5c 0a 33 32 37 36 38 5c 0a 33 32 37 36  767\.32768\.3276
11e0: 39 5c 0a 36 35 35 33 35 5c 0a 36 35 35 33 36 5c  9\.65535\.65536\
11f0: 0a 36 35 35 33 37 5c 0a 31 33 31 30 37 31 5c 0a  .65537\.131071\.
1200: 31 33 31 30 37 32 5c 0a 31 33 31 30 37 33 5c 0a  131072\.131073\.
1210: 32 36 32 31 34 33 5c 0a 32 36 32 31 34 34 5c 0a  262143\.262144\.
1220: 32 36 32 31 34 35 5c 0a 35 32 34 32 38 37 5c 0a  262145\.524287\.
1230: 35 32 34 32 38 38 5c 0a 35 32 34 32 38 39 5c 0a  524288\.524289\.
1240: 31 30 34 38 35 37 35 5c 0a 31 30 34 38 35 37 36  1048575\.1048576
1250: 5c 0a 31 30 34 38 35 37 37 5c 0a 32 30 39 37 31  \.1048577\.20971
1260: 35 31 5c 0a 32 30 39 37 31 35 32 5c 0a 32 30 39  51\.2097152\.209
1270: 37 31 35 33 5c 0a 34 31 39 34 33 30 33 5c 0a 34  7153\.4194303\.4
1280: 31 39 34 33 30 34 5c 0a 34 31 39 34 33 30 35 5c  194304\.4194305\
1290: 0a 38 33 38 38 36 30 37 5c 0a 38 33 38 38 36 30  .8388607\.838860
12a0: 38 5c 0a 38 33 38 38 36 30 39 5c 0a 31 36 37 37  8\.8388609\.1677
12b0: 37 32 31 35 5c 0a 31 36 37 37 37 32 31 36 5c 0a  7215\.16777216\.
12c0: 31 36 37 37 37 32 31 37 5c 0a 33 33 35 35 34 34  16777217\.335544
12d0: 33 31 5c 0a 33 33 35 35 34 34 33 32 5c 0a 33 33  31\.33554432\.33
12e0: 35 35 34 34 33 33 5c 0a 36 37 31 30 38 38 36 33  554433\.67108863
12f0: 5c 0a 36 37 31 30 38 38 36 34 5c 0a 36 37 31 30  \.67108864\.6710
1300: 38 38 36 35 5c 0a 31 33 34 32 31 37 37 32 37 5c  8865\.134217727\
1310: 0a 31 33 34 32 31 37 37 32 38 5c 0a 31 33 34 32  .134217728\.1342
1320: 31 37 37 32 39 5c 0a 32 36 38 34 33 35 34 35 35  17729\.268435455
1330: 5c 0a 32 36 38 34 33 35 34 35 36 5c 0a 32 36 38  \.268435456\.268
1340: 34 33 35 34 35 37 5c 0a 35 33 36 38 37 30 39 31  435457\.53687091
1350: 31 5c 0a 35 33 36 38 37 30 39 31 32 5c 0a 35 33  1\.536870912\.53
1360: 36 38 37 30 39 31 33 5c 0a 31 30 37 33 37 34 31  6870913\.1073741
1370: 38 32 33 5c 0a 31 30 37 33 37 34 31 38 32 34 5c  823\.1073741824\
1380: 0a 31 30 37 33 37 34 31 38 32 35 5c 0a 32 31 34  .1073741825\.214
1390: 37 34 38 33 36 34 37 5c 0a 32 31 34 37 34 38 33  7483647\.2147483
13a0: 36 34 38 5c 0a 32 31 34 37 34 38 33 36 34 39 5c  648\.2147483649\
13b0: 0a 34 32 39 34 39 36 37 32 39 35 5c 0a 34 32 39  .4294967295\.429
13c0: 34 39 36 37 32 39 36 5c 0a 34 32 39 34 39 36 37  4967296\.4294967
13d0: 32 39 37 5c 0a 38 35 38 39 39 33 34 35 39 31 5c  297\.8589934591\
13e0: 0a 38 35 38 39 39 33 34 35 39 32 5c 0a 38 35 38  .8589934592\.858
13f0: 39 39 33 34 35 39 33 5c 0a 31 37 31 37 39 38 36  9934593\.1717986
1400: 39 31 38 33 5c 0a 31 37 31 37 39 38 36 39 31 38  9183\.1717986918
1410: 34 5c 0a 31 37 31 37 39 38 36 39 31 38 35 5c 0a  4\.17179869185\.
1420: 33 34 33 35 39 37 33 38 33 36 37 5c 0a 33 34 33  34359738367\.343
1430: 35 39 37 33 38 33 36 38 5c 0a 33 34 33 35 39 37  59738368\.343597
1440: 33 38 33 36 39 5c 0a 36 38 37 31 39 34 37 36 37  38369\.687194767
1450: 33 35 5c 0a 36 38 37 31 39 34 37 36 37 33 36 5c  35\.68719476736\
1460: 0a 36 38 37 31 39 34 37 36 37 33 37 5c 0a 31 33  .68719476737\.13
1470: 37 34 33 38 39 35 33 34 37 31 5c 0a 31 33 37 34  7438953471\.1374
1480: 33 38 39 35 33 34 37 32 5c 0a 31 33 37 34 33 38  38953472\.137438
1490: 39 35 33 34 37 33 5c 0a 32 37 34 38 37 37 39 30  953473\.27487790
14a0: 36 39 34 33 5c 0a 32 37 34 38 37 37 39 30 36 39  6943\.2748779069
14b0: 34 34 5c 0a 32 37 34 38 37 37 39 30 36 39 34 35  44\.274877906945
14c0: 5c 0a 35 34 39 37 35 35 38 31 33 38 38 37 5c 0a  \.549755813887\.
14d0: 35 34 39 37 35 35 38 31 33 38 38 38 5c 0a 35 34  549755813888\.54
14e0: 39 37 35 35 38 31 33 38 38 39 5c 0a 31 30 39 39  9755813889\.1099
14f0: 35 31 31 36 32 37 37 37 35 5c 0a 31 30 39 39 35  511627775\.10995
1500: 31 31 36 32 37 37 37 36 5c 0a 31 30 39 39 35 31  11627776\.109951
1510: 31 36 32 37 37 37 37 5c 0a 32 31 39 39 30 32 33  1627777\.2199023
1520: 32 35 35 35 35 31 5c 0a 32 31 39 39 30 32 33 32  255551\.21990232
1530: 35 35 35 35 32 5c 0a 32 31 39 39 30 32 33 32 35  55552\.219902325
1540: 35 35 35 33 5c 0a 34 33 39 38 30 34 36 35 31 31  5553\.4398046511
1550: 31 30 33 5c 0a 34 33 39 38 30 34 36 35 31 31 31  103\.43980465111
1560: 30 34 5c 0a 34 33 39 38 30 34 36 35 31 31 31 30  04\.439804651110
1570: 35 5c 0a 38 37 39 36 30 39 33 30 32 32 32 30 37  5\.8796093022207
1580: 5c 0a 38 37 39 36 30 39 33 30 32 32 32 30 38 5c  \.8796093022208\
1590: 0a 38 37 39 36 30 39 33 30 32 32 32 30 39 5c 0a  .8796093022209\.
15a0: 31 37 35 39 32 31 38 36 30 34 34 34 31 35 5c 0a  17592186044415\.
15b0: 31 37 35 39 32 31 38 36 30 34 34 34 31 36 5c 0a  17592186044416\.
15c0: 31 37 35 39 32 31 38 36 30 34 34 34 31 37 5c 0a  17592186044417\.
15d0: 33 35 31 38 34 33 37 32 30 38 38 38 33 31 5c 0a  35184372088831\.
15e0: 33 35 31 38 34 33 37 32 30 38 38 38 33 32 5c 0a  35184372088832\.
15f0: 33 35 31 38 34 33 37 32 30 38 38 38 33 33 5c 0a  35184372088833\.
1600: 37 30 33 36 38 37 34 34 31 37 37 36 36 33 5c 0a  70368744177663\.
1610: 37 30 33 36 38 37 34 34 31 37 37 36 36 34 5c 0a  70368744177664\.
1620: 37 30 33 36 38 37 34 34 31 37 37 36 36 35 5c 0a  70368744177665\.
1630: 31 34 30 37 33 37 34 38 38 33 35 35 33 32 37 5c  140737488355327\
1640: 0a 31 34 30 37 33 37 34 38 38 33 35 35 33 32 38  .140737488355328
1650: 5c 0a 31 34 30 37 33 37 34 38 38 33 35 35 33 32  \.14073748835532
1660: 39 5c 0a 32 38 31 34 37 34 39 37 36 37 31 30 36  9\.2814749767106
1670: 35 35 5c 0a 32 38 31 34 37 34 39 37 36 37 31 30  55\.281474976710
1680: 36 35 36 5c 0a 32 38 31 34 37 34 39 37 36 37 31  656\.28147497671
1690: 30 36 35 37 5c 0a 35 36 32 39 34 39 39 35 33 34  0657\.5629499534
16a0: 32 31 33 31 31 5c 0a 35 36 32 39 34 39 39 35 33  21311\.562949953
16b0: 34 32 31 33 31 32 5c 0a 35 36 32 39 34 39 39 35  421312\.56294995
16c0: 33 34 32 31 33 31 33 5c 0a 31 31 32 35 38 39 39  3421313\.1125899
16d0: 39 30 36 38 34 32 36 32 33 5c 0a 31 31 32 35 38  906842623\.11258
16e0: 39 39 39 30 36 38 34 32 36 32 34 5c 0a 31 31 32  99906842624\.112
16f0: 35 38 39 39 39 30 36 38 34 32 36 32 35 5c 0a 32  5899906842625\.2
1700: 32 35 31 37 39 39 38 31 33 36 38 35 32 34 37 5c  251799813685247\
1710: 0a 32 32 35 31 37 39 39 38 31 33 36 38 35 32 34  .225179981368524
1720: 38 5c 0a 32 32 35 31 37 39 39 38 31 33 36 38 35  8\.2251799813685
1730: 32 34 39 5c 0a 34 35 30 33 35 39 39 36 32 37 33  249\.45035996273
1740: 37 30 34 39 35 5c 0a 34 35 30 33 35 39 39 36 32  70495\.450359962
1750: 37 33 37 30 34 39 36 5c 0a 34 35 30 33 35 39 39  7370496\.4503599
1760: 36 32 37 33 37 30 34 39 37 5c 0a 39 30 30 37 31  627370497\.90071
1770: 39 39 32 35 34 37 34 30 39 39 31 5c 0a 39 30 30  99254740991\.900
1780: 37 31 39 39 32 35 34 37 34 30 39 39 32 5c 0a 39  7199254740992\.9
1790: 30 30 37 31 39 39 32 35 34 37 34 30 39 39 33 5c  007199254740993\
17a0: 0a 31 38 30 31 34 33 39 38 35 30 39 34 38 31 39  .180143985094819
17b0: 38 33 5c 0a 31 38 30 31 34 33 39 38 35 30 39 34  83\.180143985094
17c0: 38 31 39 38 34 5c 0a 31 38 30 31 34 33 39 38 35  81984\.180143985
17d0: 30 39 34 38 31 39 38 35 5c 0a 33 36 30 32 38 37  09481985\.360287
17e0: 39 37 30 31 38 39 36 33 39 36 37 5c 0a 33 36 30  97018963967\.360
17f0: 32 38 37 39 37 30 31 38 39 36 33 39 36 38 5c 0a  28797018963968\.
1800: 33 36 30 32 38 37 39 37 30 31 38 39 36 33 39 36  3602879701896396
1810: 39 5c 0a 37 32 30 35 37 35 39 34 30 33 37 39 32  9\.7205759403792
1820: 37 39 33 35 5c 0a 37 32 30 35 37 35 39 34 30 33  7935\.7205759403
1830: 37 39 32 37 39 33 36 5c 0a 37 32 30 35 37 35 39  7927936\.7205759
1840: 34 30 33 37 39 32 37 39 33 37 5c 0a 31 34 34 31  4037927937\.1441
1850: 31 35 31 38 38 30 37 35 38 35 35 38 37 31 5c 0a  15188075855871\.
1860: 31 34 34 31 31 35 31 38 38 30 37 35 38 35 35 38  1441151880758558
1870: 37 32 5c 0a 31 34 34 31 31 35 31 38 38 30 37 35  72\.144115188075
1880: 38 35 35 38 37 33 5c 0a 32 38 38 32 33 30 33 37  855873\.28823037
1890: 36 31 35 31 37 31 31 37 34 33 5c 0a 32 38 38 32  6151711743\.2882
18a0: 33 30 33 37 36 31 35 31 37 31 31 37 34 34 5c 0a  30376151711744\.
18b0: 32 38 38 32 33 30 33 37 36 31 35 31 37 31 31 37  2882303761517117
18c0: 34 35 5c 0a 35 37 36 34 36 30 37 35 32 33 30 33  45\.576460752303
18d0: 34 32 33 34 38 37 5c 0a 35 37 36 34 36 30 37 35  423487\.57646075
18e0: 32 33 30 33 34 32 33 34 38 38 5c 0a 35 37 36 34  2303423488\.5764
18f0: 36 30 37 35 32 33 30 33 34 32 33 34 38 39 5c 0a  60752303423489\.
1900: 31 31 35 32 39 32 31 35 30 34 36 30 36 38 34 36  1152921504606846
1910: 39 37 35 5c 0a 31 31 35 32 39 32 31 35 30 34 36  975\.11529215046
1920: 30 36 38 34 36 39 37 36 5c 0a 31 31 35 32 39 32  06846976\.115292
1930: 31 35 30 34 36 30 36 38 34 36 39 37 37 5c 0a 32  1504606846977\.2
1940: 33 30 35 38 34 33 30 30 39 32 31 33 36 39 33 39  3058430092136939
1950: 35 31 5c 0a 32 33 30 35 38 34 33 30 30 39 32 31  51\.230584300921
1960: 33 36 39 33 39 35 32 5c 0a 32 33 30 35 38 34 33  3693952\.2305843
1970: 30 30 39 32 31 33 36 39 33 39 35 33 5c 0a 34 36  009213693953\.46
1980: 31 31 36 38 36 30 31 38 34 32 37 33 38 37 39 30  1168601842738790
1990: 33 5c 0a 34 36 31 31 36 38 36 30 31 38 34 32 37  3\.4611686018427
19a0: 33 38 37 39 30 34 5c 0a 34 36 31 31 36 38 36 30  387904\.46116860
19b0: 31 38 34 32 37 33 38 37 39 30 35 22 0a 0a 23 20  18427387905"..# 
19c0: 54 69 63 6b 65 74 20 23 31 32 31 30 2e 20 20 44  Ticket #1210.  D
19d0: 6f 20 70 72 6f 70 65 72 20 72 65 66 65 72 65 6e  o proper referen
19e0: 63 65 20 63 6f 75 6e 74 69 6e 67 20 6f 66 20 54  ce counting of T
19f0: 61 62 6c 65 20 73 74 72 75 63 74 75 72 65 73 0a  able structures.
1a00: 23 20 73 6f 20 74 68 61 74 20 64 65 65 70 6c 79  # so that deeply
1a10: 20 6e 65 73 74 65 64 20 53 45 4c 45 43 54 20 73   nested SELECT s
1a20: 74 61 74 65 6d 65 6e 74 73 20 63 61 6e 20 62 65  tatements can be
1a30: 20 66 6c 61 74 74 65 6e 65 64 20 63 6f 72 72 65   flattened corre
1a40: 63 74 6c 79 2e 0a 23 0a 69 66 63 61 70 61 62 6c  ctly..#.ifcapabl
1a50: 65 20 73 75 62 71 75 65 72 79 20 7b 0a 20 20 64  e subquery {.  d
1a60: 6f 5f 74 65 73 74 20 6d 69 73 63 35 2d 33 2e 31  o_test misc5-3.1
1a70: 20 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20 7b   {.    execsql {
1a80: 0a 20 20 20 20 20 20 43 52 45 41 54 45 20 54 41  .      CREATE TA
1a90: 42 4c 45 20 73 6f 6e 67 73 28 73 6f 6e 67 69 64  BLE songs(songid
1aa0: 2c 20 61 72 74 69 73 74 2c 20 74 69 6d 65 73 70  , artist, timesp
1ab0: 6c 61 79 65 64 29 3b 0a 20 20 20 20 20 20 49 4e  layed);.      IN
1ac0: 53 45 52 54 20 49 4e 54 4f 20 73 6f 6e 67 73 20  SERT INTO songs 
1ad0: 56 41 4c 55 45 53 28 31 2c 27 6f 6e 65 27 2c 31  VALUES(1,'one',1
1ae0: 29 3b 0a 20 20 20 20 20 20 49 4e 53 45 52 54 20  );.      INSERT 
1af0: 49 4e 54 4f 20 73 6f 6e 67 73 20 56 41 4c 55 45  INTO songs VALUE
1b00: 53 28 32 2c 27 6f 6e 65 27 2c 32 29 3b 0a 20 20  S(2,'one',2);.  
1b10: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
1b20: 73 6f 6e 67 73 20 56 41 4c 55 45 53 28 33 2c 27  songs VALUES(3,'
1b30: 74 77 6f 27 2c 33 29 3b 0a 20 20 20 20 20 20 49  two',3);.      I
1b40: 4e 53 45 52 54 20 49 4e 54 4f 20 73 6f 6e 67 73  NSERT INTO songs
1b50: 20 56 41 4c 55 45 53 28 34 2c 27 74 68 72 65 65   VALUES(4,'three
1b60: 27 2c 35 29 3b 0a 20 20 20 20 20 20 49 4e 53 45  ',5);.      INSE
1b70: 52 54 20 49 4e 54 4f 20 73 6f 6e 67 73 20 56 41  RT INTO songs VA
1b80: 4c 55 45 53 28 35 2c 27 6f 6e 65 27 2c 37 29 3b  LUES(5,'one',7);
1b90: 0a 20 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e  .      INSERT IN
1ba0: 54 4f 20 73 6f 6e 67 73 20 56 41 4c 55 45 53 28  TO songs VALUES(
1bb0: 36 2c 27 74 77 6f 27 2c 31 31 29 3b 0a 20 20 20  6,'two',11);.   
1bc0: 20 20 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e     SELECT DISTIN
1bd0: 43 54 20 61 72 74 69 73 74 20 0a 20 20 20 20 20  CT artist .     
1be0: 20 46 52 4f 4d 20 28 20 20 20 20 0a 20 20 20 20   FROM (    .    
1bf0: 20 20 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e     SELECT DISTIN
1c00: 43 54 20 61 72 74 69 73 74 20 20 20 20 0a 20 20  CT artist    .  
1c10: 20 20 20 20 20 46 52 4f 4d 20 73 6f 6e 67 73 20       FROM songs 
1c20: 20 20 20 20 20 0a 20 20 20 20 20 20 20 57 48 45       .       WHE
1c30: 52 45 20 73 6f 6e 67 69 64 20 49 4e 20 28 20 20  RE songid IN (  
1c40: 20 20 0a 20 20 20 20 20 20 20 20 53 45 4c 45 43    .        SELEC
1c50: 54 20 73 6f 6e 67 69 64 20 20 20 20 0a 20 20 20  T songid    .   
1c60: 20 20 20 20 20 46 52 4f 4d 20 73 6f 6e 67 73 20       FROM songs 
1c70: 20 20 20 0a 20 20 20 20 20 20 20 20 57 48 45 52     .        WHER
1c80: 45 20 4c 4f 57 45 52 28 61 72 74 69 73 74 29 20  E LOWER(artist) 
1c90: 3d 20 28 20 20 20 20 0a 20 20 20 20 20 20 20 20  = (    .        
1ca0: 20 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43    SELECT DISTINC
1cb0: 54 20 4c 4f 57 45 52 28 61 72 74 69 73 74 29 20  T LOWER(artist) 
1cc0: 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 46 52     .          FR
1cd0: 4f 4d 20 28 20 20 20 20 20 20 0a 20 20 20 20 20  OM (      .     
1ce0: 20 20 20 20 20 20 20 53 45 4c 45 43 54 20 44 49         SELECT DI
1cf0: 53 54 49 4e 43 54 20 61 72 74 69 73 74 2c 73 75  STINCT artist,su
1d00: 6d 28 74 69 6d 65 73 70 6c 61 79 65 64 29 20 41  m(timesplayed) A
1d10: 53 20 74 6f 74 61 6c 20 20 20 20 20 20 0a 20 20  S total      .  
1d20: 20 20 20 20 20 20 20 20 20 20 46 52 4f 4d 20 73            FROM s
1d30: 6f 6e 67 73 20 20 20 20 20 20 0a 20 20 20 20 20  ongs      .     
1d40: 20 20 20 20 20 20 20 47 52 4f 55 50 20 42 59 20         GROUP BY 
1d50: 4c 4f 57 45 52 28 61 72 74 69 73 74 29 20 20 20  LOWER(artist)   
1d60: 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20     .            
1d70: 4f 52 44 45 52 20 42 59 20 74 6f 74 61 6c 20 44  ORDER BY total D
1d80: 45 53 43 20 20 20 20 20 20 0a 20 20 20 20 20 20  ESC      .      
1d90: 20 20 20 20 20 20 4c 49 4d 49 54 20 31 30 20 20        LIMIT 10  
1da0: 20 20 0a 20 20 20 20 20 20 20 20 20 20 29 20 20    .          )  
1db0: 20 20 0a 20 20 20 20 20 20 20 20 20 20 57 48 45    .          WHE
1dc0: 52 45 20 61 72 74 69 73 74 20 3c 3e 20 27 27 20  RE artist <> '' 
1dd0: 0a 20 20 20 20 20 20 20 20 29 20 20 0a 20 20 20  .        )  .   
1de0: 20 20 20 20 29 20 20 20 20 20 20 20 0a 20 20 20      )       .   
1df0: 20 20 20 29 20 20 0a 20 20 20 20 20 20 4f 52 44     )  .      ORD
1e00: 45 52 20 42 59 20 4c 4f 57 45 52 28 61 72 74 69  ER BY LOWER(arti
1e10: 73 74 29 20 41 53 43 3b 0a 20 20 20 20 7d 0a 20  st) ASC;.    }. 
1e20: 20 7d 20 7b 74 77 6f 7d 0a 7d 0a 0a 23 20 54 69   } {two}.}..# Ti
1e30: 63 6b 65 74 20 23 31 33 37 30 2e 20 20 44 6f 20  cket #1370.  Do 
1e40: 6e 6f 74 20 6f 76 65 72 77 72 69 74 65 20 73 6d  not overwrite sm
1e50: 61 6c 6c 20 66 69 6c 65 73 20 28 6c 65 73 73 20  all files (less 
1e60: 74 68 61 6e 20 31 30 32 34 20 62 79 74 65 73 29  than 1024 bytes)
1e70: 0a 23 20 77 68 65 6e 20 74 72 79 69 6e 67 20 74  .# when trying t
1e80: 6f 20 6f 70 65 6e 20 74 68 65 6d 20 61 73 20 61  o open them as a
1e90: 20 64 61 74 61 62 61 73 65 2e 0a 23 0a 64 6f 5f   database..#.do_
1ea0: 74 65 73 74 20 6d 69 73 63 35 2d 34 2e 31 20 7b  test misc5-4.1 {
1eb0: 0a 20 20 64 62 20 63 6c 6f 73 65 0a 20 20 66 69  .  db close.  fi
1ec0: 6c 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65  le delete -force
1ed0: 20 74 65 73 74 2e 64 62 0a 20 20 73 65 74 20 66   test.db.  set f
1ee0: 64 20 5b 6f 70 65 6e 20 74 65 73 74 2e 64 62 20  d [open test.db 
1ef0: 77 5d 0a 20 20 70 75 74 73 20 24 66 64 20 22 54  w].  puts $fd "T
1f00: 68 69 73 20 69 73 20 6e 6f 74 20 72 65 61 6c 6c  his is not reall
1f10: 79 20 61 20 64 61 74 61 62 61 73 65 22 0a 20 20  y a database".  
1f20: 63 6c 6f 73 65 20 24 66 64 0a 20 20 73 71 6c 69  close $fd.  sqli
1f30: 74 65 33 20 64 62 20 74 65 73 74 2e 64 62 0a 20  te3 db test.db. 
1f40: 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20   catchsql {.    
1f50: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31 28  CREATE TABLE t1(
1f60: 61 2c 62 2c 63 29 3b 0a 20 20 7d 0a 7d 20 7b 31  a,b,c);.  }.} {1
1f70: 20 7b 66 69 6c 65 20 69 73 20 65 6e 63 72 79 70   {file is encryp
1f80: 74 65 64 20 6f 72 20 69 73 20 6e 6f 74 20 61 20  ted or is not a 
1f90: 64 61 74 61 62 61 73 65 7d 7d 0a 0a 23 20 54 69  database}}..# Ti
1fa0: 63 6b 65 74 20 23 31 33 37 31 2e 20 20 41 6c 6c  cket #1371.  All
1fb0: 6f 77 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  ow floating poin
1fc0: 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 74 68 65  t numbers of the
1fd0: 20 66 6f 72 6d 20 2e 4e 20 20 6f 72 20 4e 2e 0a   form .N  or N..
1fe0: 23 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63 35 2d  #.do_test misc5-
1ff0: 35 2e 31 20 7b 0a 20 20 65 78 65 63 73 71 6c 20  5.1 {.  execsql 
2000: 7b 53 45 4c 45 43 54 20 2e 31 20 7d 0a 7d 20 30  {SELECT .1 }.} 0
2010: 2e 31 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63 35  .1.do_test misc5
2020: 2d 35 2e 32 20 7b 0a 20 20 65 78 65 63 73 71 6c  -5.2 {.  execsql
2030: 20 7b 53 45 4c 45 43 54 20 32 2e 20 7d 0a 7d 20   {SELECT 2. }.} 
2040: 32 2e 30 0a 64 6f 5f 74 65 73 74 20 6d 69 73 63  2.0.do_test misc
2050: 35 2d 35 2e 33 20 7b 0a 20 20 65 78 65 63 73 71  5-5.3 {.  execsq
2060: 6c 20 7b 53 45 4c 45 43 54 20 33 2e 65 30 20 7d  l {SELECT 3.e0 }
2070: 0a 7d 20 33 2e 30 0a 64 6f 5f 74 65 73 74 20 6d  .} 3.0.do_test m
2080: 69 73 63 35 2d 35 2e 34 20 7b 0a 20 20 65 78 65  isc5-5.4 {.  exe
2090: 63 73 71 6c 20 7b 53 45 4c 45 43 54 20 2e 34 65  csql {SELECT .4e
20a0: 2b 31 7d 0a 7d 20 34 2e 30 0a 0a 23 20 54 69 63  +1}.} 4.0..# Tic
20b0: 6b 65 74 20 23 31 35 38 32 2e 20 20 45 6e 73 75  ket #1582.  Ensu
20c0: 72 65 20 74 68 61 74 20 61 6e 20 75 6e 6b 6e 6f  re that an unkno
20d0: 77 6e 20 74 61 62 6c 65 20 69 6e 20 61 20 4c 49  wn table in a LI
20e0: 4d 49 54 20 63 6c 61 75 73 65 20 61 70 70 6c 69  MIT clause appli
20f0: 65 64 20 74 6f 0a 23 20 61 20 55 4e 49 4f 4e 20  ed to.# a UNION 
2100: 41 4c 4c 20 71 75 65 72 79 20 63 61 75 73 65 73  ALL query causes
2110: 20 61 6e 20 65 72 72 6f 72 2c 20 6e 6f 74 20 61   an error, not a
2120: 20 63 72 61 73 68 2e 0a 23 0a 64 62 20 63 6c 6f   crash..#.db clo
2130: 73 65 0a 66 69 6c 65 20 64 65 6c 65 74 65 20 2d  se.file delete -
2140: 66 6f 72 63 65 20 74 65 73 74 2e 64 62 0a 73 71  force test.db.sq
2150: 6c 69 74 65 33 20 64 62 20 74 65 73 74 2e 64 62  lite3 db test.db
2160: 0a 69 66 63 61 70 61 62 6c 65 20 73 75 62 71 75  .ifcapable subqu
2170: 65 72 79 26 26 63 6f 6d 70 6f 75 6e 64 20 7b 0a  ery&&compound {.
2180: 20 20 64 6f 5f 74 65 73 74 20 6d 69 73 63 35 2d    do_test misc5-
2190: 36 2e 31 20 7b 0a 20 20 20 20 63 61 74 63 68 73  6.1 {.    catchs
21a0: 71 6c 20 7b 0a 20 20 20 20 20 20 53 45 4c 45 43  ql {.      SELEC
21b0: 54 20 2a 20 46 52 4f 4d 20 73 71 6c 69 74 65 5f  T * FROM sqlite_
21c0: 6d 61 73 74 65 72 20 0a 20 20 20 20 20 20 55 4e  master .      UN
21d0: 49 4f 4e 20 41 4c 4c 20 0a 20 20 20 20 20 20 53  ION ALL .      S
21e0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 73 71 6c  ELECT * FROM sql
21f0: 69 74 65 5f 6d 61 73 74 65 72 0a 20 20 20 20 20  ite_master.     
2200: 20 4c 49 4d 49 54 20 28 53 45 4c 45 43 54 20 63   LIMIT (SELECT c
2210: 6f 75 6e 74 28 2a 29 20 46 52 4f 4d 20 62 6c 61  ount(*) FROM bla
2220: 68 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 20 7b 31  h);.    }.  } {1
2230: 20 7b 6e 6f 20 73 75 63 68 20 74 61 62 6c 65 3a   {no such table:
2240: 20 62 6c 61 68 7d 7d 0a 20 20 64 6f 5f 74 65 73   blah}}.  do_tes
2250: 74 20 6d 69 73 63 35 2d 36 2e 32 20 7b 0a 20 20  t misc5-6.2 {.  
2260: 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20    execsql {.    
2270: 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 6c    CREATE TABLE l
2280: 6f 67 73 28 6d 73 67 20 54 45 58 54 2c 20 74 69  ogs(msg TEXT, ti
2290: 6d 65 73 74 61 6d 70 20 49 4e 54 45 47 45 52 2c  mestamp INTEGER,
22a0: 20 64 62 74 69 6d 65 20 54 45 58 54 29 3b 0a 20   dbtime TEXT);. 
22b0: 20 20 20 7d 0a 20 20 20 20 63 61 74 63 68 73 71     }.    catchsq
22c0: 6c 20 7b 0a 20 20 20 20 20 20 53 45 4c 45 43 54  l {.      SELECT
22d0: 20 2a 20 46 52 4f 4d 20 6c 6f 67 73 20 57 48 45   * FROM logs WHE
22e0: 52 45 20 6c 6f 67 73 2e 69 64 20 3e 3d 20 28 53  RE logs.id >= (S
22f0: 45 4c 45 43 54 20 68 65 61 64 20 46 52 4f 4d 20  ELECT head FROM 
2300: 6c 6f 67 73 5f 62 61 73 65 29 20 0a 20 20 20 20  logs_base) .    
2310: 20 20 55 4e 49 4f 4e 20 41 4c 4c 20 0a 20 20 20    UNION ALL .   
2320: 20 20 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d     SELECT * FROM
2330: 20 6c 6f 67 73 20 0a 20 20 20 20 20 20 4c 49 4d   logs .      LIM
2340: 49 54 20 28 53 45 4c 45 43 54 20 6c 6d 74 20 46  IT (SELECT lmt F
2350: 52 4f 4d 20 6c 6f 67 73 5f 62 61 73 65 29 20 3b  ROM logs_base) ;
2360: 0a 20 20 20 20 7d 0a 20 20 7d 20 7b 31 20 7b 6e  .    }.  } {1 {n
2370: 6f 20 73 75 63 68 20 63 6f 6c 75 6d 6e 3a 20 6c  o such column: l
2380: 6f 67 73 2e 69 64 7d 7d 0a 7d 0a 0a 66 69 6e 69  ogs.id}}.}..fini
2390: 73 68 5f 74 65 73 74 0a                          sh_test.