System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 6c95be098519b298d24fb5c0bc1262a376c16d4c:


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 61 37 64 30 34 66  .#..# tkt-a7d04f
0060: 62 31 31 31 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  b111.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 73 65 74  #########....set
0270: 20 72 61 77 56 61 6c 75 65 28 30 29 20 22 32 30   rawValue(0) "20
0280: 31 35 2d 30 32 2d 31 38 20 30 30 3a 30 30 3a 30  15-02-18 00:00:0
0290: 30 2e 30 30 30 30 30 30 30 22 0d 0a 0d 0a 23 23  0.0000000"....##
02a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d  #############...
02f0: 0a 73 65 74 20 74 69 63 6b 73 56 61 6c 75 65 28  .set ticksValue(
0300: 30 29 20 5b 67 65 74 44 61 74 65 54 69 6d 65 54  0) [getDateTimeT
0310: 69 63 6b 73 20 24 72 61 77 56 61 6c 75 65 28 30  icks $rawValue(0
0320: 29 5d 0d 0a 73 65 74 20 74 69 63 6b 73 56 61 6c  )]..set ticksVal
0330: 75 65 28 31 29 20 5b 67 65 74 44 61 74 65 54 69  ue(1) [getDateTi
0340: 6d 65 54 69 63 6b 73 20 24 72 61 77 56 61 6c 75  meTicks $rawValu
0350: 65 28 30 29 20 66 61 6c 73 65 5d 0d 0a 73 65 74  e(0) false]..set
0360: 20 74 69 63 6b 73 56 61 6c 75 65 28 32 29 20 5b   ticksValue(2) [
0370: 67 65 74 44 61 74 65 54 69 6d 65 54 69 63 6b 73  getDateTimeTicks
0380: 20 24 72 61 77 56 61 6c 75 65 28 30 29 20 74 72   $rawValue(0) tr
0390: 75 65 5d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23  ue]....#########
03a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
03b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
03c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
03d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
03e0: 23 23 23 23 23 23 0d 0a 0d 0a 73 65 74 20 69 6e  ######....set in
03f0: 73 74 61 6e 63 65 56 61 6c 75 65 28 30 29 20 5b  stanceValue(0) [
0400: 6f 62 6a 65 63 74 20 63 72 65 61 74 65 20 2d 61  object create -a
0410: 6c 69 61 73 20 44 61 74 65 54 69 6d 65 20 24 74  lias DateTime $t
0420: 69 63 6b 73 56 61 6c 75 65 28 30 29 5d 0d 0a 73  icksValue(0)]..s
0430: 65 74 20 69 6e 73 74 61 6e 63 65 56 61 6c 75 65  et instanceValue
0440: 28 31 29 20 5b 6f 62 6a 65 63 74 20 63 72 65 61  (1) [object crea
0450: 74 65 20 2d 61 6c 69 61 73 20 44 61 74 65 54 69  te -alias DateTi
0460: 6d 65 20 24 74 69 63 6b 73 56 61 6c 75 65 28 31  me $ticksValue(1
0470: 29 20 55 74 63 5d 0d 0a 73 65 74 20 69 6e 73 74  ) Utc]..set inst
0480: 61 6e 63 65 56 61 6c 75 65 28 32 29 20 5b 6f 62  anceValue(2) [ob
0490: 6a 65 63 74 20 63 72 65 61 74 65 20 2d 61 6c 69  ject create -ali
04a0: 61 73 20 44 61 74 65 54 69 6d 65 20 24 74 69 63  as DateTime $tic
04b0: 6b 73 56 61 6c 75 65 28 32 29 20 4c 6f 63 61 6c  ksValue(2) Local
04c0: 5d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23  ]....###########
04d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
04e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
04f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0500: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0510: 23 23 23 23 0d 0a 0d 0a 73 65 74 20 69 73 6f 38  ####....set iso8
0520: 36 30 31 56 61 6c 75 65 28 30 29 20 5b 24 69 6e  601Value(0) [$in
0530: 73 74 61 6e 63 65 56 61 6c 75 65 28 30 29 20 54  stanceValue(0) T
0540: 6f 53 74 72 69 6e 67 20 5b 67 65 74 44 61 74 65  oString [getDate
0550: 54 69 6d 65 46 6f 72 6d 61 74 5d 5d 0d 0a 73 65  TimeFormat]]..se
0560: 74 20 69 73 6f 38 36 30 31 56 61 6c 75 65 28 31  t iso8601Value(1
0570: 29 20 5b 24 69 6e 73 74 61 6e 63 65 56 61 6c 75  ) [$instanceValu
0580: 65 28 31 29 20 54 6f 53 74 72 69 6e 67 20 5b 67  e(1) ToString [g
0590: 65 74 44 61 74 65 54 69 6d 65 46 6f 72 6d 61 74  etDateTimeFormat
05a0: 5d 5d 0d 0a 73 65 74 20 69 73 6f 38 36 30 31 56  ]]..set iso8601V
05b0: 61 6c 75 65 28 32 29 20 5b 24 69 6e 73 74 61 6e  alue(2) [$instan
05c0: 63 65 56 61 6c 75 65 28 32 29 20 54 6f 53 74 72  ceValue(2) ToStr
05d0: 69 6e 67 20 5b 67 65 74 44 61 74 65 54 69 6d 65  ing [getDateTime
05e0: 46 6f 72 6d 61 74 20 66 61 6c 73 65 5d 5d 0d 0a  Format false]]..
05f0: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
0600: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0610: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0620: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0630: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0640: 23 0d 0a 0d 0a 73 65 74 20 6a 75 6c 69 61 6e 44  #....set julianD
0650: 61 79 56 61 6c 75 65 28 30 29 20 5b 6f 62 6a 65  ayValue(0) [obje
0660: 63 74 20 69 6e 76 6f 6b 65 20 53 79 73 74 65 6d  ct invoke System
0670: 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 53 51 4c  .Data.SQLite.SQL
0680: 69 74 65 43 6f 6e 76 65 72 74 20 5c 0d 0a 20 20  iteConvert \..  
0690: 20 20 54 6f 4a 75 6c 69 61 6e 44 61 79 20 24 69    ToJulianDay $i
06a0: 6e 73 74 61 6e 63 65 56 61 6c 75 65 28 30 29 5d  nstanceValue(0)]
06b0: 0d 0a 0d 0a 73 65 74 20 6a 75 6c 69 61 6e 44 61  ....set julianDa
06c0: 79 56 61 6c 75 65 28 31 29 20 5b 6f 62 6a 65 63  yValue(1) [objec
06d0: 74 20 69 6e 76 6f 6b 65 20 53 79 73 74 65 6d 2e  t invoke System.
06e0: 44 61 74 61 2e 53 51 4c 69 74 65 2e 53 51 4c 69  Data.SQLite.SQLi
06f0: 74 65 43 6f 6e 76 65 72 74 20 5c 0d 0a 20 20 20  teConvert \..   
0700: 20 54 6f 4a 75 6c 69 61 6e 44 61 79 20 24 69 6e   ToJulianDay $in
0710: 73 74 61 6e 63 65 56 61 6c 75 65 28 31 29 5d 0d  stanceValue(1)].
0720: 0a 0d 0a 73 65 74 20 6a 75 6c 69 61 6e 44 61 79  ...set julianDay
0730: 56 61 6c 75 65 28 32 29 20 5b 6f 62 6a 65 63 74  Value(2) [object
0740: 20 69 6e 76 6f 6b 65 20 53 79 73 74 65 6d 2e 44   invoke System.D
0750: 61 74 61 2e 53 51 4c 69 74 65 2e 53 51 4c 69 74  ata.SQLite.SQLit
0760: 65 43 6f 6e 76 65 72 74 20 5c 0d 0a 20 20 20 20  eConvert \..    
0770: 54 6f 4a 75 6c 69 61 6e 44 61 79 20 24 69 6e 73  ToJulianDay $ins
0780: 74 61 6e 63 65 56 61 6c 75 65 28 32 29 5d 0d 0a  tanceValue(2)]..
0790: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
07a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
07b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
07c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
07d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
07e0: 23 0d 0a 0d 0a 73 65 74 20 75 6e 69 78 45 70 6f  #....set unixEpo
07f0: 63 68 56 61 6c 75 65 28 30 29 20 5b 6f 62 6a 65  chValue(0) [obje
0800: 63 74 20 69 6e 76 6f 6b 65 20 53 79 73 74 65 6d  ct invoke System
0810: 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 53 51 4c  .Data.SQLite.SQL
0820: 69 74 65 43 6f 6e 76 65 72 74 20 5c 0d 0a 20 20  iteConvert \..  
0830: 20 20 54 6f 55 6e 69 78 45 70 6f 63 68 20 24 69    ToUnixEpoch $i
0840: 6e 73 74 61 6e 63 65 56 61 6c 75 65 28 30 29 5d  nstanceValue(0)]
0850: 0d 0a 0d 0a 73 65 74 20 75 6e 69 78 45 70 6f 63  ....set unixEpoc
0860: 68 56 61 6c 75 65 28 31 29 20 5b 6f 62 6a 65 63  hValue(1) [objec
0870: 74 20 69 6e 76 6f 6b 65 20 53 79 73 74 65 6d 2e  t invoke System.
0880: 44 61 74 61 2e 53 51 4c 69 74 65 2e 53 51 4c 69  Data.SQLite.SQLi
0890: 74 65 43 6f 6e 76 65 72 74 20 5c 0d 0a 20 20 20  teConvert \..   
08a0: 20 54 6f 55 6e 69 78 45 70 6f 63 68 20 24 69 6e   ToUnixEpoch $in
08b0: 73 74 61 6e 63 65 56 61 6c 75 65 28 31 29 5d 0d  stanceValue(1)].
08c0: 0a 0d 0a 73 65 74 20 75 6e 69 78 45 70 6f 63 68  ...set unixEpoch
08d0: 56 61 6c 75 65 28 32 29 20 5b 6f 62 6a 65 63 74  Value(2) [object
08e0: 20 69 6e 76 6f 6b 65 20 53 79 73 74 65 6d 2e 44   invoke System.D
08f0: 61 74 61 2e 53 51 4c 69 74 65 2e 53 51 4c 69 74  ata.SQLite.SQLit
0900: 65 43 6f 6e 76 65 72 74 20 5c 0d 0a 20 20 20 20  eConvert \..    
0910: 54 6f 55 6e 69 78 45 70 6f 63 68 20 24 69 6e 73  ToUnixEpoch $ins
0920: 74 61 6e 63 65 56 61 6c 75 65 28 32 29 5d 0d 0a  tanceValue(2)]..
0930: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
0940: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0950: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0960: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0970: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0980: 23 0d 0a 0d 0a 73 65 74 20 69 6e 76 61 72 69 61  #....set invaria
0990: 6e 74 43 75 6c 74 75 72 65 56 61 6c 75 65 28 30  ntCultureValue(0
09a0: 29 20 5b 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65  ) [object invoke
09b0: 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c   System.Data.SQL
09c0: 69 74 65 2e 53 51 4c 69 74 65 43 6f 6e 76 65 72  ite.SQLiteConver
09d0: 74 20 5c 0d 0a 20 20 20 20 54 6f 53 74 72 69 6e  t \..    ToStrin
09e0: 67 20 24 69 6e 73 74 61 6e 63 65 56 61 6c 75 65  g $instanceValue
09f0: 28 30 29 20 49 6e 76 61 72 69 61 6e 74 43 75 6c  (0) InvariantCul
0a00: 74 75 72 65 20 55 6e 73 70 65 63 69 66 69 65 64  ture Unspecified
0a10: 20 6e 75 6c 6c 5d 0d 0a 0d 0a 73 65 74 20 69 6e   null]....set in
0a20: 76 61 72 69 61 6e 74 43 75 6c 74 75 72 65 56 61  variantCultureVa
0a30: 6c 75 65 28 31 29 20 5b 6f 62 6a 65 63 74 20 69  lue(1) [object i
0a40: 6e 76 6f 6b 65 20 53 79 73 74 65 6d 2e 44 61 74  nvoke System.Dat
0a50: 61 2e 53 51 4c 69 74 65 2e 53 51 4c 69 74 65 43  a.SQLite.SQLiteC
0a60: 6f 6e 76 65 72 74 20 5c 0d 0a 20 20 20 20 54 6f  onvert \..    To
0a70: 53 74 72 69 6e 67 20 24 69 6e 73 74 61 6e 63 65  String $instance
0a80: 56 61 6c 75 65 28 31 29 20 49 6e 76 61 72 69 61  Value(1) Invaria
0a90: 6e 74 43 75 6c 74 75 72 65 20 55 74 63 20 6e 75  ntCulture Utc nu
0aa0: 6c 6c 5d 0d 0a 0d 0a 73 65 74 20 69 6e 76 61 72  ll]....set invar
0ab0: 69 61 6e 74 43 75 6c 74 75 72 65 56 61 6c 75 65  iantCultureValue
0ac0: 28 32 29 20 5b 6f 62 6a 65 63 74 20 69 6e 76 6f  (2) [object invo
0ad0: 6b 65 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53  ke System.Data.S
0ae0: 51 4c 69 74 65 2e 53 51 4c 69 74 65 43 6f 6e 76  QLite.SQLiteConv
0af0: 65 72 74 20 5c 0d 0a 20 20 20 20 54 6f 53 74 72  ert \..    ToStr
0b00: 69 6e 67 20 24 69 6e 73 74 61 6e 63 65 56 61 6c  ing $instanceVal
0b10: 75 65 28 32 29 20 49 6e 76 61 72 69 61 6e 74 43  ue(2) InvariantC
0b20: 75 6c 74 75 72 65 20 4c 6f 63 61 6c 20 6e 75 6c  ulture Local nul
0b30: 6c 5d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  l]....##########
0b40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b50: 23 23 23 23 23 23 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 0d 0a 0d 0a 72 75 6e 54 65 73 74  #####....runTest
0b90: 20 7b 74 65 73 74 20 74 6b 74 2d 61 37 64 30 34   {test tkt-a7d04
0ba0: 66 62 31 31 31 2d 31 2e 31 20 7b 42 69 6e 64 20  fb111-1.1 {Bind 
0bb0: 44 61 74 65 54 69 6d 65 20 55 74 63 20 54 69 63  DateTime Utc Tic
0bc0: 6b 73 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20  ks} -setup {..  
0bd0: 73 65 74 75 70 44 62 20 5b 73 65 74 20 66 69 6c  setupDb [set fil
0be0: 65 4e 61 6d 65 20 74 6b 74 2d 61 37 64 30 34 66  eName tkt-a7d04f
0bf0: 62 31 31 31 2d 31 2e 31 2e 64 62 5d 20 22 22 20  b111-1.1.db] "" 
0c00: 54 69 63 6b 73 20 55 74 63 20 5c 0d 0a 20 20 20  Ticks Utc \..   
0c10: 20 20 20 42 69 6e 64 44 61 74 65 54 69 6d 65 57     BindDateTimeW
0c20: 69 74 68 4b 69 6e 64 0d 0a 7d 20 2d 62 6f 64 79  ithKind..} -body
0c30: 20 7b 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65   {..  lappend re
0c40: 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63 75 74  sult [sql execut
0c50: 65 20 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61  e -execute scala
0c60: 72 20 24 64 62 20 22 53 45 4c 45 43 54 20 3f 3b  r $db "SELECT ?;
0c70: 22 20 5c 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74  " \..      [list
0c80: 20 70 61 72 61 6d 31 20 44 61 74 65 54 69 6d 65   param1 DateTime
0c90: 20 24 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 28   $instanceValue(
0ca0: 30 29 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e  0)]]....  lappen
0cb0: 64 20 72 65 73 75 6c 74 20 5b 73 71 6c 20 65 78  d result [sql ex
0cc0: 65 63 75 74 65 20 2d 65 78 65 63 75 74 65 20 73  ecute -execute s
0cd0: 63 61 6c 61 72 20 24 64 62 20 22 53 45 4c 45 43  calar $db "SELEC
0ce0: 54 20 3f 3b 22 20 5c 0d 0a 20 20 20 20 20 20 5b  T ?;" \..      [
0cf0: 6c 69 73 74 20 70 61 72 61 6d 31 20 44 61 74 65  list param1 Date
0d00: 54 69 6d 65 20 24 69 6e 73 74 61 6e 63 65 56 61  Time $instanceVa
0d10: 6c 75 65 28 31 29 5d 5d 0d 0a 0d 0a 20 20 6c 61  lue(1)]]....  la
0d20: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71  ppend result [sq
0d30: 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75  l execute -execu
0d40: 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 22 53  te scalar $db "S
0d50: 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20  ELECT ?;" \..   
0d60: 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31 20     [list param1 
0d70: 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74 61 6e  DateTime $instan
0d80: 63 65 56 61 6c 75 65 28 32 29 5d 5d 0d 0a 0d 0a  ceValue(2)]]....
0d90: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
0da0: 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20   [expr {[lindex 
0db0: 24 72 65 73 75 6c 74 20 30 5d 20 3d 3d 20 5b 6c  $result 0] == [l
0dc0: 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 31 5d  index $result 1]
0dd0: 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  }]..  lappend re
0de0: 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69 6e  sult [expr {[lin
0df0: 64 65 78 20 24 72 65 73 75 6c 74 20 30 5d 20 3d  dex $result 0] =
0e00: 3d 20 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c  = [lindex $resul
0e10: 74 20 32 5d 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e  t 2]}]..  lappen
0e20: 64 20 72 65 73 75 6c 74 20 5b 65 78 70 72 20 7b  d result [expr {
0e30: 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20  [lindex $result 
0e40: 31 5d 20 3d 3d 20 5b 6c 69 6e 64 65 78 20 24 72  1] == [lindex $r
0e50: 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a 7d 20 2d 63  esult 2]}]..} -c
0e60: 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 63 6c 65 61  leanup {..  clea
0e70: 6e 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65 0d  nupDb $fileName.
0e80: 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f  ...  unset -noco
0e90: 6d 70 6c 61 69 6e 20 72 65 73 75 6c 74 20 64 62  mplain result db
0ea0: 20 66 69 6c 65 4e 61 6d 65 0d 0a 7d 20 2d 63 6f   fileName..} -co
0eb0: 6e 73 74 72 61 69 6e 74 73 20 7b 65 61 67 6c 65  nstraints {eagle
0ec0: 20 63 6f 6d 6d 61 6e 64 2e 6f 62 6a 65 63 74 20   command.object 
0ed0: 6d 6f 6e 6f 42 75 67 32 38 20 6d 6f 6e 6f 42 75  monoBug28 monoBu
0ee0: 67 34 32 20 63 6f 6d 6d 61 6e 64 2e 73 71 6c 5c  g42 command.sql\
0ef0: 0d 0a 63 6f 6d 70 69 6c 65 2e 44 41 54 41 20 53  ..compile.DATA S
0f00: 51 4c 69 74 65 20 53 79 73 74 65 6d 2e 44 61 74  QLite System.Dat
0f10: 61 2e 53 51 4c 69 74 65 7d 20 2d 72 65 73 75 6c  a.SQLite} -resul
0f20: 74 20 5b 73 75 62 73 74 20 2d 6e 6f 63 6f 6d 6d  t [subst -nocomm
0f30: 61 6e 64 73 20 5c 0d 0a 2d 6e 6f 62 61 63 6b 73  ands \..-nobacks
0f40: 6c 61 73 68 65 73 20 7b 24 74 69 63 6b 73 56 61  lashes {$ticksVa
0f50: 6c 75 65 28 30 29 20 24 74 69 63 6b 73 56 61 6c  lue(0) $ticksVal
0f60: 75 65 28 31 29 20 24 74 69 63 6b 73 56 61 6c 75  ue(1) $ticksValu
0f70: 65 28 31 29 20 54 72 75 65 20 54 72 75 65 20 54  e(1) True True T
0f80: 72 75 65 7d 5d 7d 0d 0a 0d 0a 23 23 23 23 23 23  rue}]}....######
0f90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0fa0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0fb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0fc0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0fd0: 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e  #########....run
0fe0: 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 61  Test {test tkt-a
0ff0: 37 64 30 34 66 62 31 31 31 2d 31 2e 32 20 7b 42  7d04fb111-1.2 {B
1000: 69 6e 64 20 44 61 74 65 54 69 6d 65 20 4c 6f 63  ind DateTime Loc
1010: 61 6c 20 54 69 63 6b 73 7d 20 2d 73 65 74 75 70  al Ticks} -setup
1020: 20 7b 0d 0a 20 20 73 65 74 75 70 44 62 20 5b 73   {..  setupDb [s
1030: 65 74 20 66 69 6c 65 4e 61 6d 65 20 74 6b 74 2d  et fileName tkt-
1040: 61 37 64 30 34 66 62 31 31 31 2d 31 2e 32 2e 64  a7d04fb111-1.2.d
1050: 62 5d 20 22 22 20 54 69 63 6b 73 20 4c 6f 63 61  b] "" Ticks Loca
1060: 6c 20 5c 0d 0a 20 20 20 20 20 20 42 69 6e 64 44  l \..      BindD
1070: 61 74 65 54 69 6d 65 57 69 74 68 4b 69 6e 64 0d  ateTimeWithKind.
1080: 0a 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 6c 61  .} -body {..  la
1090: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71  ppend result [sq
10a0: 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75  l execute -execu
10b0: 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 22 53  te scalar $db "S
10c0: 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20  ELECT ?;" \..   
10d0: 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31 20     [list param1 
10e0: 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74 61 6e  DateTime $instan
10f0: 63 65 56 61 6c 75 65 28 30 29 5d 5d 0d 0a 0d 0a  ceValue(0)]]....
1100: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
1110: 20 5b 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65   [sql execute -e
1120: 78 65 63 75 74 65 20 73 63 61 6c 61 72 20 24 64  xecute scalar $d
1130: 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d  b "SELECT ?;" \.
1140: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
1150: 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e  am1 DateTime $in
1160: 73 74 61 6e 63 65 56 61 6c 75 65 28 31 29 5d 5d  stanceValue(1)]]
1170: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
1180: 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63 75 74  sult [sql execut
1190: 65 20 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61  e -execute scala
11a0: 72 20 24 64 62 20 22 53 45 4c 45 43 54 20 3f 3b  r $db "SELECT ?;
11b0: 22 20 5c 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74  " \..      [list
11c0: 20 70 61 72 61 6d 31 20 44 61 74 65 54 69 6d 65   param1 DateTime
11d0: 20 24 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 28   $instanceValue(
11e0: 32 29 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e  2)]]....  lappen
11f0: 64 20 72 65 73 75 6c 74 20 5b 65 78 70 72 20 7b  d result [expr {
1200: 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20  [lindex $result 
1210: 30 5d 20 3d 3d 20 5b 6c 69 6e 64 65 78 20 24 72  0] == [lindex $r
1220: 65 73 75 6c 74 20 31 5d 7d 5d 0d 0a 20 20 6c 61  esult 1]}]..  la
1230: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78  ppend result [ex
1240: 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73  pr {[lindex $res
1250: 75 6c 74 20 30 5d 20 3d 3d 20 5b 6c 69 6e 64 65  ult 0] == [linde
1260: 78 20 24 72 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a  x $result 2]}]..
1270: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
1280: 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20   [expr {[lindex 
1290: 24 72 65 73 75 6c 74 20 31 5d 20 3d 3d 20 5b 6c  $result 1] == [l
12a0: 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 32 5d  index $result 2]
12b0: 7d 5d 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b  }]..} -cleanup {
12c0: 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20 24 66  ..  cleanupDb $f
12d0: 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75 6e 73  ileName....  uns
12e0: 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 72  et -nocomplain r
12f0: 65 73 75 6c 74 20 64 62 20 66 69 6c 65 4e 61 6d  esult db fileNam
1300: 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74  e..} -constraint
1310: 73 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e 64  s {eagle command
1320: 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f 42 75 67 32  .object monoBug2
1330: 38 20 6d 6f 6e 6f 42 75 67 34 32 20 63 6f 6d 6d  8 monoBug42 comm
1340: 61 6e 64 2e 73 71 6c 5c 0d 0a 63 6f 6d 70 69 6c  and.sql\..compil
1350: 65 2e 44 41 54 41 20 53 51 4c 69 74 65 20 53 79  e.DATA SQLite Sy
1360: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
1370: 7d 20 2d 72 65 73 75 6c 74 20 5b 73 75 62 73 74  } -result [subst
1380: 20 2d 6e 6f 63 6f 6d 6d 61 6e 64 73 20 5c 0d 0a   -nocommands \..
1390: 2d 6e 6f 62 61 63 6b 73 6c 61 73 68 65 73 20 7b  -nobackslashes {
13a0: 24 74 69 63 6b 73 56 61 6c 75 65 28 30 29 20 24  $ticksValue(0) $
13b0: 74 69 63 6b 73 56 61 6c 75 65 28 32 29 20 24 74  ticksValue(2) $t
13c0: 69 63 6b 73 56 61 6c 75 65 28 32 29 20 46 61 6c  icksValue(2) Fal
13d0: 73 65 20 46 61 6c 73 65 20 54 72 75 65 7d 5d 7d  se False True}]}
13e0: 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23  ....############
13f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1400: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1410: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1420: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1430: 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74 20 7b  ###....runTest {
1440: 74 65 73 74 20 74 6b 74 2d 61 37 64 30 34 66 62  test tkt-a7d04fb
1450: 31 31 31 2d 31 2e 33 20 7b 42 69 6e 64 20 44 61  111-1.3 {Bind Da
1460: 74 65 54 69 6d 65 20 55 74 63 20 49 53 4f 38 36  teTime Utc ISO86
1470: 30 31 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20  01} -setup {..  
1480: 73 65 74 75 70 44 62 20 5b 73 65 74 20 66 69 6c  setupDb [set fil
1490: 65 4e 61 6d 65 20 74 6b 74 2d 61 37 64 30 34 66  eName tkt-a7d04f
14a0: 62 31 31 31 2d 31 2e 33 2e 64 62 5d 20 22 22 20  b111-1.3.db] "" 
14b0: 49 53 4f 38 36 30 31 20 55 74 63 20 5c 0d 0a 20  ISO8601 Utc \.. 
14c0: 20 20 20 20 20 42 69 6e 64 44 61 74 65 54 69 6d       BindDateTim
14d0: 65 57 69 74 68 4b 69 6e 64 0d 0a 7d 20 2d 62 6f  eWithKind..} -bo
14e0: 64 79 20 7b 0d 0a 20 20 6c 61 70 70 65 6e 64 20  dy {..  lappend 
14f0: 72 65 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63  result [sql exec
1500: 75 74 65 20 2d 65 78 65 63 75 74 65 20 73 63 61  ute -execute sca
1510: 6c 61 72 20 24 64 62 20 22 53 45 4c 45 43 54 20  lar $db "SELECT 
1520: 3f 3b 22 20 5c 0d 0a 20 20 20 20 20 20 5b 6c 69  ?;" \..      [li
1530: 73 74 20 70 61 72 61 6d 31 20 44 61 74 65 54 69  st param1 DateTi
1540: 6d 65 20 24 69 6e 73 74 61 6e 63 65 56 61 6c 75  me $instanceValu
1550: 65 28 30 29 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70  e(0)]]....  lapp
1560: 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71 6c 20  end result [sql 
1570: 65 78 65 63 75 74 65 20 2d 65 78 65 63 75 74 65  execute -execute
1580: 20 73 63 61 6c 61 72 20 24 64 62 20 22 53 45 4c   scalar $db "SEL
1590: 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20 20 20  ECT ?;" \..     
15a0: 20 5b 6c 69 73 74 20 70 61 72 61 6d 31 20 44 61   [list param1 Da
15b0: 74 65 54 69 6d 65 20 24 69 6e 73 74 61 6e 63 65  teTime $instance
15c0: 56 61 6c 75 65 28 31 29 5d 5d 0d 0a 0d 0a 20 20  Value(1)]]....  
15d0: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
15e0: 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65  sql execute -exe
15f0: 63 75 74 65 20 73 63 61 6c 61 72 20 24 64 62 20  cute scalar $db 
1600: 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20  "SELECT ?;" \.. 
1610: 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d       [list param
1620: 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74  1 DateTime $inst
1630: 61 6e 63 65 56 61 6c 75 65 28 32 29 5d 5d 0d 0a  anceValue(2)]]..
1640: 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75  ..  lappend resu
1650: 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65  lt [expr {[linde
1660: 78 20 24 72 65 73 75 6c 74 20 30 5d 20 65 71 20  x $result 0] eq 
1670: 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20  [lindex $result 
1680: 31 5d 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e 64 20  1]}]..  lappend 
1690: 72 65 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c  result [expr {[l
16a0: 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 30 5d  index $result 0]
16b0: 20 65 71 20 5b 6c 69 6e 64 65 78 20 24 72 65 73   eq [lindex $res
16c0: 75 6c 74 20 32 5d 7d 5d 0d 0a 20 20 6c 61 70 70  ult 2]}]..  lapp
16d0: 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78 70 72  end result [expr
16e0: 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c   {[lindex $resul
16f0: 74 20 31 5d 20 65 71 20 5b 6c 69 6e 64 65 78 20  t 1] eq [lindex 
1700: 24 72 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a 7d 20  $result 2]}]..} 
1710: 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 63 6c  -cleanup {..  cl
1720: 65 61 6e 75 70 44 62 20 24 66 69 6c 65 4e 61 6d  eanupDb $fileNam
1730: 65 0d 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f  e....  unset -no
1740: 63 6f 6d 70 6c 61 69 6e 20 72 65 73 75 6c 74 20  complain result 
1750: 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a 7d 20 2d  db fileName..} -
1760: 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b 65 61 67  constraints {eag
1770: 6c 65 20 63 6f 6d 6d 61 6e 64 2e 6f 62 6a 65 63  le command.objec
1780: 74 20 6d 6f 6e 6f 42 75 67 32 38 20 6d 6f 6e 6f  t monoBug28 mono
1790: 42 75 67 34 32 20 63 6f 6d 6d 61 6e 64 2e 73 71  Bug42 command.sq
17a0: 6c 5c 0d 0a 63 6f 6d 70 69 6c 65 2e 44 41 54 41  l\..compile.DATA
17b0: 20 53 51 4c 69 74 65 20 53 79 73 74 65 6d 2e 44   SQLite System.D
17c0: 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d 72 65 73  ata.SQLite} -res
17d0: 75 6c 74 20 5b 73 75 62 73 74 20 2d 6e 6f 63 6f  ult [subst -noco
17e0: 6d 6d 61 6e 64 73 20 5c 0d 0a 2d 6e 6f 62 61 63  mmands \..-nobac
17f0: 6b 73 6c 61 73 68 65 73 20 7b 7b 24 69 73 6f 38  kslashes {{$iso8
1800: 36 30 31 56 61 6c 75 65 28 31 29 7d 20 7b 24 69  601Value(1)} {$i
1810: 73 6f 38 36 30 31 56 61 6c 75 65 28 31 29 7d 20  so8601Value(1)} 
1820: 7b 24 69 73 6f 38 36 30 31 56 61 6c 75 65 28 31  {$iso8601Value(1
1830: 29 7d 20 54 72 75 65 5c 0d 0a 54 72 75 65 20 54  )} True\..True T
1840: 72 75 65 7d 5d 7d 0d 0a 0d 0a 23 23 23 23 23 23  rue}]}....######
1850: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1860: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1870: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1880: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1890: 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e  #########....run
18a0: 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 61  Test {test tkt-a
18b0: 37 64 30 34 66 62 31 31 31 2d 31 2e 34 20 7b 42  7d04fb111-1.4 {B
18c0: 69 6e 64 20 44 61 74 65 54 69 6d 65 20 4c 6f 63  ind DateTime Loc
18d0: 61 6c 20 49 53 4f 38 36 30 31 7d 20 2d 73 65 74  al ISO8601} -set
18e0: 75 70 20 7b 0d 0a 20 20 73 65 74 75 70 44 62 20  up {..  setupDb 
18f0: 5b 73 65 74 20 66 69 6c 65 4e 61 6d 65 20 74 6b  [set fileName tk
1900: 74 2d 61 37 64 30 34 66 62 31 31 31 2d 31 2e 34  t-a7d04fb111-1.4
1910: 2e 64 62 5d 20 22 22 20 49 53 4f 38 36 30 31 20  .db] "" ISO8601 
1920: 4c 6f 63 61 6c 20 5c 0d 0a 20 20 20 20 20 20 42  Local \..      B
1930: 69 6e 64 44 61 74 65 54 69 6d 65 57 69 74 68 4b  indDateTimeWithK
1940: 69 6e 64 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d 0a  ind..} -body {..
1950: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
1960: 20 5b 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65   [sql execute -e
1970: 78 65 63 75 74 65 20 73 63 61 6c 61 72 20 24 64  xecute scalar $d
1980: 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d  b "SELECT ?;" \.
1990: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
19a0: 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e  am1 DateTime $in
19b0: 73 74 61 6e 63 65 56 61 6c 75 65 28 30 29 5d 5d  stanceValue(0)]]
19c0: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
19d0: 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63 75 74  sult [sql execut
19e0: 65 20 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61  e -execute scala
19f0: 72 20 24 64 62 20 22 53 45 4c 45 43 54 20 3f 3b  r $db "SELECT ?;
1a00: 22 20 5c 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74  " \..      [list
1a10: 20 70 61 72 61 6d 31 20 44 61 74 65 54 69 6d 65   param1 DateTime
1a20: 20 24 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 28   $instanceValue(
1a30: 31 29 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e  1)]]....  lappen
1a40: 64 20 72 65 73 75 6c 74 20 5b 73 71 6c 20 65 78  d result [sql ex
1a50: 65 63 75 74 65 20 2d 65 78 65 63 75 74 65 20 73  ecute -execute s
1a60: 63 61 6c 61 72 20 24 64 62 20 22 53 45 4c 45 43  calar $db "SELEC
1a70: 54 20 3f 3b 22 20 5c 0d 0a 20 20 20 20 20 20 5b  T ?;" \..      [
1a80: 6c 69 73 74 20 70 61 72 61 6d 31 20 44 61 74 65  list param1 Date
1a90: 54 69 6d 65 20 24 69 6e 73 74 61 6e 63 65 56 61  Time $instanceVa
1aa0: 6c 75 65 28 32 29 5d 5d 0d 0a 0d 0a 20 20 6c 61  lue(2)]]....  la
1ab0: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78  ppend result [ex
1ac0: 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73  pr {[lindex $res
1ad0: 75 6c 74 20 30 5d 20 65 71 20 5b 6c 69 6e 64 65  ult 0] eq [linde
1ae0: 78 20 24 72 65 73 75 6c 74 20 31 5d 7d 5d 0d 0a  x $result 1]}]..
1af0: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
1b00: 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20   [expr {[lindex 
1b10: 24 72 65 73 75 6c 74 20 30 5d 20 65 71 20 5b 6c  $result 0] eq [l
1b20: 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 32 5d  index $result 2]
1b30: 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  }]..  lappend re
1b40: 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69 6e  sult [expr {[lin
1b50: 64 65 78 20 24 72 65 73 75 6c 74 20 31 5d 20 65  dex $result 1] e
1b60: 71 20 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c  q [lindex $resul
1b70: 74 20 32 5d 7d 5d 0d 0a 7d 20 2d 63 6c 65 61 6e  t 2]}]..} -clean
1b80: 75 70 20 7b 0d 0a 20 20 63 6c 65 61 6e 75 70 44  up {..  cleanupD
1b90: 62 20 24 66 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20  b $fileName.... 
1ba0: 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61   unset -nocompla
1bb0: 69 6e 20 72 65 73 75 6c 74 20 64 62 20 66 69 6c  in result db fil
1bc0: 65 4e 61 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72  eName..} -constr
1bd0: 61 69 6e 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d  aints {eagle com
1be0: 6d 61 6e 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f  mand.object mono
1bf0: 42 75 67 32 38 20 6d 6f 6e 6f 42 75 67 34 32 20  Bug28 monoBug42 
1c00: 63 6f 6d 6d 61 6e 64 2e 73 71 6c 5c 0d 0a 63 6f  command.sql\..co
1c10: 6d 70 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74  mpile.DATA SQLit
1c20: 65 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51  e System.Data.SQ
1c30: 4c 69 74 65 7d 20 2d 72 65 73 75 6c 74 20 5b 73  Lite} -result [s
1c40: 75 62 73 74 20 2d 6e 6f 63 6f 6d 6d 61 6e 64 73  ubst -nocommands
1c50: 20 5c 0d 0a 2d 6e 6f 62 61 63 6b 73 6c 61 73 68   \..-nobackslash
1c60: 65 73 20 7b 7b 24 69 73 6f 38 36 30 31 56 61 6c  es {{$iso8601Val
1c70: 75 65 28 30 29 7d 20 7b 24 69 73 6f 38 36 30 31  ue(0)} {$iso8601
1c80: 56 61 6c 75 65 28 32 29 7d 20 7b 24 69 73 6f 38  Value(2)} {$iso8
1c90: 36 30 31 56 61 6c 75 65 28 32 29 7d 20 46 61 6c  601Value(2)} Fal
1ca0: 73 65 5c 0d 0a 46 61 6c 73 65 20 54 72 75 65 7d  se\..False True}
1cb0: 5d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  ]}....##########
1cc0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1cd0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1ce0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1cf0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1d00: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74  #####....runTest
1d10: 20 7b 74 65 73 74 20 74 6b 74 2d 61 37 64 30 34   {test tkt-a7d04
1d20: 66 62 31 31 31 2d 31 2e 35 20 7b 42 69 6e 64 20  fb111-1.5 {Bind 
1d30: 44 61 74 65 54 69 6d 65 20 55 74 63 20 4a 75 6c  DateTime Utc Jul
1d40: 69 61 6e 44 61 79 7d 20 2d 73 65 74 75 70 20 7b  ianDay} -setup {
1d50: 0d 0a 20 20 73 65 74 75 70 44 62 20 5b 73 65 74  ..  setupDb [set
1d60: 20 66 69 6c 65 4e 61 6d 65 20 74 6b 74 2d 61 37   fileName tkt-a7
1d70: 64 30 34 66 62 31 31 31 2d 31 2e 35 2e 64 62 5d  d04fb111-1.5.db]
1d80: 20 22 22 20 4a 75 6c 69 61 6e 44 61 79 20 55 74   "" JulianDay Ut
1d90: 63 20 5c 0d 0a 20 20 20 20 20 20 42 69 6e 64 44  c \..      BindD
1da0: 61 74 65 54 69 6d 65 57 69 74 68 4b 69 6e 64 0d  ateTimeWithKind.
1db0: 0a 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 6c 61  .} -body {..  la
1dc0: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71  ppend result [sq
1dd0: 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75  l execute -execu
1de0: 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 22 53  te scalar $db "S
1df0: 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20  ELECT ?;" \..   
1e00: 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31 20     [list param1 
1e10: 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74 61 6e  DateTime $instan
1e20: 63 65 56 61 6c 75 65 28 30 29 5d 5d 0d 0a 0d 0a  ceValue(0)]]....
1e30: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
1e40: 20 5b 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65   [sql execute -e
1e50: 78 65 63 75 74 65 20 73 63 61 6c 61 72 20 24 64  xecute scalar $d
1e60: 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d  b "SELECT ?;" \.
1e70: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
1e80: 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e  am1 DateTime $in
1e90: 73 74 61 6e 63 65 56 61 6c 75 65 28 31 29 5d 5d  stanceValue(1)]]
1ea0: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
1eb0: 73 75 6c 74 20 5b 65 78 70 72 20 7b 72 6f 75 6e  sult [expr {roun
1ec0: 64 32 28 5b 73 71 6c 20 65 78 65 63 75 74 65 20  d2([sql execute 
1ed0: 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61 72 20  -execute scalar 
1ee0: 24 64 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20  $db "SELECT ?;" 
1ef0: 5c 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70  \..      [list p
1f00: 61 72 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24  aram1 DateTime $
1f10: 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 28 32 29  instanceValue(2)
1f20: 5d 5d 2c 20 32 29 7d 5d 0d 0a 0d 0a 20 20 6c 61  ]], 2)}]....  la
1f30: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78  ppend result [ex
1f40: 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73  pr {[lindex $res
1f50: 75 6c 74 20 30 5d 20 3d 3d 20 5b 6c 69 6e 64 65  ult 0] == [linde
1f60: 78 20 24 72 65 73 75 6c 74 20 31 5d 7d 5d 0d 0a  x $result 1]}]..
1f70: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
1f80: 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20   [expr {[lindex 
1f90: 24 72 65 73 75 6c 74 20 30 5d 20 3d 3d 20 5b 6c  $result 0] == [l
1fa0: 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 32 5d  index $result 2]
1fb0: 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  }]..  lappend re
1fc0: 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69 6e  sult [expr {[lin
1fd0: 64 65 78 20 24 72 65 73 75 6c 74 20 31 5d 20 3d  dex $result 1] =
1fe0: 3d 20 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c  = [lindex $resul
1ff0: 74 20 32 5d 7d 5d 0d 0a 7d 20 2d 63 6c 65 61 6e  t 2]}]..} -clean
2000: 75 70 20 7b 0d 0a 20 20 63 6c 65 61 6e 75 70 44  up {..  cleanupD
2010: 62 20 24 66 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20  b $fileName.... 
2020: 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61   unset -nocompla
2030: 69 6e 20 72 65 73 75 6c 74 20 64 62 20 66 69 6c  in result db fil
2040: 65 4e 61 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72  eName..} -constr
2050: 61 69 6e 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d  aints {eagle com
2060: 6d 61 6e 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f  mand.object mono
2070: 42 75 67 32 38 20 6d 6f 6e 6f 42 75 67 34 32 20  Bug28 monoBug42 
2080: 63 6f 6d 6d 61 6e 64 2e 73 71 6c 5c 0d 0a 63 6f  command.sql\..co
2090: 6d 70 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74  mpile.DATA SQLit
20a0: 65 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51  e System.Data.SQ
20b0: 4c 69 74 65 7d 20 2d 72 65 73 75 6c 74 20 5b 73  Lite} -result [s
20c0: 75 62 73 74 20 2d 6e 6f 63 6f 6d 6d 61 6e 64 73  ubst -nocommands
20d0: 20 5c 0d 0a 2d 6e 6f 62 61 63 6b 73 6c 61 73 68   \..-nobackslash
20e0: 65 73 20 7b 24 6a 75 6c 69 61 6e 44 61 79 56 61  es {$julianDayVa
20f0: 6c 75 65 28 30 29 20 24 6a 75 6c 69 61 6e 44 61  lue(0) $julianDa
2100: 79 56 61 6c 75 65 28 31 29 20 24 6a 75 6c 69 61  yValue(1) $julia
2110: 6e 44 61 79 56 61 6c 75 65 28 31 29 20 54 72 75  nDayValue(1) Tru
2120: 65 5c 0d 0a 54 72 75 65 20 54 72 75 65 7d 5d 7d  e\..True True}]}
2130: 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23  ....############
2140: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2150: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2160: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2170: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2180: 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74 20 7b  ###....runTest {
2190: 74 65 73 74 20 74 6b 74 2d 61 37 64 30 34 66 62  test tkt-a7d04fb
21a0: 31 31 31 2d 31 2e 36 20 7b 42 69 6e 64 20 44 61  111-1.6 {Bind Da
21b0: 74 65 54 69 6d 65 20 4c 6f 63 61 6c 20 4a 75 6c  teTime Local Jul
21c0: 69 61 6e 44 61 79 7d 20 2d 73 65 74 75 70 20 7b  ianDay} -setup {
21d0: 0d 0a 20 20 73 65 74 75 70 44 62 20 5b 73 65 74  ..  setupDb [set
21e0: 20 66 69 6c 65 4e 61 6d 65 20 74 6b 74 2d 61 37   fileName tkt-a7
21f0: 64 30 34 66 62 31 31 31 2d 31 2e 36 2e 64 62 5d  d04fb111-1.6.db]
2200: 20 22 22 20 4a 75 6c 69 61 6e 44 61 79 20 4c 6f   "" JulianDay Lo
2210: 63 61 6c 20 5c 0d 0a 20 20 20 20 20 20 42 69 6e  cal \..      Bin
2220: 64 44 61 74 65 54 69 6d 65 57 69 74 68 4b 69 6e  dDateTimeWithKin
2230: 64 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20  d..} -body {..  
2240: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
2250: 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65  sql execute -exe
2260: 63 75 74 65 20 73 63 61 6c 61 72 20 24 64 62 20  cute scalar $db 
2270: 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20  "SELECT ?;" \.. 
2280: 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d       [list param
2290: 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74  1 DateTime $inst
22a0: 61 6e 63 65 56 61 6c 75 65 28 30 29 5d 5d 0d 0a  anceValue(0)]]..
22b0: 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75  ..  lappend resu
22c0: 6c 74 20 5b 73 71 6c 20 65 78 65 63 75 74 65 20  lt [sql execute 
22d0: 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61 72 20  -execute scalar 
22e0: 24 64 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20  $db "SELECT ?;" 
22f0: 5c 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70  \..      [list p
2300: 61 72 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24  aram1 DateTime $
2310: 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 28 31 29  instanceValue(1)
2320: 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20  ]]....  lappend 
2330: 72 65 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63  result [sql exec
2340: 75 74 65 20 2d 65 78 65 63 75 74 65 20 73 63 61  ute -execute sca
2350: 6c 61 72 20 24 64 62 20 22 53 45 4c 45 43 54 20  lar $db "SELECT 
2360: 3f 3b 22 20 5c 0d 0a 20 20 20 20 20 20 5b 6c 69  ?;" \..      [li
2370: 73 74 20 70 61 72 61 6d 31 20 44 61 74 65 54 69  st param1 DateTi
2380: 6d 65 20 24 69 6e 73 74 61 6e 63 65 56 61 6c 75  me $instanceValu
2390: 65 28 32 29 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70  e(2)]]....  lapp
23a0: 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78 70 72  end result [expr
23b0: 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c   {[lindex $resul
23c0: 74 20 30 5d 20 3d 3d 20 5b 6c 69 6e 64 65 78 20  t 0] == [lindex 
23d0: 24 72 65 73 75 6c 74 20 31 5d 7d 5d 0d 0a 20 20  $result 1]}]..  
23e0: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
23f0: 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72  expr {[lindex $r
2400: 65 73 75 6c 74 20 30 5d 20 3d 3d 20 5b 6c 69 6e  esult 0] == [lin
2410: 64 65 78 20 24 72 65 73 75 6c 74 20 32 5d 7d 5d  dex $result 2]}]
2420: 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75  ..  lappend resu
2430: 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65  lt [expr {[linde
2440: 78 20 24 72 65 73 75 6c 74 20 31 5d 20 3d 3d 20  x $result 1] == 
2450: 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20  [lindex $result 
2460: 32 5d 7d 5d 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70  2]}]..} -cleanup
2470: 20 7b 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20   {..  cleanupDb 
2480: 24 66 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75  $fileName....  u
2490: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
24a0: 20 72 65 73 75 6c 74 20 64 62 20 66 69 6c 65 4e   result db fileN
24b0: 61 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69  ame..} -constrai
24c0: 6e 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61  nts {eagle comma
24d0: 6e 64 2e 6f 62 6a 65 63 74 20 6d 6f 6e 6f 42 75  nd.object monoBu
24e0: 67 32 38 20 6d 6f 6e 6f 42 75 67 34 32 20 63 6f  g28 monoBug42 co
24f0: 6d 6d 61 6e 64 2e 73 71 6c 5c 0d 0a 63 6f 6d 70  mmand.sql\..comp
2500: 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74 65 20  ile.DATA SQLite 
2510: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
2520: 74 65 7d 20 2d 72 65 73 75 6c 74 20 5b 73 75 62  te} -result [sub
2530: 73 74 20 2d 6e 6f 63 6f 6d 6d 61 6e 64 73 20 5c  st -nocommands \
2540: 0d 0a 2d 6e 6f 62 61 63 6b 73 6c 61 73 68 65 73  ..-nobackslashes
2550: 20 7b 24 6a 75 6c 69 61 6e 44 61 79 56 61 6c 75   {$julianDayValu
2560: 65 28 30 29 20 24 6a 75 6c 69 61 6e 44 61 79 56  e(0) $julianDayV
2570: 61 6c 75 65 28 32 29 20 24 6a 75 6c 69 61 6e 44  alue(2) $julianD
2580: 61 79 56 61 6c 75 65 28 32 29 20 46 61 6c 73 65  ayValue(2) False
2590: 5c 0d 0a 46 61 6c 73 65 20 54 72 75 65 7d 5d 7d  \..False True}]}
25a0: 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23  ....############
25b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
25c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
25d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
25e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
25f0: 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74 20 7b  ###....runTest {
2600: 74 65 73 74 20 74 6b 74 2d 61 37 64 30 34 66 62  test tkt-a7d04fb
2610: 31 31 31 2d 31 2e 37 20 7b 42 69 6e 64 20 44 61  111-1.7 {Bind Da
2620: 74 65 54 69 6d 65 20 55 74 63 20 55 6e 69 78 45  teTime Utc UnixE
2630: 70 6f 63 68 7d 20 2d 73 65 74 75 70 20 7b 0d 0a  poch} -setup {..
2640: 20 20 73 65 74 75 70 44 62 20 5b 73 65 74 20 66    setupDb [set f
2650: 69 6c 65 4e 61 6d 65 20 74 6b 74 2d 61 37 64 30  ileName tkt-a7d0
2660: 34 66 62 31 31 31 2d 31 2e 37 2e 64 62 5d 20 22  4fb111-1.7.db] "
2670: 22 20 55 6e 69 78 45 70 6f 63 68 20 55 74 63 20  " UnixEpoch Utc 
2680: 5c 0d 0a 20 20 20 20 20 20 42 69 6e 64 44 61 74  \..      BindDat
2690: 65 54 69 6d 65 57 69 74 68 4b 69 6e 64 0d 0a 7d  eTimeWithKind..}
26a0: 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 6c 61 70 70   -body {..  lapp
26b0: 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71 6c 20  end result [sql 
26c0: 65 78 65 63 75 74 65 20 2d 65 78 65 63 75 74 65  execute -execute
26d0: 20 73 63 61 6c 61 72 20 24 64 62 20 22 53 45 4c   scalar $db "SEL
26e0: 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20 20 20  ECT ?;" \..     
26f0: 20 5b 6c 69 73 74 20 70 61 72 61 6d 31 20 44 61   [list param1 Da
2700: 74 65 54 69 6d 65 20 24 69 6e 73 74 61 6e 63 65  teTime $instance
2710: 56 61 6c 75 65 28 30 29 5d 5d 0d 0a 0d 0a 20 20  Value(0)]]....  
2720: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
2730: 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65  sql execute -exe
2740: 63 75 74 65 20 73 63 61 6c 61 72 20 24 64 62 20  cute scalar $db 
2750: 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20  "SELECT ?;" \.. 
2760: 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d       [list param
2770: 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74  1 DateTime $inst
2780: 61 6e 63 65 56 61 6c 75 65 28 31 29 5d 5d 0d 0a  anceValue(1)]]..
2790: 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75  ..  lappend resu
27a0: 6c 74 20 5b 73 71 6c 20 65 78 65 63 75 74 65 20  lt [sql execute 
27b0: 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61 72 20  -execute scalar 
27c0: 24 64 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20  $db "SELECT ?;" 
27d0: 5c 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70  \..      [list p
27e0: 61 72 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24  aram1 DateTime $
27f0: 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 28 32 29  instanceValue(2)
2800: 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20  ]]....  lappend 
2810: 72 65 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c  result [expr {[l
2820: 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 30 5d  index $result 0]
2830: 20 3d 3d 20 5b 6c 69 6e 64 65 78 20 24 72 65 73   == [lindex $res
2840: 75 6c 74 20 31 5d 7d 5d 0d 0a 20 20 6c 61 70 70  ult 1]}]..  lapp
2850: 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78 70 72  end result [expr
2860: 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c   {[lindex $resul
2870: 74 20 30 5d 20 3d 3d 20 5b 6c 69 6e 64 65 78 20  t 0] == [lindex 
2880: 24 72 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a 20 20  $result 2]}]..  
2890: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
28a0: 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72  expr {[lindex $r
28b0: 65 73 75 6c 74 20 31 5d 20 3d 3d 20 5b 6c 69 6e  esult 1] == [lin
28c0: 64 65 78 20 24 72 65 73 75 6c 74 20 32 5d 7d 5d  dex $result 2]}]
28d0: 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a  ..} -cleanup {..
28e0: 20 20 63 6c 65 61 6e 75 70 44 62 20 24 66 69 6c    cleanupDb $fil
28f0: 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75 6e 73 65 74  eName....  unset
2900: 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 72 65 73   -nocomplain res
2910: 75 6c 74 20 64 62 20 66 69 6c 65 4e 61 6d 65 0d  ult db fileName.
2920: 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20  .} -constraints 
2930: 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e 6f  {eagle command.o
2940: 62 6a 65 63 74 20 6d 6f 6e 6f 42 75 67 32 38 20  bject monoBug28 
2950: 6d 6f 6e 6f 42 75 67 34 32 20 63 6f 6d 6d 61 6e  monoBug42 comman
2960: 64 2e 73 71 6c 5c 0d 0a 63 6f 6d 70 69 6c 65 2e  d.sql\..compile.
2970: 44 41 54 41 20 53 51 4c 69 74 65 20 53 79 73 74  DATA SQLite Syst
2980: 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d 20  em.Data.SQLite} 
2990: 2d 72 65 73 75 6c 74 20 5b 73 75 62 73 74 20 2d  -result [subst -
29a0: 6e 6f 63 6f 6d 6d 61 6e 64 73 20 5c 0d 0a 2d 6e  nocommands \..-n
29b0: 6f 62 61 63 6b 73 6c 61 73 68 65 73 20 7b 24 75  obackslashes {$u
29c0: 6e 69 78 45 70 6f 63 68 56 61 6c 75 65 28 30 29  nixEpochValue(0)
29d0: 20 24 75 6e 69 78 45 70 6f 63 68 56 61 6c 75 65   $unixEpochValue
29e0: 28 31 29 20 24 75 6e 69 78 45 70 6f 63 68 56 61  (1) $unixEpochVa
29f0: 6c 75 65 28 31 29 20 54 72 75 65 5c 0d 0a 54 72  lue(1) True\..Tr
2a00: 75 65 20 54 72 75 65 7d 5d 7d 0d 0a 0d 0a 23 23  ue True}]}....##
2a10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2a20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2a30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2a40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2a50: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d  #############...
2a60: 0a 72 75 6e 54 65 73 74 20 7b 74 65 73 74 20 74  .runTest {test t
2a70: 6b 74 2d 61 37 64 30 34 66 62 31 31 31 2d 31 2e  kt-a7d04fb111-1.
2a80: 38 20 7b 42 69 6e 64 20 44 61 74 65 54 69 6d 65  8 {Bind DateTime
2a90: 20 4c 6f 63 61 6c 20 55 6e 69 78 45 70 6f 63 68   Local UnixEpoch
2aa0: 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20 73 65  } -setup {..  se
2ab0: 74 75 70 44 62 20 5b 73 65 74 20 66 69 6c 65 4e  tupDb [set fileN
2ac0: 61 6d 65 20 74 6b 74 2d 61 37 64 30 34 66 62 31  ame tkt-a7d04fb1
2ad0: 31 31 2d 31 2e 38 2e 64 62 5d 20 22 22 20 55 6e  11-1.8.db] "" Un
2ae0: 69 78 45 70 6f 63 68 20 4c 6f 63 61 6c 20 5c 0d  ixEpoch Local \.
2af0: 0a 20 20 20 20 20 20 42 69 6e 64 44 61 74 65 54  .      BindDateT
2b00: 69 6d 65 57 69 74 68 4b 69 6e 64 0d 0a 7d 20 2d  imeWithKind..} -
2b10: 62 6f 64 79 20 7b 0d 0a 20 20 6c 61 70 70 65 6e  body {..  lappen
2b20: 64 20 72 65 73 75 6c 74 20 5b 73 71 6c 20 65 78  d result [sql ex
2b30: 65 63 75 74 65 20 2d 65 78 65 63 75 74 65 20 73  ecute -execute s
2b40: 63 61 6c 61 72 20 24 64 62 20 22 53 45 4c 45 43  calar $db "SELEC
2b50: 54 20 3f 3b 22 20 5c 0d 0a 20 20 20 20 20 20 5b  T ?;" \..      [
2b60: 6c 69 73 74 20 70 61 72 61 6d 31 20 44 61 74 65  list param1 Date
2b70: 54 69 6d 65 20 24 69 6e 73 74 61 6e 63 65 56 61  Time $instanceVa
2b80: 6c 75 65 28 30 29 5d 5d 0d 0a 0d 0a 20 20 6c 61  lue(0)]]....  la
2b90: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71  ppend result [sq
2ba0: 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75  l execute -execu
2bb0: 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 22 53  te scalar $db "S
2bc0: 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20  ELECT ?;" \..   
2bd0: 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31 20     [list param1 
2be0: 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74 61 6e  DateTime $instan
2bf0: 63 65 56 61 6c 75 65 28 31 29 5d 5d 0d 0a 0d 0a  ceValue(1)]]....
2c00: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
2c10: 20 5b 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65   [sql execute -e
2c20: 78 65 63 75 74 65 20 73 63 61 6c 61 72 20 24 64  xecute scalar $d
2c30: 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d  b "SELECT ?;" \.
2c40: 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72  .      [list par
2c50: 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e  am1 DateTime $in
2c60: 73 74 61 6e 63 65 56 61 6c 75 65 28 32 29 5d 5d  stanceValue(2)]]
2c70: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
2c80: 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69 6e  sult [expr {[lin
2c90: 64 65 78 20 24 72 65 73 75 6c 74 20 30 5d 20 3d  dex $result 0] =
2ca0: 3d 20 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c  = [lindex $resul
2cb0: 74 20 31 5d 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e  t 1]}]..  lappen
2cc0: 64 20 72 65 73 75 6c 74 20 5b 65 78 70 72 20 7b  d result [expr {
2cd0: 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20  [lindex $result 
2ce0: 30 5d 20 3d 3d 20 5b 6c 69 6e 64 65 78 20 24 72  0] == [lindex $r
2cf0: 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a 20 20 6c 61  esult 2]}]..  la
2d00: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78  ppend result [ex
2d10: 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73  pr {[lindex $res
2d20: 75 6c 74 20 31 5d 20 3d 3d 20 5b 6c 69 6e 64 65  ult 1] == [linde
2d30: 78 20 24 72 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a  x $result 2]}]..
2d40: 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20  } -cleanup {..  
2d50: 63 6c 65 61 6e 75 70 44 62 20 24 66 69 6c 65 4e  cleanupDb $fileN
2d60: 61 6d 65 0d 0a 0d 0a 20 20 75 6e 73 65 74 20 2d  ame....  unset -
2d70: 6e 6f 63 6f 6d 70 6c 61 69 6e 20 72 65 73 75 6c  nocomplain resul
2d80: 74 20 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a 7d  t db fileName..}
2d90: 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b 65   -constraints {e
2da0: 61 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e 6f 62 6a  agle command.obj
2db0: 65 63 74 20 6d 6f 6e 6f 42 75 67 32 38 20 6d 6f  ect monoBug28 mo
2dc0: 6e 6f 42 75 67 34 32 20 63 6f 6d 6d 61 6e 64 2e  noBug42 command.
2dd0: 73 71 6c 5c 0d 0a 63 6f 6d 70 69 6c 65 2e 44 41  sql\..compile.DA
2de0: 54 41 20 53 51 4c 69 74 65 20 53 79 73 74 65 6d  TA SQLite System
2df0: 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d 72  .Data.SQLite} -r
2e00: 65 73 75 6c 74 20 5b 73 75 62 73 74 20 2d 6e 6f  esult [subst -no
2e10: 63 6f 6d 6d 61 6e 64 73 20 5c 0d 0a 2d 6e 6f 62  commands \..-nob
2e20: 61 63 6b 73 6c 61 73 68 65 73 20 7b 24 75 6e 69  ackslashes {$uni
2e30: 78 45 70 6f 63 68 56 61 6c 75 65 28 30 29 20 24  xEpochValue(0) $
2e40: 75 6e 69 78 45 70 6f 63 68 56 61 6c 75 65 28 32  unixEpochValue(2
2e50: 29 20 24 75 6e 69 78 45 70 6f 63 68 56 61 6c 75  ) $unixEpochValu
2e60: 65 28 32 29 20 46 61 6c 73 65 5c 0d 0a 46 61 6c  e(2) False\..Fal
2e70: 73 65 20 54 72 75 65 7d 5d 7d 0d 0a 0d 0a 23 23  se True}]}....##
2e80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2e90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2ea0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2eb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2ec0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d  #############...
2ed0: 0a 72 75 6e 54 65 73 74 20 7b 74 65 73 74 20 74  .runTest {test t
2ee0: 6b 74 2d 61 37 64 30 34 66 62 31 31 31 2d 31 2e  kt-a7d04fb111-1.
2ef0: 39 20 7b 42 69 6e 64 20 44 61 74 65 54 69 6d 65  9 {Bind DateTime
2f00: 20 55 74 63 20 49 6e 76 61 72 69 61 6e 74 7d 20   Utc Invariant} 
2f10: 2d 73 65 74 75 70 20 7b 0d 0a 20 20 73 65 74 75  -setup {..  setu
2f20: 70 44 62 20 5b 73 65 74 20 66 69 6c 65 4e 61 6d  pDb [set fileNam
2f30: 65 20 74 6b 74 2d 61 37 64 30 34 66 62 31 31 31  e tkt-a7d04fb111
2f40: 2d 31 2e 39 2e 64 62 5d 20 22 22 20 49 6e 76 61  -1.9.db] "" Inva
2f50: 72 69 61 6e 74 43 75 6c 74 75 72 65 20 55 74 63  riantCulture Utc
2f60: 20 5c 0d 0a 20 20 20 20 20 20 42 69 6e 64 44 61   \..      BindDa
2f70: 74 65 54 69 6d 65 57 69 74 68 4b 69 6e 64 0d 0a  teTimeWithKind..
2f80: 7d 20 2d 62 6f 64 79 20 7b 0d 0a 20 20 6c 61 70  } -body {..  lap
2f90: 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71 6c  pend result [sql
2fa0: 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75 74   execute -execut
2fb0: 65 20 73 63 61 6c 61 72 20 24 64 62 20 22 53 45  e scalar $db "SE
2fc0: 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20 20  LECT ?;" \..    
2fd0: 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31 20 44    [list param1 D
2fe0: 61 74 65 54 69 6d 65 20 24 69 6e 73 74 61 6e 63  ateTime $instanc
2ff0: 65 56 61 6c 75 65 28 30 29 5d 5d 0d 0a 0d 0a 20  eValue(0)]].... 
3000: 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20   lappend result 
3010: 5b 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78  [sql execute -ex
3020: 65 63 75 74 65 20 73 63 61 6c 61 72 20 24 64 62  ecute scalar $db
3030: 20 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a   "SELECT ?;" \..
3040: 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61 72 61        [list para
3050: 6d 31 20 44 61 74 65 54 69 6d 65 20 24 69 6e 73  m1 DateTime $ins
3060: 74 61 6e 63 65 56 61 6c 75 65 28 31 29 5d 5d 0d  tanceValue(1)]].
3070: 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73  ...  lappend res
3080: 75 6c 74 20 5b 73 71 6c 20 65 78 65 63 75 74 65  ult [sql execute
3090: 20 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61 72   -execute scalar
30a0: 20 24 64 62 20 22 53 45 4c 45 43 54 20 3f 3b 22   $db "SELECT ?;"
30b0: 20 5c 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74 20   \..      [list 
30c0: 70 61 72 61 6d 31 20 44 61 74 65 54 69 6d 65 20  param1 DateTime 
30d0: 24 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 28 32  $instanceValue(2
30e0: 29 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64  )]]....  lappend
30f0: 20 72 65 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b   result [expr {[
3100: 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 30  lindex $result 0
3110: 5d 20 65 71 20 5b 6c 69 6e 64 65 78 20 24 72 65  ] eq [lindex $re
3120: 73 75 6c 74 20 31 5d 7d 5d 0d 0a 20 20 6c 61 70  sult 1]}]..  lap
3130: 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 65 78 70  pend result [exp
3140: 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73 75  r {[lindex $resu
3150: 6c 74 20 30 5d 20 65 71 20 5b 6c 69 6e 64 65 78  lt 0] eq [lindex
3160: 20 24 72 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a 20   $result 2]}].. 
3170: 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20   lappend result 
3180: 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24  [expr {[lindex $
3190: 72 65 73 75 6c 74 20 31 5d 20 65 71 20 5b 6c 69  result 1] eq [li
31a0: 6e 64 65 78 20 24 72 65 73 75 6c 74 20 32 5d 7d  ndex $result 2]}
31b0: 5d 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d  ]..} -cleanup {.
31c0: 0a 20 20 63 6c 65 61 6e 75 70 44 62 20 24 66 69  .  cleanupDb $fi
31d0: 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75 6e 73 65  leName....  unse
31e0: 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 72 65  t -nocomplain re
31f0: 73 75 6c 74 20 64 62 20 66 69 6c 65 4e 61 6d 65  sult db fileName
3200: 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73  ..} -constraints
3210: 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e   {eagle command.
3220: 6f 62 6a 65 63 74 20 6d 6f 6e 6f 42 75 67 32 38  object monoBug28
3230: 20 6d 6f 6e 6f 42 75 67 34 32 20 63 6f 6d 6d 61   monoBug42 comma
3240: 6e 64 2e 73 71 6c 5c 0d 0a 63 6f 6d 70 69 6c 65  nd.sql\..compile
3250: 2e 44 41 54 41 20 53 51 4c 69 74 65 20 53 79 73  .DATA SQLite Sys
3260: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d  tem.Data.SQLite}
3270: 20 2d 72 65 73 75 6c 74 20 5b 73 75 62 73 74 20   -result [subst 
3280: 2d 6e 6f 63 6f 6d 6d 61 6e 64 73 20 5c 0d 0a 2d  -nocommands \..-
3290: 6e 6f 62 61 63 6b 73 6c 61 73 68 65 73 20 7b 24  nobackslashes {$
32a0: 69 6e 76 61 72 69 61 6e 74 43 75 6c 74 75 72 65  invariantCulture
32b0: 56 61 6c 75 65 28 30 29 20 24 69 6e 76 61 72 69  Value(0) $invari
32c0: 61 6e 74 43 75 6c 74 75 72 65 56 61 6c 75 65 28  antCultureValue(
32d0: 31 29 5c 0d 0a 24 69 6e 76 61 72 69 61 6e 74 43  1)\..$invariantC
32e0: 75 6c 74 75 72 65 56 61 6c 75 65 28 31 29 20 46  ultureValue(1) F
32f0: 61 6c 73 65 20 46 61 6c 73 65 20 54 72 75 65 7d  alse False True}
3300: 5d 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  ]}....##########
3310: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3320: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3330: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3340: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3350: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74  #####....runTest
3360: 20 7b 74 65 73 74 20 74 6b 74 2d 61 37 64 30 34   {test tkt-a7d04
3370: 66 62 31 31 31 2d 31 2e 31 30 20 7b 42 69 6e 64  fb111-1.10 {Bind
3380: 20 44 61 74 65 54 69 6d 65 20 4c 6f 63 61 6c 20   DateTime Local 
3390: 49 6e 76 61 72 69 61 6e 74 7d 20 2d 73 65 74 75  Invariant} -setu
33a0: 70 20 7b 0d 0a 20 20 73 65 74 75 70 44 62 20 5b  p {..  setupDb [
33b0: 73 65 74 20 66 69 6c 65 4e 61 6d 65 20 74 6b 74  set fileName tkt
33c0: 2d 61 37 64 30 34 66 62 31 31 31 2d 31 2e 31 30  -a7d04fb111-1.10
33d0: 2e 64 62 5d 20 22 22 20 49 6e 76 61 72 69 61 6e  .db] "" Invarian
33e0: 74 43 75 6c 74 75 72 65 20 4c 6f 63 61 6c 20 5c  tCulture Local \
33f0: 0d 0a 20 20 20 20 20 20 42 69 6e 64 44 61 74 65  ..      BindDate
3400: 54 69 6d 65 57 69 74 68 4b 69 6e 64 0d 0a 7d 20  TimeWithKind..} 
3410: 2d 62 6f 64 79 20 7b 0d 0a 20 20 6c 61 70 70 65  -body {..  lappe
3420: 6e 64 20 72 65 73 75 6c 74 20 5b 73 71 6c 20 65  nd result [sql e
3430: 78 65 63 75 74 65 20 2d 65 78 65 63 75 74 65 20  xecute -execute 
3440: 73 63 61 6c 61 72 20 24 64 62 20 22 53 45 4c 45  scalar $db "SELE
3450: 43 54 20 3f 3b 22 20 5c 0d 0a 20 20 20 20 20 20  CT ?;" \..      
3460: 5b 6c 69 73 74 20 70 61 72 61 6d 31 20 44 61 74  [list param1 Dat
3470: 65 54 69 6d 65 20 24 69 6e 73 74 61 6e 63 65 56  eTime $instanceV
3480: 61 6c 75 65 28 30 29 5d 5d 0d 0a 0d 0a 20 20 6c  alue(0)]]....  l
3490: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73  append result [s
34a0: 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63  ql execute -exec
34b0: 75 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 22  ute scalar $db "
34c0: 53 45 4c 45 43 54 20 3f 3b 22 20 5c 0d 0a 20 20  SELECT ?;" \..  
34d0: 20 20 20 20 5b 6c 69 73 74 20 70 61 72 61 6d 31      [list param1
34e0: 20 44 61 74 65 54 69 6d 65 20 24 69 6e 73 74 61   DateTime $insta
34f0: 6e 63 65 56 61 6c 75 65 28 31 29 5d 5d 0d 0a 0d  nceValue(1)]]...
3500: 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c  .  lappend resul
3510: 74 20 5b 73 71 6c 20 65 78 65 63 75 74 65 20 2d  t [sql execute -
3520: 65 78 65 63 75 74 65 20 73 63 61 6c 61 72 20 24  execute scalar $
3530: 64 62 20 22 53 45 4c 45 43 54 20 3f 3b 22 20 5c  db "SELECT ?;" \
3540: 0d 0a 20 20 20 20 20 20 5b 6c 69 73 74 20 70 61  ..      [list pa
3550: 72 61 6d 31 20 44 61 74 65 54 69 6d 65 20 24 69  ram1 DateTime $i
3560: 6e 73 74 61 6e 63 65 56 61 6c 75 65 28 32 29 5d  nstanceValue(2)]
3570: 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72  ]....  lappend r
3580: 65 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69  esult [expr {[li
3590: 6e 64 65 78 20 24 72 65 73 75 6c 74 20 30 5d 20  ndex $result 0] 
35a0: 65 71 20 5b 6c 69 6e 64 65 78 20 24 72 65 73 75  eq [lindex $resu
35b0: 6c 74 20 31 5d 7d 5d 0d 0a 20 20 6c 61 70 70 65  lt 1]}]..  lappe
35c0: 6e 64 20 72 65 73 75 6c 74 20 5b 65 78 70 72 20  nd result [expr 
35d0: 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74  {[lindex $result
35e0: 20 30 5d 20 65 71 20 5b 6c 69 6e 64 65 78 20 24   0] eq [lindex $
35f0: 72 65 73 75 6c 74 20 32 5d 7d 5d 0d 0a 20 20 6c  result 2]}]..  l
3600: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 65  append result [e
3610: 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65  xpr {[lindex $re
3620: 73 75 6c 74 20 31 5d 20 65 71 20 5b 6c 69 6e 64  sult 1] eq [lind
3630: 65 78 20 24 72 65 73 75 6c 74 20 32 5d 7d 5d 0d  ex $result 2]}].
3640: 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20  .} -cleanup {.. 
3650: 20 63 6c 65 61 6e 75 70 44 62 20 24 66 69 6c 65   cleanupDb $file
3660: 4e 61 6d 65 0d 0a 0d 0a 20 20 75 6e 73 65 74 20  Name....  unset 
3670: 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 72 65 73 75  -nocomplain resu
3680: 6c 74 20 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a  lt db fileName..
3690: 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b  } -constraints {
36a0: 65 61 67 6c 65 20 63 6f 6d 6d 61 6e 64 2e 6f 62  eagle command.ob
36b0: 6a 65 63 74 20 6d 6f 6e 6f 42 75 67 32 38 20 6d  ject monoBug28 m
36c0: 6f 6e 6f 42 75 67 34 32 20 63 6f 6d 6d 61 6e 64  onoBug42 command
36d0: 2e 73 71 6c 5c 0d 0a 63 6f 6d 70 69 6c 65 2e 44  .sql\..compile.D
36e0: 41 54 41 20 53 51 4c 69 74 65 20 53 79 73 74 65  ATA SQLite Syste
36f0: 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d  m.Data.SQLite} -
3700: 72 65 73 75 6c 74 20 5b 73 75 62 73 74 20 2d 6e  result [subst -n
3710: 6f 63 6f 6d 6d 61 6e 64 73 20 5c 0d 0a 2d 6e 6f  ocommands \..-no
3720: 62 61 63 6b 73 6c 61 73 68 65 73 20 7b 24 69 6e  backslashes {$in
3730: 76 61 72 69 61 6e 74 43 75 6c 74 75 72 65 56 61  variantCultureVa
3740: 6c 75 65 28 30 29 20 24 69 6e 76 61 72 69 61 6e  lue(0) $invarian
3750: 74 43 75 6c 74 75 72 65 56 61 6c 75 65 28 32 29  tCultureValue(2)
3760: 5c 0d 0a 24 69 6e 76 61 72 69 61 6e 74 43 75 6c  \..$invariantCul
3770: 74 75 72 65 56 61 6c 75 65 28 32 29 20 46 61 6c  tureValue(2) Fal
3780: 73 65 20 46 61 6c 73 65 20 54 72 75 65 7d 5d 7d  se False True}]}
3790: 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23  ....############
37a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
37b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
37c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
37d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
37e0: 23 23 23 0d 0a 0d 0a 75 6e 73 65 74 20 2d 6e 6f  ###....unset -no
37f0: 63 6f 6d 70 6c 61 69 6e 20 69 6e 76 61 72 69 61  complain invaria
3800: 6e 74 43 75 6c 74 75 72 65 56 61 6c 75 65 20 75  ntCultureValue u
3810: 6e 69 78 45 70 6f 63 68 56 61 6c 75 65 20 6a 75  nixEpochValue ju
3820: 6c 69 61 6e 44 61 79 56 61 6c 75 65 20 5c 0d 0a  lianDayValue \..
3830: 20 20 20 20 69 73 6f 38 36 30 31 56 61 6c 75 65      iso8601Value
3840: 20 69 6e 73 74 61 6e 63 65 56 61 6c 75 65 20 74   instanceValue t
3850: 69 63 6b 73 56 61 6c 75 65 20 72 61 77 56 61 6c  icksValue rawVal
3860: 75 65 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23  ue....##########
3870: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3880: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3890: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
38a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
38b0: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 53 51 4c 69  #####....runSQLi
38c0: 74 65 54 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a  teTestEpilogue..
38d0: 72 75 6e 54 65 73 74 45 70 69 6c 6f 67 75 65 0d  runTestEpilogue.
38e0: 0a                                               .