System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 32942261fdaf0657e41d1fdcc5b06f2f2b2e0a11:


0000: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0010: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0030: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0040: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
0050: 0a 23 0d 0a 23 20 74 6b 74 2d 62 31 36 37 32 30  .#..# tkt-b16720
0060: 36 61 64 33 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  6ad3.eagle --..#
0070: 0d 0a 23 20 57 72 69 74 74 65 6e 20 62 79 20 4a  ..# Written by J
0080: 6f 65 20 4d 69 73 74 61 63 68 6b 69 6e 2e 0d 0a  oe Mistachkin...
0090: 23 20 52 65 6c 65 61 73 65 64 20 74 6f 20 74 68  # Released to th
00a0: 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c  e public domain,
00b0: 20 75 73 65 20 61 74 20 79 6f 75 72 20 6f 77 6e   use at your own
00c0: 20 72 69 73 6b 21 0d 0a 23 0d 0a 23 23 23 23 23   risk!..#..#####
00d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0100: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0110: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 70 61  ##########....pa
0120: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 45 61  ckage require Ea
0130: 67 6c 65 0d 0a 70 61 63 6b 61 67 65 20 72 65 71  gle..package req
0140: 75 69 72 65 20 45 61 67 6c 65 2e 4c 69 62 72 61  uire Eagle.Libra
0150: 72 79 0d 0a 70 61 63 6b 61 67 65 20 72 65 71 75  ry..package requ
0160: 69 72 65 20 45 61 67 6c 65 2e 54 65 73 74 0d 0a  ire Eagle.Test..
0170: 0d 0a 72 75 6e 54 65 73 74 50 72 6f 6c 6f 67 75  ..runTestPrologu
0180: 65 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23  e....###########
0190: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01d0: 23 23 23 23 0d 0a 0d 0a 70 61 63 6b 61 67 65 20  ####....package 
01e0: 72 65 71 75 69 72 65 20 53 79 73 74 65 6d 2e 44  require System.D
01f0: 61 74 61 2e 53 51 4c 69 74 65 2e 54 65 73 74 0d  ata.SQLite.Test.
0200: 0a 72 75 6e 53 51 4c 69 74 65 54 65 73 74 50 72  .runSQLiteTestPr
0210: 6f 6c 6f 67 75 65 0d 0a 0d 0a 23 23 23 23 23 23  ologue....######
0220: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0230: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0240: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0250: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0260: 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e  #########....run
0270: 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 62  Test {test tkt-b
0280: 31 36 37 32 30 36 61 64 33 2d 31 2e 31 20 7b 74  167206ad3-1.1 {t
0290: 79 70 65 20 61 66 66 69 6e 69 74 79 20 66 6f 72  ype affinity for
02a0: 20 44 45 43 49 4d 41 4c 7d 20 2d 73 65 74 75 70   DECIMAL} -setup
02b0: 20 7b 0d 0a 20 20 73 65 74 75 70 44 62 20 5b 73   {..  setupDb [s
02c0: 65 74 20 66 69 6c 65 4e 61 6d 65 20 74 6b 74 2d  et fileName tkt-
02d0: 62 31 36 37 32 30 36 61 64 33 2d 31 2e 31 2e 64  b167206ad3-1.1.d
02e0: 62 5d 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20  b]..} -body {.. 
02f0: 20 73 71 6c 20 65 78 65 63 75 74 65 20 24 64 62   sql execute $db
0300: 20 7b 0d 0a 20 20 20 20 43 52 45 41 54 45 20 54   {..    CREATE T
0310: 41 42 4c 45 20 74 31 28 78 20 49 4e 54 45 47 45  ABLE t1(x INTEGE
0320: 52 2c 20 79 20 44 45 43 49 4d 41 4c 28 33 38 2c  R, y DECIMAL(38,
0330: 39 29 29 3b 0d 0a 20 20 20 20 49 4e 53 45 52 54  9));..    INSERT
0340: 20 49 4e 54 4f 20 74 31 20 28 78 2c 20 79 29 20   INTO t1 (x, y) 
0350: 56 41 4c 55 45 53 28 31 2c 20 31 32 33 34 35 36  VALUES(1, 123456
0360: 37 38 39 31 32 33 34 35 36 37 38 30 29 3b 0d 0a  789123456780);..
0370: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
0380: 74 31 20 28 78 2c 20 79 29 20 56 41 4c 55 45 53  t1 (x, y) VALUES
0390: 28 32 2c 20 27 31 32 33 34 35 36 37 38 39 31 32  (2, '12345678912
03a0: 33 34 35 36 37 38 30 27 29 3b 0d 0a 20 20 7d 0d  3456780');..  }.
03b0: 0a 0d 0a 20 20 73 65 74 20 64 61 74 61 52 65 61  ...  set dataRea
03c0: 64 65 72 20 5b 73 71 6c 20 65 78 65 63 75 74 65  der [sql execute
03d0: 20 5c 0d 0a 20 20 20 20 20 20 2d 65 78 65 63 75   \..      -execu
03e0: 74 65 20 72 65 61 64 65 72 20 2d 66 6f 72 6d 61  te reader -forma
03f0: 74 20 64 61 74 61 72 65 61 64 65 72 20 5c 0d 0a  t datareader \..
0400: 20 20 20 20 20 20 2d 61 6c 69 61 73 20 24 64 62        -alias $db
0410: 20 22 53 45 4c 45 43 54 20 78 2c 20 79 20 46 52   "SELECT x, y FR
0420: 4f 4d 20 74 31 20 4f 52 44 45 52 20 42 59 20 78  OM t1 ORDER BY x
0430: 3b 22 5d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73  ;"]....  set res
0440: 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d 0a 20 20  ult [list]....  
0450: 77 68 69 6c 65 20 7b 5b 24 64 61 74 61 52 65 61  while {[$dataRea
0460: 64 65 72 20 52 65 61 64 5d 7d 20 7b 0d 0a 20 20  der Read]} {..  
0470: 20 20 73 65 74 20 78 20 5b 24 64 61 74 61 52 65    set x [$dataRe
0480: 61 64 65 72 20 2d 63 72 65 61 74 65 20 2d 61 6c  ader -create -al
0490: 69 61 73 20 47 65 74 56 61 6c 75 65 20 30 5d 0d  ias GetValue 0].
04a0: 0a 20 20 20 20 73 65 74 20 79 31 20 5b 24 64 61  .    set y1 [$da
04b0: 74 61 52 65 61 64 65 72 20 2d 63 72 65 61 74 65  taReader -create
04c0: 20 2d 61 6c 69 61 73 20 47 65 74 44 65 63 69 6d   -alias GetDecim
04d0: 61 6c 20 31 5d 0d 0a 20 20 20 20 73 65 74 20 79  al 1]..    set y
04e0: 32 20 5b 24 64 61 74 61 52 65 61 64 65 72 20 2d  2 [$dataReader -
04f0: 63 72 65 61 74 65 20 2d 61 6c 69 61 73 20 47 65  create -alias Ge
0500: 74 56 61 6c 75 65 20 31 5d 0d 0a 0d 0a 20 20 20  tValue 1]....   
0510: 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20   lappend result 
0520: 5b 6c 69 73 74 20 5b 24 78 20 54 6f 53 74 72 69  [list [$x ToStri
0530: 6e 67 5d 20 5b 24 79 31 20 54 6f 53 74 72 69 6e  ng] [$y1 ToStrin
0540: 67 5d 20 5b 24 79 32 20 54 6f 53 74 72 69 6e 67  g] [$y2 ToString
0550: 5d 5d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 73 65 74  ]]..  }....  set
0560: 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63 6c 65 61   result..} -clea
0570: 6e 75 70 20 7b 0d 0a 20 20 75 6e 73 65 74 20 2d  nup {..  unset -
0580: 6e 6f 63 6f 6d 70 6c 61 69 6e 20 64 61 74 61 52  nocomplain dataR
0590: 65 61 64 65 72 0d 0a 0d 0a 20 20 63 6c 65 61 6e  eader....  clean
05a0: 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65 0d 0a  upDb $fileName..
05b0: 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  ..  unset -nocom
05c0: 70 6c 61 69 6e 20 79 32 20 79 31 20 78 20 72 65  plain y2 y1 x re
05d0: 73 75 6c 74 20 64 62 20 66 69 6c 65 4e 61 6d 65  sult db fileName
05e0: 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73  ..} -constraints
05f0: 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e   {eagle command.
0600: 6f 62 6a 65 63 74 20 6d 6f 6e 6f 42 75 67 32 38  object monoBug28
0610: 20 63 6f 6d 6d 61 6e 64 2e 73 71 6c 20 63 6f 6d   command.sql com
0620: 70 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74 65  pile.DATA SQLite
0630: 5c 0d 0a 53 79 73 74 65 6d 2e 44 61 74 61 2e 53  \..System.Data.S
0640: 51 4c 69 74 65 7d 20 2d 72 65 73 75 6c 74 20 7b  QLite} -result {
0650: 7b 31 20 31 32 33 34 35 36 37 38 39 31 32 33 34  {1 1234567891234
0660: 35 36 37 38 30 20 31 32 33 34 35 36 37 38 39 31  56780 1234567891
0670: 32 33 34 35 37 30 30 30 7d 20 7b 32 5c 0d 0a 31  23457000} {2\..1
0680: 32 33 34 35 36 37 38 39 31 32 33 34 35 36 37 38  2345678912345678
0690: 30 20 31 32 33 34 35 36 37 38 39 31 32 33 34 35  0 12345678912345
06a0: 37 30 30 30 7d 7d 7d 0d 0a 0d 0a 23 23 23 23 23  7000}}}....#####
06b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06f0: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75  ##########....ru
0700: 6e 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d  nTest {test tkt-
0710: 62 31 36 37 32 30 36 61 64 33 2d 31 2e 32 20 7b  b167206ad3-1.2 {
0720: 74 79 70 65 20 61 66 66 69 6e 69 74 79 20 66 6f  type affinity fo
0730: 72 20 44 45 43 49 4d 41 4c 7d 20 2d 73 65 74 75  r DECIMAL} -setu
0740: 70 20 7b 0d 0a 20 20 73 65 74 75 70 44 62 20 5b  p {..  setupDb [
0750: 73 65 74 20 66 69 6c 65 4e 61 6d 65 20 74 6b 74  set fileName tkt
0760: 2d 62 31 36 37 32 30 36 61 64 33 2d 31 2e 32 2e  -b167206ad3-1.2.
0770: 64 62 5d 20 22 22 20 22 22 20 22 22 20 47 65 74  db] "" "" "" Get
0780: 44 65 63 69 6d 61 6c 41 73 54 65 78 74 0d 0a 7d  DecimalAsText..}
0790: 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c 20   -body {..  sql 
07a0: 65 78 65 63 75 74 65 20 24 64 62 20 7b 0d 0a 20  execute $db {.. 
07b0: 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20     CREATE TABLE 
07c0: 74 31 28 78 20 49 4e 54 45 47 45 52 2c 20 79 20  t1(x INTEGER, y 
07d0: 44 45 43 49 4d 41 4c 28 33 38 2c 39 29 29 3b 0d  DECIMAL(38,9));.
07e0: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
07f0: 20 74 31 20 28 78 2c 20 79 29 20 56 41 4c 55 45   t1 (x, y) VALUE
0800: 53 28 31 2c 20 31 32 33 34 35 36 37 38 39 31 32  S(1, 12345678912
0810: 33 34 35 36 37 38 30 29 3b 0d 0a 20 20 20 20 49  3456780);..    I
0820: 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28 78  NSERT INTO t1 (x
0830: 2c 20 79 29 20 56 41 4c 55 45 53 28 32 2c 20 27  , y) VALUES(2, '
0840: 31 32 33 34 35 36 37 38 39 31 32 33 34 35 36 37  1234567891234567
0850: 38 30 27 29 3b 0d 0a 20 20 7d 0d 0a 0d 0a 20 20  80');..  }....  
0860: 73 65 74 20 64 61 74 61 52 65 61 64 65 72 20 5b  set dataReader [
0870: 73 71 6c 20 65 78 65 63 75 74 65 20 5c 0d 0a 20  sql execute \.. 
0880: 20 20 20 20 20 2d 65 78 65 63 75 74 65 20 72 65       -execute re
0890: 61 64 65 72 20 2d 66 6f 72 6d 61 74 20 64 61 74  ader -format dat
08a0: 61 72 65 61 64 65 72 20 5c 0d 0a 20 20 20 20 20  areader \..     
08b0: 20 2d 61 6c 69 61 73 20 24 64 62 20 22 53 45 4c   -alias $db "SEL
08c0: 45 43 54 20 78 2c 20 79 20 46 52 4f 4d 20 74 31  ECT x, y FROM t1
08d0: 20 4f 52 44 45 52 20 42 59 20 78 3b 22 5d 0d 0a   ORDER BY x;"]..
08e0: 0d 0a 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b  ..  set result [
08f0: 6c 69 73 74 5d 0d 0a 0d 0a 20 20 77 68 69 6c 65  list]....  while
0900: 20 7b 5b 24 64 61 74 61 52 65 61 64 65 72 20 52   {[$dataReader R
0910: 65 61 64 5d 7d 20 7b 0d 0a 20 20 20 20 73 65 74  ead]} {..    set
0920: 20 78 20 5b 24 64 61 74 61 52 65 61 64 65 72 20   x [$dataReader 
0930: 2d 63 72 65 61 74 65 20 2d 61 6c 69 61 73 20 47  -create -alias G
0940: 65 74 56 61 6c 75 65 20 30 5d 0d 0a 20 20 20 20  etValue 0]..    
0950: 73 65 74 20 79 31 20 5b 24 64 61 74 61 52 65 61  set y1 [$dataRea
0960: 64 65 72 20 2d 63 72 65 61 74 65 20 2d 61 6c 69  der -create -ali
0970: 61 73 20 47 65 74 44 65 63 69 6d 61 6c 20 31 5d  as GetDecimal 1]
0980: 0d 0a 20 20 20 20 73 65 74 20 79 32 20 5b 24 64  ..    set y2 [$d
0990: 61 74 61 52 65 61 64 65 72 20 2d 63 72 65 61 74  ataReader -creat
09a0: 65 20 2d 61 6c 69 61 73 20 47 65 74 56 61 6c 75  e -alias GetValu
09b0: 65 20 31 5d 0d 0a 0d 0a 20 20 20 20 6c 61 70 70  e 1]....    lapp
09c0: 65 6e 64 20 72 65 73 75 6c 74 20 5b 6c 69 73 74  end result [list
09d0: 20 5b 24 78 20 54 6f 53 74 72 69 6e 67 5d 20 5b   [$x ToString] [
09e0: 24 79 31 20 54 6f 53 74 72 69 6e 67 5d 20 5b 24  $y1 ToString] [$
09f0: 79 32 20 54 6f 53 74 72 69 6e 67 5d 5d 0d 0a 20  y2 ToString]].. 
0a00: 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73 75   }....  set resu
0a10: 6c 74 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b  lt..} -cleanup {
0a20: 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  ..  unset -nocom
0a30: 70 6c 61 69 6e 20 64 61 74 61 52 65 61 64 65 72  plain dataReader
0a40: 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20  ....  cleanupDb 
0a50: 24 66 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75  $fileName....  u
0a60: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
0a70: 20 79 32 20 79 31 20 78 20 72 65 73 75 6c 74 20   y2 y1 x result 
0a80: 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a 7d 20 2d  db fileName..} -
0a90: 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b 65 61 67  constraints {eag
0aa0: 6c 65 20 63 6f 6d 6d 61 6e 64 2e 6f 62 6a 65 63  le command.objec
0ab0: 74 20 6d 6f 6e 6f 42 75 67 32 38 20 63 6f 6d 6d  t monoBug28 comm
0ac0: 61 6e 64 2e 73 71 6c 20 63 6f 6d 70 69 6c 65 2e  and.sql compile.
0ad0: 44 41 54 41 20 53 51 4c 69 74 65 5c 0d 0a 53 79  DATA SQLite\..Sy
0ae0: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
0af0: 7d 20 2d 72 65 73 75 6c 74 20 7b 7b 31 20 31 32  } -result {{1 12
0b00: 33 34 35 36 37 38 39 31 32 33 34 35 36 37 38 30  3456789123456780
0b10: 20 31 32 33 34 35 36 37 38 39 31 32 33 34 35 36   123456789123456
0b20: 37 38 30 7d 20 7b 32 5c 0d 0a 31 32 33 34 35 36  780} {2\..123456
0b30: 37 38 39 31 32 33 34 35 36 37 38 30 20 31 32 33  789123456780 123
0b40: 34 35 36 37 38 39 31 32 33 34 35 36 37 38 30 7d  456789123456780}
0b50: 7d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  }}....##########
0b60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ba0: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74  #####....runTest
0bb0: 20 7b 74 65 73 74 20 74 6b 74 2d 62 31 36 37 32   {test tkt-b1672
0bc0: 30 36 61 64 33 2d 31 2e 33 20 7b 74 79 70 65 20  06ad3-1.3 {type 
0bd0: 61 66 66 69 6e 69 74 79 20 66 6f 72 20 4e 55 4d  affinity for NUM
0be0: 45 52 49 43 7d 20 2d 73 65 74 75 70 20 7b 0d 0a  ERIC} -setup {..
0bf0: 20 20 73 65 74 75 70 44 62 20 5b 73 65 74 20 66    setupDb [set f
0c00: 69 6c 65 4e 61 6d 65 20 74 6b 74 2d 62 31 36 37  ileName tkt-b167
0c10: 32 30 36 61 64 33 2d 31 2e 33 2e 64 62 5d 0d 0a  206ad3-1.3.db]..
0c20: 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c  } -body {..  sql
0c30: 20 65 78 65 63 75 74 65 20 24 64 62 20 7b 0d 0a   execute $db {..
0c40: 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45      CREATE TABLE
0c50: 20 74 31 28 78 20 49 4e 54 45 47 45 52 2c 20 79   t1(x INTEGER, y
0c60: 20 4e 55 4d 45 52 49 43 29 3b 0d 0a 20 20 20 20   NUMERIC);..    
0c70: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28  INSERT INTO t1 (
0c80: 78 2c 20 79 29 20 56 41 4c 55 45 53 28 31 2c 20  x, y) VALUES(1, 
0c90: 31 32 33 34 35 36 37 38 39 31 32 33 34 35 36 37  1234567891234567
0ca0: 38 30 29 3b 0d 0a 20 20 20 20 49 4e 53 45 52 54  80);..    INSERT
0cb0: 20 49 4e 54 4f 20 74 31 20 28 78 2c 20 79 29 20   INTO t1 (x, y) 
0cc0: 56 41 4c 55 45 53 28 32 2c 20 27 31 32 33 34 35  VALUES(2, '12345
0cd0: 36 37 38 39 31 32 33 34 35 36 37 38 30 27 29 3b  6789123456780');
0ce0: 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 64  ..  }....  set d
0cf0: 61 74 61 52 65 61 64 65 72 20 5b 73 71 6c 20 65  ataReader [sql e
0d00: 78 65 63 75 74 65 20 5c 0d 0a 20 20 20 20 20 20  xecute \..      
0d10: 2d 65 78 65 63 75 74 65 20 72 65 61 64 65 72 20  -execute reader 
0d20: 2d 66 6f 72 6d 61 74 20 64 61 74 61 72 65 61 64  -format dataread
0d30: 65 72 20 5c 0d 0a 20 20 20 20 20 20 2d 61 6c 69  er \..      -ali
0d40: 61 73 20 24 64 62 20 22 53 45 4c 45 43 54 20 78  as $db "SELECT x
0d50: 2c 20 79 20 46 52 4f 4d 20 74 31 20 4f 52 44 45  , y FROM t1 ORDE
0d60: 52 20 42 59 20 78 3b 22 5d 0d 0a 0d 0a 20 20 73  R BY x;"]....  s
0d70: 65 74 20 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d  et result [list]
0d80: 0d 0a 0d 0a 20 20 77 68 69 6c 65 20 7b 5b 24 64  ....  while {[$d
0d90: 61 74 61 52 65 61 64 65 72 20 52 65 61 64 5d 7d  ataReader Read]}
0da0: 20 7b 0d 0a 20 20 20 20 73 65 74 20 78 20 5b 24   {..    set x [$
0db0: 64 61 74 61 52 65 61 64 65 72 20 2d 63 72 65 61  dataReader -crea
0dc0: 74 65 20 2d 61 6c 69 61 73 20 47 65 74 56 61 6c  te -alias GetVal
0dd0: 75 65 20 30 5d 0d 0a 20 20 20 20 73 65 74 20 79  ue 0]..    set y
0de0: 31 20 5b 24 64 61 74 61 52 65 61 64 65 72 20 2d  1 [$dataReader -
0df0: 63 72 65 61 74 65 20 2d 61 6c 69 61 73 20 47 65  create -alias Ge
0e00: 74 44 65 63 69 6d 61 6c 20 31 5d 0d 0a 20 20 20  tDecimal 1]..   
0e10: 20 73 65 74 20 79 32 20 5b 24 64 61 74 61 52 65   set y2 [$dataRe
0e20: 61 64 65 72 20 2d 63 72 65 61 74 65 20 2d 61 6c  ader -create -al
0e30: 69 61 73 20 47 65 74 56 61 6c 75 65 20 31 5d 0d  ias GetValue 1].
0e40: 0a 0d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 72  ...    lappend r
0e50: 65 73 75 6c 74 20 5b 6c 69 73 74 20 5b 24 78 20  esult [list [$x 
0e60: 54 6f 53 74 72 69 6e 67 5d 20 5b 24 79 31 20 54  ToString] [$y1 T
0e70: 6f 53 74 72 69 6e 67 5d 20 5b 24 79 32 20 54 6f  oString] [$y2 To
0e80: 53 74 72 69 6e 67 5d 5d 0d 0a 20 20 7d 0d 0a 0d  String]]..  }...
0e90: 0a 20 20 73 65 74 20 72 65 73 75 6c 74 0d 0a 7d  .  set result..}
0ea0: 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 75   -cleanup {..  u
0eb0: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
0ec0: 20 64 61 74 61 52 65 61 64 65 72 0d 0a 0d 0a 20   dataReader.... 
0ed0: 20 63 6c 65 61 6e 75 70 44 62 20 24 66 69 6c 65   cleanupDb $file
0ee0: 4e 61 6d 65 0d 0a 0d 0a 20 20 75 6e 73 65 74 20  Name....  unset 
0ef0: 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 79 32 20 79  -nocomplain y2 y
0f00: 31 20 78 20 72 65 73 75 6c 74 20 64 62 20 66 69  1 x result db fi
0f10: 6c 65 4e 61 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74  leName..} -const
0f20: 72 61 69 6e 74 73 20 7b 65 61 67 6c 65 20 63 6f  raints {eagle co
0f30: 6d 6d 61 6e 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e  mmand.object mon
0f40: 6f 42 75 67 32 38 20 63 6f 6d 6d 61 6e 64 2e 73  oBug28 command.s
0f50: 71 6c 20 63 6f 6d 70 69 6c 65 2e 44 41 54 41 20  ql compile.DATA 
0f60: 53 51 4c 69 74 65 5c 0d 0a 53 79 73 74 65 6d 2e  SQLite\..System.
0f70: 44 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d 72 65  Data.SQLite} -re
0f80: 73 75 6c 74 20 7b 7b 31 20 31 32 33 34 35 36 37  sult {{1 1234567
0f90: 38 39 31 32 33 34 35 36 37 38 30 20 31 32 33 34  89123456780 1234
0fa0: 35 36 37 38 39 31 32 33 34 35 37 30 30 30 7d 20  56789123457000} 
0fb0: 7b 32 5c 0d 0a 31 32 33 34 35 36 37 38 39 31 32  {2\..12345678912
0fc0: 33 34 35 36 37 38 30 20 31 32 33 34 35 36 37 38  3456780 12345678
0fd0: 39 31 32 33 34 35 37 30 30 30 7d 7d 7d 0d 0a 0d  9123457000}}}...
0fe0: 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  .###############
0ff0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1000: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1010: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1030: 0d 0a 0d 0a 72 75 6e 54 65 73 74 20 7b 74 65 73  ....runTest {tes
1040: 74 20 74 6b 74 2d 62 31 36 37 32 30 36 61 64 33  t tkt-b167206ad3
1050: 2d 31 2e 34 20 7b 74 79 70 65 20 61 66 66 69 6e  -1.4 {type affin
1060: 69 74 79 20 66 6f 72 20 4e 55 4d 45 52 49 43 7d  ity for NUMERIC}
1070: 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20 73 65 74   -setup {..  set
1080: 75 70 44 62 20 5b 73 65 74 20 66 69 6c 65 4e 61  upDb [set fileNa
1090: 6d 65 20 74 6b 74 2d 62 31 36 37 32 30 36 61 64  me tkt-b167206ad
10a0: 33 2d 31 2e 34 2e 64 62 5d 20 22 22 20 22 22 20  3-1.4.db] "" "" 
10b0: 22 22 20 47 65 74 44 65 63 69 6d 61 6c 41 73 54  "" GetDecimalAsT
10c0: 65 78 74 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d 0a  ext..} -body {..
10d0: 20 20 73 71 6c 20 65 78 65 63 75 74 65 20 24 64    sql execute $d
10e0: 62 20 7b 0d 0a 20 20 20 20 43 52 45 41 54 45 20  b {..    CREATE 
10f0: 54 41 42 4c 45 20 74 31 28 78 20 49 4e 54 45 47  TABLE t1(x INTEG
1100: 45 52 2c 20 79 20 4e 55 4d 45 52 49 43 29 3b 0d  ER, y NUMERIC);.
1110: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
1120: 20 74 31 20 28 78 2c 20 79 29 20 56 41 4c 55 45   t1 (x, y) VALUE
1130: 53 28 31 2c 20 31 32 33 34 35 36 37 38 39 31 32  S(1, 12345678912
1140: 33 34 35 36 37 38 30 29 3b 0d 0a 20 20 20 20 49  3456780);..    I
1150: 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28 78  NSERT INTO t1 (x
1160: 2c 20 79 29 20 56 41 4c 55 45 53 28 32 2c 20 27  , y) VALUES(2, '
1170: 31 32 33 34 35 36 37 38 39 31 32 33 34 35 36 37  1234567891234567
1180: 38 30 27 29 3b 0d 0a 20 20 7d 0d 0a 0d 0a 20 20  80');..  }....  
1190: 73 65 74 20 64 61 74 61 52 65 61 64 65 72 20 5b  set dataReader [
11a0: 73 71 6c 20 65 78 65 63 75 74 65 20 5c 0d 0a 20  sql execute \.. 
11b0: 20 20 20 20 20 2d 65 78 65 63 75 74 65 20 72 65       -execute re
11c0: 61 64 65 72 20 2d 66 6f 72 6d 61 74 20 64 61 74  ader -format dat
11d0: 61 72 65 61 64 65 72 20 5c 0d 0a 20 20 20 20 20  areader \..     
11e0: 20 2d 61 6c 69 61 73 20 24 64 62 20 22 53 45 4c   -alias $db "SEL
11f0: 45 43 54 20 78 2c 20 79 20 46 52 4f 4d 20 74 31  ECT x, y FROM t1
1200: 20 4f 52 44 45 52 20 42 59 20 78 3b 22 5d 0d 0a   ORDER BY x;"]..
1210: 0d 0a 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b  ..  set result [
1220: 6c 69 73 74 5d 0d 0a 0d 0a 20 20 77 68 69 6c 65  list]....  while
1230: 20 7b 5b 24 64 61 74 61 52 65 61 64 65 72 20 52   {[$dataReader R
1240: 65 61 64 5d 7d 20 7b 0d 0a 20 20 20 20 73 65 74  ead]} {..    set
1250: 20 78 20 5b 24 64 61 74 61 52 65 61 64 65 72 20   x [$dataReader 
1260: 2d 63 72 65 61 74 65 20 2d 61 6c 69 61 73 20 47  -create -alias G
1270: 65 74 56 61 6c 75 65 20 30 5d 0d 0a 20 20 20 20  etValue 0]..    
1280: 73 65 74 20 79 31 20 5b 24 64 61 74 61 52 65 61  set y1 [$dataRea
1290: 64 65 72 20 2d 63 72 65 61 74 65 20 2d 61 6c 69  der -create -ali
12a0: 61 73 20 47 65 74 44 65 63 69 6d 61 6c 20 31 5d  as GetDecimal 1]
12b0: 0d 0a 20 20 20 20 73 65 74 20 79 32 20 5b 24 64  ..    set y2 [$d
12c0: 61 74 61 52 65 61 64 65 72 20 2d 63 72 65 61 74  ataReader -creat
12d0: 65 20 2d 61 6c 69 61 73 20 47 65 74 56 61 6c 75  e -alias GetValu
12e0: 65 20 31 5d 0d 0a 0d 0a 20 20 20 20 6c 61 70 70  e 1]....    lapp
12f0: 65 6e 64 20 72 65 73 75 6c 74 20 5b 6c 69 73 74  end result [list
1300: 20 5b 24 78 20 54 6f 53 74 72 69 6e 67 5d 20 5b   [$x ToString] [
1310: 24 79 31 20 54 6f 53 74 72 69 6e 67 5d 20 5b 24  $y1 ToString] [$
1320: 79 32 20 54 6f 53 74 72 69 6e 67 5d 5d 0d 0a 20  y2 ToString]].. 
1330: 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73 75   }....  set resu
1340: 6c 74 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b  lt..} -cleanup {
1350: 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  ..  unset -nocom
1360: 70 6c 61 69 6e 20 64 61 74 61 52 65 61 64 65 72  plain dataReader
1370: 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20  ....  cleanupDb 
1380: 24 66 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75  $fileName....  u
1390: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
13a0: 20 79 32 20 79 31 20 78 20 72 65 73 75 6c 74 20   y2 y1 x result 
13b0: 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a 7d 20 2d  db fileName..} -
13c0: 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b 65 61 67  constraints {eag
13d0: 6c 65 20 63 6f 6d 6d 61 6e 64 2e 6f 62 6a 65 63  le command.objec
13e0: 74 20 6d 6f 6e 6f 42 75 67 32 38 20 63 6f 6d 6d  t monoBug28 comm
13f0: 61 6e 64 2e 73 71 6c 20 63 6f 6d 70 69 6c 65 2e  and.sql compile.
1400: 44 41 54 41 20 53 51 4c 69 74 65 5c 0d 0a 53 79  DATA SQLite\..Sy
1410: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
1420: 7d 20 2d 72 65 73 75 6c 74 20 7b 7b 31 20 31 32  } -result {{1 12
1430: 33 34 35 36 37 38 39 31 32 33 34 35 36 37 38 30  3456789123456780
1440: 20 31 32 33 34 35 36 37 38 39 31 32 33 34 35 36   123456789123456
1450: 37 38 30 7d 20 7b 32 5c 0d 0a 31 32 33 34 35 36  780} {2\..123456
1460: 37 38 39 31 32 33 34 35 36 37 38 30 20 31 32 33  789123456780 123
1470: 34 35 36 37 38 39 31 32 33 34 35 36 37 38 30 7d  456789123456780}
1480: 7d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  }}....##########
1490: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
14a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
14b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
14c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
14d0: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74  #####....runTest
14e0: 20 7b 74 65 73 74 20 74 6b 74 2d 62 31 36 37 32   {test tkt-b1672
14f0: 30 36 61 64 33 2d 32 2e 31 20 7b 62 69 6e 64 20  06ad3-2.1 {bind 
1500: 74 79 70 65 20 66 6f 72 20 44 45 43 49 4d 41 4c  type for DECIMAL
1510: 54 45 58 54 7d 20 2d 73 65 74 75 70 20 7b 0d 0a  TEXT} -setup {..
1520: 20 20 73 65 74 75 70 44 62 20 5b 73 65 74 20 66    setupDb [set f
1530: 69 6c 65 4e 61 6d 65 20 74 6b 74 2d 62 31 36 37  ileName tkt-b167
1540: 32 30 36 61 64 33 2d 32 2e 31 2e 64 62 5d 0d 0a  206ad3-2.1.db]..
1550: 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c  } -body {..  sql
1560: 20 65 78 65 63 75 74 65 20 24 64 62 20 7b 0d 0a   execute $db {..
1570: 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45      CREATE TABLE
1580: 20 74 31 28 78 20 49 4e 54 45 47 45 52 2c 20 79   t1(x INTEGER, y
1590: 20 44 45 43 49 4d 41 4c 54 45 58 54 28 33 38 2c   DECIMALTEXT(38,
15a0: 39 29 29 3b 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 73  9));..  }....  s
15b0: 65 74 20 64 28 31 29 20 5b 6f 62 6a 65 63 74 20  et d(1) [object 
15c0: 69 6e 76 6f 6b 65 20 2d 63 72 65 61 74 65 20 44  invoke -create D
15d0: 65 63 69 6d 61 6c 20 50 61 72 73 65 20 31 32 33  ecimal Parse 123
15e0: 34 35 36 37 38 39 31 32 33 34 35 36 37 38 30 5d  456789123456780]
15f0: 0d 0a 20 20 73 65 74 20 64 28 32 29 20 5b 6f 62  ..  set d(2) [ob
1600: 6a 65 63 74 20 69 6e 76 6f 6b 65 20 2d 63 72 65  ject invoke -cre
1610: 61 74 65 20 44 65 63 69 6d 61 6c 20 50 61 72 73  ate Decimal Pars
1620: 65 20 31 32 33 34 35 36 37 38 39 31 32 33 34 35  e 12345678912345
1630: 2e 31 35 35 36 33 34 36 5d 0d 0a 0d 0a 20 20 73  .1556346]....  s
1640: 71 6c 20 65 78 65 63 75 74 65 20 24 64 62 20 22  ql execute $db "
1650: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28  INSERT INTO t1 (
1660: 78 2c 20 79 29 20 56 41 4c 55 45 53 28 31 2c 20  x, y) VALUES(1, 
1670: 3f 29 3b 22 20 5c 0d 0a 20 20 20 20 20 20 5b 6c  ?);" \..      [l
1680: 69 73 74 20 70 61 72 61 6d 31 20 44 65 63 69 6d  ist param1 Decim
1690: 61 6c 20 24 64 28 31 29 5d 0d 0a 0d 0a 20 20 73  al $d(1)]....  s
16a0: 71 6c 20 65 78 65 63 75 74 65 20 24 64 62 20 22  ql execute $db "
16b0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28  INSERT INTO t1 (
16c0: 78 2c 20 79 29 20 56 41 4c 55 45 53 28 32 2c 20  x, y) VALUES(2, 
16d0: 3f 29 3b 22 20 5c 0d 0a 20 20 20 20 20 20 5b 6c  ?);" \..      [l
16e0: 69 73 74 20 70 61 72 61 6d 31 20 44 65 63 69 6d  ist param1 Decim
16f0: 61 6c 20 24 64 28 32 29 5d 0d 0a 0d 0a 20 20 73  al $d(2)]....  s
1700: 65 74 20 64 61 74 61 52 65 61 64 65 72 20 5b 73  et dataReader [s
1710: 71 6c 20 65 78 65 63 75 74 65 20 5c 0d 0a 20 20  ql execute \..  
1720: 20 20 20 20 2d 65 78 65 63 75 74 65 20 72 65 61      -execute rea
1730: 64 65 72 20 2d 66 6f 72 6d 61 74 20 64 61 74 61  der -format data
1740: 72 65 61 64 65 72 20 5c 0d 0a 20 20 20 20 20 20  reader \..      
1750: 2d 61 6c 69 61 73 20 24 64 62 20 22 53 45 4c 45  -alias $db "SELE
1760: 43 54 20 78 2c 20 79 20 46 52 4f 4d 20 74 31 20  CT x, y FROM t1 
1770: 4f 52 44 45 52 20 42 59 20 78 3b 22 5d 0d 0a 0d  ORDER BY x;"]...
1780: 0a 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b 6c  .  set result [l
1790: 69 73 74 5d 0d 0a 0d 0a 20 20 77 68 69 6c 65 20  ist]....  while 
17a0: 7b 5b 24 64 61 74 61 52 65 61 64 65 72 20 52 65  {[$dataReader Re
17b0: 61 64 5d 7d 20 7b 0d 0a 20 20 20 20 73 65 74 20  ad]} {..    set 
17c0: 78 20 5b 24 64 61 74 61 52 65 61 64 65 72 20 2d  x [$dataReader -
17d0: 63 72 65 61 74 65 20 2d 61 6c 69 61 73 20 47 65  create -alias Ge
17e0: 74 56 61 6c 75 65 20 30 5d 0d 0a 20 20 20 20 73  tValue 0]..    s
17f0: 65 74 20 79 31 20 5b 24 64 61 74 61 52 65 61 64  et y1 [$dataRead
1800: 65 72 20 2d 63 72 65 61 74 65 20 2d 61 6c 69 61  er -create -alia
1810: 73 20 47 65 74 44 65 63 69 6d 61 6c 20 31 5d 0d  s GetDecimal 1].
1820: 0a 20 20 20 20 73 65 74 20 79 32 20 5b 24 64 61  .    set y2 [$da
1830: 74 61 52 65 61 64 65 72 20 2d 63 72 65 61 74 65  taReader -create
1840: 20 2d 61 6c 69 61 73 20 47 65 74 56 61 6c 75 65   -alias GetValue
1850: 20 31 5d 0d 0a 0d 0a 20 20 20 20 6c 61 70 70 65   1]....    lappe
1860: 6e 64 20 72 65 73 75 6c 74 20 5b 6c 69 73 74 20  nd result [list 
1870: 5b 24 78 20 54 6f 53 74 72 69 6e 67 5d 20 5b 24  [$x ToString] [$
1880: 79 31 20 54 6f 53 74 72 69 6e 67 5d 20 5b 24 79  y1 ToString] [$y
1890: 32 20 54 6f 53 74 72 69 6e 67 5d 5d 0d 0a 20 20  2 ToString]]..  
18a0: 7d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73 75 6c  }....  set resul
18b0: 74 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d  t..} -cleanup {.
18c0: 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70  .  unset -nocomp
18d0: 6c 61 69 6e 20 64 61 74 61 52 65 61 64 65 72 0d  lain dataReader.
18e0: 0a 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20 24  ...  cleanupDb $
18f0: 66 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75 6e  fileName....  un
1900: 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20  set -nocomplain 
1910: 79 32 20 79 31 20 78 20 64 20 72 65 73 75 6c 74  y2 y1 x d result
1920: 20 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a 7d 20   db fileName..} 
1930: 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b 65 61  -constraints {ea
1940: 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e 6f 62 6a 65  gle command.obje
1950: 63 74 20 6d 6f 6e 6f 42 75 67 32 38 20 63 6f 6d  ct monoBug28 com
1960: 6d 61 6e 64 2e 73 71 6c 20 63 6f 6d 70 69 6c 65  mand.sql compile
1970: 2e 44 41 54 41 20 53 51 4c 69 74 65 5c 0d 0a 53  .DATA SQLite\..S
1980: 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74  ystem.Data.SQLit
1990: 65 7d 20 2d 72 65 73 75 6c 74 20 7b 7b 31 20 31  e} -result {{1 1
19a0: 32 33 34 35 36 37 38 39 31 32 33 34 35 36 37 38  2345678912345678
19b0: 30 20 31 32 33 34 35 36 37 38 39 31 32 33 34 35  0 12345678912345
19c0: 37 30 30 30 7d 20 7b 32 5c 0d 0a 31 32 33 34 35  7000} {2\..12345
19d0: 36 37 38 39 31 32 33 34 35 2e 31 35 35 36 33 34  678912345.155634
19e0: 36 20 31 32 33 34 35 36 37 38 39 31 32 33 34 35  6 12345678912345
19f0: 2e 32 7d 7d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23  .2}}}....#######
1a00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a40: 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54  ########....runT
1a50: 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 62 31  est {test tkt-b1
1a60: 36 37 32 30 36 61 64 33 2d 32 2e 32 20 7b 62 69  67206ad3-2.2 {bi
1a70: 6e 64 20 74 79 70 65 20 66 6f 72 20 44 45 43 49  nd type for DECI
1a80: 4d 41 4c 54 45 58 54 7d 20 2d 73 65 74 75 70 20  MALTEXT} -setup 
1a90: 7b 0d 0a 20 20 73 65 74 75 70 44 62 20 5b 73 65  {..  setupDb [se
1aa0: 74 20 66 69 6c 65 4e 61 6d 65 20 74 6b 74 2d 62  t fileName tkt-b
1ab0: 31 36 37 32 30 36 61 64 33 2d 32 2e 32 2e 64 62  167206ad3-2.2.db
1ac0: 5d 20 22 22 20 22 22 20 22 22 20 5c 0d 0a 20 20  ] "" "" "" \..  
1ad0: 20 20 20 20 22 42 69 6e 64 44 65 63 69 6d 61 6c      "BindDecimal
1ae0: 41 73 54 65 78 74 20 47 65 74 41 6c 6c 41 73 54  AsText GetAllAsT
1af0: 65 78 74 22 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d  ext"..} -body {.
1b00: 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65 20 24  .  sql execute $
1b10: 64 62 20 7b 0d 0a 20 20 20 20 43 52 45 41 54 45  db {..    CREATE
1b20: 20 54 41 42 4c 45 20 74 31 28 78 20 49 4e 54 45   TABLE t1(x INTE
1b30: 47 45 52 2c 20 79 20 44 45 43 49 4d 41 4c 54 45  GER, y DECIMALTE
1b40: 58 54 28 33 38 2c 39 29 29 3b 0d 0a 20 20 7d 0d  XT(38,9));..  }.
1b50: 0a 0d 0a 20 20 73 65 74 20 64 28 31 29 20 5b 6f  ...  set d(1) [o
1b60: 62 6a 65 63 74 20 69 6e 76 6f 6b 65 20 2d 63 72  bject invoke -cr
1b70: 65 61 74 65 20 44 65 63 69 6d 61 6c 20 50 61 72  eate Decimal Par
1b80: 73 65 20 31 32 33 34 35 36 37 38 39 31 32 33 34  se 1234567891234
1b90: 35 36 37 38 30 5d 0d 0a 20 20 73 65 74 20 64 28  56780]..  set d(
1ba0: 32 29 20 5b 6f 62 6a 65 63 74 20 69 6e 76 6f 6b  2) [object invok
1bb0: 65 20 2d 63 72 65 61 74 65 20 44 65 63 69 6d 61  e -create Decima
1bc0: 6c 20 50 61 72 73 65 20 31 32 33 34 35 36 37 38  l Parse 12345678
1bd0: 39 31 32 33 34 35 2e 31 35 35 36 33 34 36 5d 0d  912345.1556346].
1be0: 0a 0d 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65  ...  sql execute
1bf0: 20 24 64 62 20 22 49 4e 53 45 52 54 20 49 4e 54   $db "INSERT INT
1c00: 4f 20 74 31 20 28 78 2c 20 79 29 20 56 41 4c 55  O t1 (x, y) VALU
1c10: 45 53 28 31 2c 20 3f 29 3b 22 20 5c 0d 0a 20 20  ES(1, ?);" \..  
1c20: 20 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31      [list param1
1c30: 20 44 65 63 69 6d 61 6c 20 24 64 28 31 29 5d 0d   Decimal $d(1)].
1c40: 0a 0d 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65  ...  sql execute
1c50: 20 24 64 62 20 22 49 4e 53 45 52 54 20 49 4e 54   $db "INSERT INT
1c60: 4f 20 74 31 20 28 78 2c 20 79 29 20 56 41 4c 55  O t1 (x, y) VALU
1c70: 45 53 28 32 2c 20 3f 29 3b 22 20 5c 0d 0a 20 20  ES(2, ?);" \..  
1c80: 20 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31      [list param1
1c90: 20 44 65 63 69 6d 61 6c 20 24 64 28 32 29 5d 0d   Decimal $d(2)].
1ca0: 0a 0d 0a 20 20 73 65 74 20 64 61 74 61 52 65 61  ...  set dataRea
1cb0: 64 65 72 20 5b 73 71 6c 20 65 78 65 63 75 74 65  der [sql execute
1cc0: 20 5c 0d 0a 20 20 20 20 20 20 2d 65 78 65 63 75   \..      -execu
1cd0: 74 65 20 72 65 61 64 65 72 20 2d 66 6f 72 6d 61  te reader -forma
1ce0: 74 20 64 61 74 61 72 65 61 64 65 72 20 5c 0d 0a  t datareader \..
1cf0: 20 20 20 20 20 20 2d 61 6c 69 61 73 20 24 64 62        -alias $db
1d00: 20 22 53 45 4c 45 43 54 20 78 2c 20 79 20 46 52   "SELECT x, y FR
1d10: 4f 4d 20 74 31 20 4f 52 44 45 52 20 42 59 20 78  OM t1 ORDER BY x
1d20: 3b 22 5d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73  ;"]....  set res
1d30: 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d 0a 20 20  ult [list]....  
1d40: 77 68 69 6c 65 20 7b 5b 24 64 61 74 61 52 65 61  while {[$dataRea
1d50: 64 65 72 20 52 65 61 64 5d 7d 20 7b 0d 0a 20 20  der Read]} {..  
1d60: 20 20 73 65 74 20 78 20 5b 24 64 61 74 61 52 65    set x [$dataRe
1d70: 61 64 65 72 20 2d 63 72 65 61 74 65 20 2d 61 6c  ader -create -al
1d80: 69 61 73 20 47 65 74 56 61 6c 75 65 20 30 5d 0d  ias GetValue 0].
1d90: 0a 20 20 20 20 73 65 74 20 79 31 20 5b 24 64 61  .    set y1 [$da
1da0: 74 61 52 65 61 64 65 72 20 2d 63 72 65 61 74 65  taReader -create
1db0: 20 2d 61 6c 69 61 73 20 47 65 74 44 65 63 69 6d   -alias GetDecim
1dc0: 61 6c 20 31 5d 0d 0a 20 20 20 20 73 65 74 20 79  al 1]..    set y
1dd0: 32 20 5b 24 64 61 74 61 52 65 61 64 65 72 20 2d  2 [$dataReader -
1de0: 63 72 65 61 74 65 20 2d 61 6c 69 61 73 20 47 65  create -alias Ge
1df0: 74 56 61 6c 75 65 20 31 5d 0d 0a 0d 0a 20 20 20  tValue 1]....   
1e00: 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20   lappend result 
1e10: 5b 6c 69 73 74 20 5b 24 78 20 54 6f 53 74 72 69  [list [$x ToStri
1e20: 6e 67 5d 20 5b 24 79 31 20 54 6f 53 74 72 69 6e  ng] [$y1 ToStrin
1e30: 67 5d 20 5b 24 79 32 20 54 6f 53 74 72 69 6e 67  g] [$y2 ToString
1e40: 5d 5d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 73 65 74  ]]..  }....  set
1e50: 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63 6c 65 61   result..} -clea
1e60: 6e 75 70 20 7b 0d 0a 20 20 75 6e 73 65 74 20 2d  nup {..  unset -
1e70: 6e 6f 63 6f 6d 70 6c 61 69 6e 20 64 61 74 61 52  nocomplain dataR
1e80: 65 61 64 65 72 0d 0a 0d 0a 20 20 63 6c 65 61 6e  eader....  clean
1e90: 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65 0d 0a  upDb $fileName..
1ea0: 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  ..  unset -nocom
1eb0: 70 6c 61 69 6e 20 79 32 20 79 31 20 78 20 64 20  plain y2 y1 x d 
1ec0: 72 65 73 75 6c 74 20 64 62 20 66 69 6c 65 4e 61  result db fileNa
1ed0: 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e  me..} -constrain
1ee0: 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e  ts {eagle comman
1ef0: 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f 42 75 67  d.object monoBug
1f00: 32 38 20 63 6f 6d 6d 61 6e 64 2e 73 71 6c 20 63  28 command.sql c
1f10: 6f 6d 70 69 6c 65 2e 44 41 54 41 20 53 51 4c 69  ompile.DATA SQLi
1f20: 74 65 5c 0d 0a 53 79 73 74 65 6d 2e 44 61 74 61  te\..System.Data
1f30: 2e 53 51 4c 69 74 65 7d 20 2d 72 65 73 75 6c 74  .SQLite} -result
1f40: 20 7b 7b 31 20 31 32 33 34 35 36 37 38 39 31 32   {{1 12345678912
1f50: 33 34 35 36 37 38 30 20 31 32 33 34 35 36 37 38  3456780 12345678
1f60: 39 31 32 33 34 35 36 37 38 30 7d 20 7b 32 5c 0d  9123456780} {2\.
1f70: 0a 31 32 33 34 35 36 37 38 39 31 32 33 34 35 2e  .12345678912345.
1f80: 31 35 35 36 33 34 36 20 31 32 33 34 35 36 37 38  1556346 12345678
1f90: 39 31 32 33 34 35 2e 31 35 35 36 33 34 36 7d 7d  912345.1556346}}
1fa0: 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23  }....###########
1fb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1fc0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1fd0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1fe0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1ff0: 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74 20  ####....runTest 
2000: 7b 74 65 73 74 20 74 6b 74 2d 62 31 36 37 32 30  {test tkt-b16720
2010: 36 61 64 33 2d 32 2e 33 20 7b 62 69 6e 64 20 74  6ad3-2.3 {bind t
2020: 79 70 65 20 66 6f 72 20 4e 55 4d 45 52 49 43 54  ype for NUMERICT
2030: 45 58 54 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20  EXT} -setup {.. 
2040: 20 73 65 74 75 70 44 62 20 5b 73 65 74 20 66 69   setupDb [set fi
2050: 6c 65 4e 61 6d 65 20 74 6b 74 2d 62 31 36 37 32  leName tkt-b1672
2060: 30 36 61 64 33 2d 32 2e 33 2e 64 62 5d 0d 0a 7d  06ad3-2.3.db]..}
2070: 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c 20   -body {..  sql 
2080: 65 78 65 63 75 74 65 20 24 64 62 20 7b 0d 0a 20  execute $db {.. 
2090: 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20     CREATE TABLE 
20a0: 74 31 28 78 20 49 4e 54 45 47 45 52 2c 20 79 20  t1(x INTEGER, y 
20b0: 4e 55 4d 45 52 49 43 54 45 58 54 29 3b 0d 0a 20  NUMERICTEXT);.. 
20c0: 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 64 28 31 29   }....  set d(1)
20d0: 20 5b 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65 20   [object invoke 
20e0: 2d 63 72 65 61 74 65 20 44 65 63 69 6d 61 6c 20  -create Decimal 
20f0: 50 61 72 73 65 20 31 32 33 34 35 36 37 38 39 31  Parse 1234567891
2100: 32 33 34 35 36 37 38 30 5d 0d 0a 20 20 73 65 74  23456780]..  set
2110: 20 64 28 32 29 20 5b 6f 62 6a 65 63 74 20 69 6e   d(2) [object in
2120: 76 6f 6b 65 20 2d 63 72 65 61 74 65 20 44 65 63  voke -create Dec
2130: 69 6d 61 6c 20 50 61 72 73 65 20 31 32 33 34 35  imal Parse 12345
2140: 36 37 38 39 31 32 33 34 35 2e 31 35 35 36 33 34  678912345.155634
2150: 36 5d 0d 0a 0d 0a 20 20 73 71 6c 20 65 78 65 63  6]....  sql exec
2160: 75 74 65 20 24 64 62 20 22 49 4e 53 45 52 54 20  ute $db "INSERT 
2170: 49 4e 54 4f 20 74 31 20 28 78 2c 20 79 29 20 56  INTO t1 (x, y) V
2180: 41 4c 55 45 53 28 31 2c 20 3f 29 3b 22 20 5c 0d  ALUES(1, ?);" \.
2190: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
21a0: 61 6d 31 20 44 65 63 69 6d 61 6c 20 24 64 28 31  am1 Decimal $d(1
21b0: 29 5d 0d 0a 0d 0a 20 20 73 71 6c 20 65 78 65 63  )]....  sql exec
21c0: 75 74 65 20 24 64 62 20 22 49 4e 53 45 52 54 20  ute $db "INSERT 
21d0: 49 4e 54 4f 20 74 31 20 28 78 2c 20 79 29 20 56  INTO t1 (x, y) V
21e0: 41 4c 55 45 53 28 32 2c 20 3f 29 3b 22 20 5c 0d  ALUES(2, ?);" \.
21f0: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
2200: 61 6d 31 20 44 65 63 69 6d 61 6c 20 24 64 28 32  am1 Decimal $d(2
2210: 29 5d 0d 0a 0d 0a 20 20 73 65 74 20 64 61 74 61  )]....  set data
2220: 52 65 61 64 65 72 20 5b 73 71 6c 20 65 78 65 63  Reader [sql exec
2230: 75 74 65 20 5c 0d 0a 20 20 20 20 20 20 2d 65 78  ute \..      -ex
2240: 65 63 75 74 65 20 72 65 61 64 65 72 20 2d 66 6f  ecute reader -fo
2250: 72 6d 61 74 20 64 61 74 61 72 65 61 64 65 72 20  rmat datareader 
2260: 5c 0d 0a 20 20 20 20 20 20 2d 61 6c 69 61 73 20  \..      -alias 
2270: 24 64 62 20 22 53 45 4c 45 43 54 20 78 2c 20 79  $db "SELECT x, y
2280: 20 46 52 4f 4d 20 74 31 20 4f 52 44 45 52 20 42   FROM t1 ORDER B
2290: 59 20 78 3b 22 5d 0d 0a 0d 0a 20 20 73 65 74 20  Y x;"]....  set 
22a0: 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d  result [list]...
22b0: 0a 20 20 77 68 69 6c 65 20 7b 5b 24 64 61 74 61  .  while {[$data
22c0: 52 65 61 64 65 72 20 52 65 61 64 5d 7d 20 7b 0d  Reader Read]} {.
22d0: 0a 20 20 20 20 73 65 74 20 78 20 5b 24 64 61 74  .    set x [$dat
22e0: 61 52 65 61 64 65 72 20 2d 63 72 65 61 74 65 20  aReader -create 
22f0: 2d 61 6c 69 61 73 20 47 65 74 56 61 6c 75 65 20  -alias GetValue 
2300: 30 5d 0d 0a 20 20 20 20 73 65 74 20 79 31 20 5b  0]..    set y1 [
2310: 24 64 61 74 61 52 65 61 64 65 72 20 2d 63 72 65  $dataReader -cre
2320: 61 74 65 20 2d 61 6c 69 61 73 20 47 65 74 44 65  ate -alias GetDe
2330: 63 69 6d 61 6c 20 31 5d 0d 0a 20 20 20 20 73 65  cimal 1]..    se
2340: 74 20 79 32 20 5b 24 64 61 74 61 52 65 61 64 65  t y2 [$dataReade
2350: 72 20 2d 63 72 65 61 74 65 20 2d 61 6c 69 61 73  r -create -alias
2360: 20 47 65 74 56 61 6c 75 65 20 31 5d 0d 0a 0d 0a   GetValue 1]....
2370: 20 20 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75      lappend resu
2380: 6c 74 20 5b 6c 69 73 74 20 5b 24 78 20 54 6f 53  lt [list [$x ToS
2390: 74 72 69 6e 67 5d 20 5b 24 79 31 20 54 6f 53 74  tring] [$y1 ToSt
23a0: 72 69 6e 67 5d 20 5b 24 79 32 20 54 6f 53 74 72  ring] [$y2 ToStr
23b0: 69 6e 67 5d 5d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20  ing]]..  }....  
23c0: 73 65 74 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63  set result..} -c
23d0: 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 75 6e 73 65  leanup {..  unse
23e0: 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 64 61  t -nocomplain da
23f0: 74 61 52 65 61 64 65 72 0d 0a 0d 0a 20 20 63 6c  taReader....  cl
2400: 65 61 6e 75 70 44 62 20 24 66 69 6c 65 4e 61 6d  eanupDb $fileNam
2410: 65 0d 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f  e....  unset -no
2420: 63 6f 6d 70 6c 61 69 6e 20 79 32 20 79 31 20 78  complain y2 y1 x
2430: 20 64 20 72 65 73 75 6c 74 20 64 62 20 66 69 6c   d result db fil
2440: 65 4e 61 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72  eName..} -constr
2450: 61 69 6e 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d  aints {eagle com
2460: 6d 61 6e 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f  mand.object mono
2470: 42 75 67 32 38 20 63 6f 6d 6d 61 6e 64 2e 73 71  Bug28 command.sq
2480: 6c 20 63 6f 6d 70 69 6c 65 2e 44 41 54 41 20 53  l compile.DATA S
2490: 51 4c 69 74 65 5c 0d 0a 53 79 73 74 65 6d 2e 44  QLite\..System.D
24a0: 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d 72 65 73  ata.SQLite} -res
24b0: 75 6c 74 20 7b 7b 31 20 31 32 33 34 35 36 37 38  ult {{1 12345678
24c0: 39 31 32 33 34 35 36 37 38 30 20 31 32 33 34 35  9123456780 12345
24d0: 36 37 38 39 31 32 33 34 35 37 30 30 30 7d 20 7b  6789123457000} {
24e0: 32 5c 0d 0a 31 32 33 34 35 36 37 38 39 31 32 33  2\..123456789123
24f0: 34 35 2e 31 35 35 36 33 34 36 20 31 32 33 34 35  45.1556346 12345
2500: 36 37 38 39 31 32 33 34 35 2e 32 7d 7d 7d 0d 0a  678912345.2}}}..
2510: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
2520: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2530: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2540: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2550: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2560: 23 0d 0a 0d 0a 72 75 6e 54 65 73 74 20 7b 74 65  #....runTest {te
2570: 73 74 20 74 6b 74 2d 62 31 36 37 32 30 36 61 64  st tkt-b167206ad
2580: 33 2d 32 2e 34 20 7b 62 69 6e 64 20 74 79 70 65  3-2.4 {bind type
2590: 20 66 6f 72 20 4e 55 4d 45 52 49 43 54 45 58 54   for NUMERICTEXT
25a0: 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20 73 65  } -setup {..  se
25b0: 74 75 70 44 62 20 5b 73 65 74 20 66 69 6c 65 4e  tupDb [set fileN
25c0: 61 6d 65 20 74 6b 74 2d 62 31 36 37 32 30 36 61  ame tkt-b167206a
25d0: 64 33 2d 32 2e 34 2e 64 62 5d 20 22 22 20 22 22  d3-2.4.db] "" ""
25e0: 20 22 22 20 5c 0d 0a 20 20 20 20 20 20 22 42 69   "" \..      "Bi
25f0: 6e 64 44 65 63 69 6d 61 6c 41 73 54 65 78 74 20  ndDecimalAsText 
2600: 47 65 74 41 6c 6c 41 73 54 65 78 74 22 0d 0a 7d  GetAllAsText"..}
2610: 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c 20   -body {..  sql 
2620: 65 78 65 63 75 74 65 20 24 64 62 20 7b 0d 0a 20  execute $db {.. 
2630: 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20     CREATE TABLE 
2640: 74 31 28 78 20 49 4e 54 45 47 45 52 2c 20 79 20  t1(x INTEGER, y 
2650: 4e 55 4d 45 52 49 43 54 45 58 54 29 3b 0d 0a 20  NUMERICTEXT);.. 
2660: 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 64 28 31 29   }....  set d(1)
2670: 20 5b 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65 20   [object invoke 
2680: 2d 63 72 65 61 74 65 20 44 65 63 69 6d 61 6c 20  -create Decimal 
2690: 50 61 72 73 65 20 31 32 33 34 35 36 37 38 39 31  Parse 1234567891
26a0: 32 33 34 35 36 37 38 30 5d 0d 0a 20 20 73 65 74  23456780]..  set
26b0: 20 64 28 32 29 20 5b 6f 62 6a 65 63 74 20 69 6e   d(2) [object in
26c0: 76 6f 6b 65 20 2d 63 72 65 61 74 65 20 44 65 63  voke -create Dec
26d0: 69 6d 61 6c 20 50 61 72 73 65 20 31 32 33 34 35  imal Parse 12345
26e0: 36 37 38 39 31 32 33 34 35 2e 31 35 35 36 33 34  678912345.155634
26f0: 36 5d 0d 0a 0d 0a 20 20 73 71 6c 20 65 78 65 63  6]....  sql exec
2700: 75 74 65 20 24 64 62 20 22 49 4e 53 45 52 54 20  ute $db "INSERT 
2710: 49 4e 54 4f 20 74 31 20 28 78 2c 20 79 29 20 56  INTO t1 (x, y) V
2720: 41 4c 55 45 53 28 31 2c 20 3f 29 3b 22 20 5c 0d  ALUES(1, ?);" \.
2730: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
2740: 61 6d 31 20 44 65 63 69 6d 61 6c 20 24 64 28 31  am1 Decimal $d(1
2750: 29 5d 0d 0a 0d 0a 20 20 73 71 6c 20 65 78 65 63  )]....  sql exec
2760: 75 74 65 20 24 64 62 20 22 49 4e 53 45 52 54 20  ute $db "INSERT 
2770: 49 4e 54 4f 20 74 31 20 28 78 2c 20 79 29 20 56  INTO t1 (x, y) V
2780: 41 4c 55 45 53 28 32 2c 20 3f 29 3b 22 20 5c 0d  ALUES(2, ?);" \.
2790: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
27a0: 61 6d 31 20 44 65 63 69 6d 61 6c 20 24 64 28 32  am1 Decimal $d(2
27b0: 29 5d 0d 0a 0d 0a 20 20 73 65 74 20 64 61 74 61  )]....  set data
27c0: 52 65 61 64 65 72 20 5b 73 71 6c 20 65 78 65 63  Reader [sql exec
27d0: 75 74 65 20 5c 0d 0a 20 20 20 20 20 20 2d 65 78  ute \..      -ex
27e0: 65 63 75 74 65 20 72 65 61 64 65 72 20 2d 66 6f  ecute reader -fo
27f0: 72 6d 61 74 20 64 61 74 61 72 65 61 64 65 72 20  rmat datareader 
2800: 5c 0d 0a 20 20 20 20 20 20 2d 61 6c 69 61 73 20  \..      -alias 
2810: 24 64 62 20 22 53 45 4c 45 43 54 20 78 2c 20 79  $db "SELECT x, y
2820: 20 46 52 4f 4d 20 74 31 20 4f 52 44 45 52 20 42   FROM t1 ORDER B
2830: 59 20 78 3b 22 5d 0d 0a 0d 0a 20 20 73 65 74 20  Y x;"]....  set 
2840: 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d  result [list]...
2850: 0a 20 20 77 68 69 6c 65 20 7b 5b 24 64 61 74 61  .  while {[$data
2860: 52 65 61 64 65 72 20 52 65 61 64 5d 7d 20 7b 0d  Reader Read]} {.
2870: 0a 20 20 20 20 73 65 74 20 78 20 5b 24 64 61 74  .    set x [$dat
2880: 61 52 65 61 64 65 72 20 2d 63 72 65 61 74 65 20  aReader -create 
2890: 2d 61 6c 69 61 73 20 47 65 74 56 61 6c 75 65 20  -alias GetValue 
28a0: 30 5d 0d 0a 20 20 20 20 73 65 74 20 79 31 20 5b  0]..    set y1 [
28b0: 24 64 61 74 61 52 65 61 64 65 72 20 2d 63 72 65  $dataReader -cre
28c0: 61 74 65 20 2d 61 6c 69 61 73 20 47 65 74 44 65  ate -alias GetDe
28d0: 63 69 6d 61 6c 20 31 5d 0d 0a 20 20 20 20 73 65  cimal 1]..    se
28e0: 74 20 79 32 20 5b 24 64 61 74 61 52 65 61 64 65  t y2 [$dataReade
28f0: 72 20 2d 63 72 65 61 74 65 20 2d 61 6c 69 61 73  r -create -alias
2900: 20 47 65 74 56 61 6c 75 65 20 31 5d 0d 0a 0d 0a   GetValue 1]....
2910: 20 20 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75      lappend resu
2920: 6c 74 20 5b 6c 69 73 74 20 5b 24 78 20 54 6f 53  lt [list [$x ToS
2930: 74 72 69 6e 67 5d 20 5b 24 79 31 20 54 6f 53 74  tring] [$y1 ToSt
2940: 72 69 6e 67 5d 20 5b 24 79 32 20 54 6f 53 74 72  ring] [$y2 ToStr
2950: 69 6e 67 5d 5d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20  ing]]..  }....  
2960: 73 65 74 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63  set result..} -c
2970: 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 75 6e 73 65  leanup {..  unse
2980: 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 64 61  t -nocomplain da
2990: 74 61 52 65 61 64 65 72 0d 0a 0d 0a 20 20 63 6c  taReader....  cl
29a0: 65 61 6e 75 70 44 62 20 24 66 69 6c 65 4e 61 6d  eanupDb $fileNam
29b0: 65 0d 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f  e....  unset -no
29c0: 63 6f 6d 70 6c 61 69 6e 20 79 32 20 79 31 20 78  complain y2 y1 x
29d0: 20 64 20 72 65 73 75 6c 74 20 64 62 20 66 69 6c   d result db fil
29e0: 65 4e 61 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72  eName..} -constr
29f0: 61 69 6e 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d  aints {eagle com
2a00: 6d 61 6e 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f  mand.object mono
2a10: 42 75 67 32 38 20 63 6f 6d 6d 61 6e 64 2e 73 71  Bug28 command.sq
2a20: 6c 20 63 6f 6d 70 69 6c 65 2e 44 41 54 41 20 53  l compile.DATA S
2a30: 51 4c 69 74 65 5c 0d 0a 53 79 73 74 65 6d 2e 44  QLite\..System.D
2a40: 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d 72 65 73  ata.SQLite} -res
2a50: 75 6c 74 20 7b 7b 31 20 31 32 33 34 35 36 37 38  ult {{1 12345678
2a60: 39 31 32 33 34 35 36 37 38 30 20 31 32 33 34 35  9123456780 12345
2a70: 36 37 38 39 31 32 33 34 35 36 37 38 30 7d 20 7b  6789123456780} {
2a80: 32 5c 0d 0a 31 32 33 34 35 36 37 38 39 31 32 33  2\..123456789123
2a90: 34 35 2e 31 35 35 36 33 34 36 20 31 32 33 34 35  45.1556346 12345
2aa0: 36 37 38 39 31 32 33 34 35 2e 31 35 35 36 33 34  678912345.155634
2ab0: 36 7d 7d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23  6}}}....########
2ac0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2ad0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2ae0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2af0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2b00: 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 53 51  #######....runSQ
2b10: 4c 69 74 65 54 65 73 74 45 70 69 6c 6f 67 75 65  LiteTestEpilogue
2b20: 0d 0a 72 75 6e 54 65 73 74 45 70 69 6c 6f 67 75  ..runTestEpilogu
2b30: 65 0d 0a                                         e..