System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 665aa91801e1301e7682568cc0829c084ecc2600:


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 38 34 37 31 38 65  .#..# tkt-84718e
0060: 37 39 66 61 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  79fa.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 63 20 31 30 0d 0a 0d 0a 23 23 23 23 23 23 23   c 10....#######
0280: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0290: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
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 0d 0a 0d 0a 72 75 6e 54  ########....runT
02d0: 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 38 34  est {test tkt-84
02e0: 37 31 38 65 37 39 66 61 2d 31 2e 31 20 7b 53 51  718e79fa-1.1 {SQ
02f0: 4c 69 74 65 43 6f 6e 76 65 72 74 20 74 68 72 65  LiteConvert thre
0300: 61 64 20 73 61 66 65 74 79 7d 20 2d 73 65 74 75  ad safety} -setu
0310: 70 20 7b 0d 0a 20 20 70 72 6f 63 20 74 68 72 65  p {..  proc thre
0320: 61 64 53 74 61 72 74 20 7b 20 61 72 67 73 20 7d  adStart { args }
0330: 20 7b 0d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20   {..    lappend 
0340: 3a 3a 72 65 73 75 6c 74 73 20 5b 73 71 6c 20 65  ::results [sql e
0350: 78 65 63 75 74 65 20 2d 65 78 65 63 75 74 65 20  xecute -execute 
0360: 72 65 61 64 65 72 20 2d 66 6f 72 6d 61 74 20 6c  reader -format l
0370: 69 73 74 20 24 3a 3a 64 62 20 5c 0d 0a 20 20 20  ist $::db \..   
0380: 20 20 20 20 20 22 53 45 4c 45 43 54 20 78 20 46       "SELECT x F
0390: 52 4f 4d 20 74 31 3b 22 5d 0d 0a 20 20 7d 0d 0a  ROM t1;"]..  }..
03a0: 0d 0a 20 20 6f 62 6a 65 63 74 20 69 6d 70 6f 72  ..  object impor
03b0: 74 20 53 79 73 74 65 6d 2e 54 68 72 65 61 64 69  t System.Threadi
03c0: 6e 67 0d 0a 0d 0a 20 20 73 65 74 75 70 44 62 20  ng....  setupDb 
03d0: 5b 73 65 74 20 66 69 6c 65 4e 61 6d 65 20 74 6b  [set fileName tk
03e0: 74 2d 38 34 37 31 38 65 37 39 66 61 2d 31 2e 31  t-84718e79fa-1.1
03f0: 2e 64 62 5d 0d 0a 7d 20 2d 62 6f 64 79 20 7b 0d  .db]..} -body {.
0400: 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65 20 24  .  sql execute $
0410: 64 62 20 22 43 52 45 41 54 45 20 54 41 42 4c 45  db "CREATE TABLE
0420: 20 74 31 28 78 20 49 4e 54 45 47 45 52 20 50 52   t1(x INTEGER PR
0430: 49 4d 41 52 59 20 4b 45 59 20 41 53 43 29 3b 22  IMARY KEY ASC);"
0440: 0d 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65 20  ..  sql execute 
0450: 24 64 62 20 22 49 4e 53 45 52 54 20 49 4e 54 4f  $db "INSERT INTO
0460: 20 74 31 20 28 78 29 20 56 41 4c 55 45 53 28 31   t1 (x) VALUES(1
0470: 29 3b 22 0d 0a 0d 0a 20 20 66 6f 72 20 7b 73 65  );"....  for {se
0480: 74 20 69 20 30 7d 20 7b 24 69 20 3c 20 24 63 7d  t i 0} {$i < $c}
0490: 20 7b 69 6e 63 72 20 69 7d 20 7b 0d 0a 20 20 20   {incr i} {..   
04a0: 20 73 65 74 20 74 28 24 69 29 20 5b 6f 62 6a 65   set t($i) [obje
04b0: 63 74 20 63 72 65 61 74 65 20 2d 61 6c 69 61 73  ct create -alias
04c0: 20 54 68 72 65 61 64 20 74 68 72 65 61 64 53 74   Thread threadSt
04d0: 61 72 74 20 31 30 34 38 35 37 36 5d 0d 0a 20 20  art 1048576]..  
04e0: 7d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73 75 6c  }....  set resul
04f0: 74 73 20 5b 6c 69 73 74 5d 0d 0a 0d 0a 20 20 66  ts [list]....  f
0500: 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24 69  or {set i 0} {$i
0510: 20 3c 20 24 63 7d 20 7b 69 6e 63 72 20 69 7d 20   < $c} {incr i} 
0520: 7b 0d 0a 20 20 20 20 24 74 28 24 69 29 20 53 74  {..    $t($i) St
0530: 61 72 74 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 61 66  art..  }....  af
0540: 74 65 72 20 34 30 30 30 3b 20 23 20 77 61 69 74  ter 4000; # wait
0550: 20 66 6f 72 20 6f 74 68 65 72 20 74 68 72 65 61   for other threa
0560: 64 73 20 74 6f 20 64 6f 20 73 6f 6d 65 74 68 69  ds to do somethi
0570: 6e 67 2e 2e 2e 0d 0a 0d 0a 20 20 66 6f 72 20 7b  ng.......  for {
0580: 73 65 74 20 69 20 30 7d 20 7b 24 69 20 3c 20 24  set i 0} {$i < $
0590: 63 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0d 0a 20  c} {incr i} {.. 
05a0: 20 20 20 24 74 28 24 69 29 20 4a 6f 69 6e 0d 0a     $t($i) Join..
05b0: 20 20 7d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73    }....  set res
05c0: 75 6c 74 73 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70  ults..} -cleanup
05d0: 20 7b 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20   {..  cleanupDb 
05e0: 24 66 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 6f  $fileName....  o
05f0: 62 6a 65 63 74 20 75 6e 69 6d 70 6f 72 74 20 2d  bject unimport -
0600: 69 6d 70 6f 72 74 70 61 74 74 65 72 6e 20 53 79  importpattern Sy
0610: 73 74 65 6d 2e 54 68 72 65 61 64 69 6e 67 0d 0a  stem.Threading..
0620: 0d 0a 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30  ..  for {set i 0
0630: 7d 20 7b 24 69 20 3c 20 24 63 7d 20 7b 69 6e 63  } {$i < $c} {inc
0640: 72 20 69 7d 20 7b 0d 0a 20 20 20 20 69 66 20 7b  r i} {..    if {
0650: 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 28 24  [info exists t($
0660: 69 29 5d 20 26 26 20 5b 63 6c 65 61 6e 75 70 54  i)] && [cleanupT
0670: 68 72 65 61 64 20 24 74 28 24 69 29 5d 7d 20 74  hread $t($i)]} t
0680: 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 75 6e 73  hen {..      uns
0690: 65 74 20 74 28 24 69 29 0d 0a 20 20 20 20 7d 0d  et t($i)..    }.
06a0: 0a 20 20 7d 0d 0a 0d 0a 20 20 63 61 74 63 68 20  .  }....  catch 
06b0: 7b 6f 62 6a 65 63 74 20 72 65 6d 6f 76 65 63 61  {object removeca
06c0: 6c 6c 62 61 63 6b 20 74 68 72 65 61 64 53 74 61  llback threadSta
06d0: 72 74 7d 0d 0a 0d 0a 20 20 75 6e 73 65 74 20 2d  rt}....  unset -
06e0: 6e 6f 63 6f 6d 70 6c 61 69 6e 20 72 65 73 75 6c  nocomplain resul
06f0: 74 73 20 74 20 69 20 63 20 64 62 20 66 69 6c 65  ts t i c db file
0700: 4e 61 6d 65 0d 0a 0d 0a 20 20 72 65 6e 61 6d 65  Name....  rename
0710: 20 74 68 72 65 61 64 53 74 61 72 74 20 22 22 0d   threadStart "".
0720: 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20  .} -constraints 
0730: 5c 0d 0a 7b 65 61 67 6c 65 20 73 68 65 6c 6c 20  \..{eagle shell 
0740: 6d 6f 6e 6f 42 75 67 32 38 20 63 6f 6d 6d 61 6e  monoBug28 comman
0750: 64 2e 73 71 6c 20 63 6f 6d 70 69 6c 65 2e 44 41  d.sql compile.DA
0760: 54 41 20 53 51 4c 69 74 65 20 53 79 73 74 65 6d  TA SQLite System
0770: 2e 44 61 74 61 2e 53 51 4c 69 74 65 7d 20 5c 0d  .Data.SQLite} \.
0780: 0a 2d 72 65 73 75 6c 74 20 5b 6c 72 65 70 65 61  .-result [lrepea
0790: 74 20 24 63 20 31 5d 7d 0d 0a 0d 0a 23 23 23 23  t $c 1]}....####
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 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 75  ###########....u
07f0: 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e  nset -nocomplain
0800: 20 63 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23   c....##########
0810: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0820: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0830: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0840: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0850: 23 23 23 23 23 0d 0a 0d 0a 72 75 6e 53 51 4c 69  #####....runSQLi
0860: 74 65 54 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a  teTestEpilogue..
0870: 72 75 6e 54 65 73 74 45 70 69 6c 6f 67 75 65 0d  runTestEpilogue.
0880: 0a                                               .