System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 930321f4811bec88874f39a0c8defa52e2b0ca0a:


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 32 61 62 62 66 32  .#..# tkt-2abbf2
0060: 63 32 34 34 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  c244.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 32  Test {test tkt-2
0280: 61 62 62 66 32 63 32 34 34 2d 31 2e 31 20 7b 50  abbf2c244-1.1 {P
0290: 52 41 47 4d 41 20 69 6e 63 72 65 6d 65 6e 74 61  RAGMA incrementa
02a0: 6c 5f 76 61 63 75 75 6d 7d 20 2d 73 65 74 75 70  l_vacuum} -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: 32 61 62 62 66 32 63 32 34 34 2d 31 2e 31 2e 64  2abbf2c244-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 65 74 20 72 65 73 75 6c 74 20 5b 6c 69 73   set result [lis
0300: 74 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20  t]....  lappend 
0310: 72 65 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63  result [sql exec
0320: 75 74 65 20 24 64 62 20 7b 50 52 41 47 4d 41 20  ute $db {PRAGMA 
0330: 70 61 67 65 5f 73 69 7a 65 20 3d 20 34 30 39 36  page_size = 4096
0340: 3b 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72  ;}]..  lappend r
0350: 65 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63 75  esult [sql execu
0360: 74 65 20 24 64 62 20 7b 50 52 41 47 4d 41 20 61  te $db {PRAGMA a
0370: 75 74 6f 5f 76 61 63 75 75 6d 20 3d 20 49 4e 43  uto_vacuum = INC
0380: 52 45 4d 45 4e 54 41 4c 3b 7d 5d 0d 0a 20 20 6c  REMENTAL;}]..  l
0390: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73  append result [s
03a0: 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63  ql execute -exec
03b0: 75 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 7b  ute scalar $db {
03c0: 50 52 41 47 4d 41 20 61 75 74 6f 5f 76 61 63 75  PRAGMA auto_vacu
03d0: 75 6d 3b 7d 5d 0d 0a 20 20 6c 61 70 70 65 6e 64  um;}]..  lappend
03e0: 20 72 65 73 75 6c 74 20 5b 66 69 6c 65 20 73 69   result [file si
03f0: 7a 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 67  ze [file join [g
0400: 65 74 44 61 74 61 62 61 73 65 44 69 72 65 63 74  etDatabaseDirect
0410: 6f 72 79 5d 20 24 66 69 6c 65 4e 61 6d 65 5d 5d  ory] $fileName]]
0420: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
0430: 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63 75 74  sult [sql execut
0440: 65 20 24 64 62 20 7b 0d 0a 20 20 20 20 43 52 45  e $db {..    CRE
0450: 41 54 45 20 54 41 42 4c 45 20 74 31 28 78 20 49  ATE TABLE t1(x I
0460: 4e 54 45 47 45 52 2c 20 79 20 54 45 58 54 29 3b  NTEGER, y TEXT);
0470: 0d 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ..    INSERT INT
0480: 4f 20 74 31 20 28 78 2c 20 79 29 20 56 41 4c 55  O t1 (x, y) VALU
0490: 45 53 28 31 2c 20 52 41 4e 44 4f 4d 42 4c 4f 42  ES(1, RANDOMBLOB
04a0: 28 31 30 34 38 35 37 36 29 29 3b 0d 0a 20 20 20  (1048576));..   
04b0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20   INSERT INTO t1 
04c0: 28 78 2c 20 79 29 20 56 41 4c 55 45 53 28 32 2c  (x, y) VALUES(2,
04d0: 20 52 41 4e 44 4f 4d 42 4c 4f 42 28 31 30 34 38   RANDOMBLOB(1048
04e0: 35 37 36 29 29 3b 0d 0a 20 20 20 20 49 4e 53 45  576));..    INSE
04f0: 52 54 20 49 4e 54 4f 20 74 31 20 28 78 2c 20 79  RT INTO t1 (x, y
0500: 29 20 56 41 4c 55 45 53 28 33 2c 20 52 41 4e 44  ) VALUES(3, RAND
0510: 4f 4d 42 4c 4f 42 28 31 30 34 38 35 37 36 29 29  OMBLOB(1048576))
0520: 3b 0d 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  ;..    INSERT IN
0530: 54 4f 20 74 31 20 28 78 2c 20 79 29 20 56 41 4c  TO t1 (x, y) VAL
0540: 55 45 53 28 34 2c 20 52 41 4e 44 4f 4d 42 4c 4f  UES(4, RANDOMBLO
0550: 42 28 31 30 34 38 35 37 36 29 29 3b 0d 0a 20 20  B(1048576));..  
0560: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
0570: 20 28 78 2c 20 79 29 20 56 41 4c 55 45 53 28 35   (x, y) VALUES(5
0580: 2c 20 52 41 4e 44 4f 4d 42 4c 4f 42 28 31 30 34  , RANDOMBLOB(104
0590: 38 35 37 36 29 29 3b 0d 0a 20 20 20 20 49 4e 53  8576));..    INS
05a0: 45 52 54 20 49 4e 54 4f 20 74 31 20 28 78 2c 20  ERT INTO t1 (x, 
05b0: 79 29 20 56 41 4c 55 45 53 28 36 2c 20 52 41 4e  y) VALUES(6, RAN
05c0: 44 4f 4d 42 4c 4f 42 28 31 30 34 38 35 37 36 29  DOMBLOB(1048576)
05d0: 29 3b 0d 0a 20 20 20 20 49 4e 53 45 52 54 20 49  );..    INSERT I
05e0: 4e 54 4f 20 74 31 20 28 78 2c 20 79 29 20 56 41  NTO t1 (x, y) VA
05f0: 4c 55 45 53 28 37 2c 20 52 41 4e 44 4f 4d 42 4c  LUES(7, RANDOMBL
0600: 4f 42 28 31 30 34 38 35 37 36 29 29 3b 0d 0a 20  OB(1048576));.. 
0610: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0620: 31 20 28 78 2c 20 79 29 20 56 41 4c 55 45 53 28  1 (x, y) VALUES(
0630: 38 2c 20 52 41 4e 44 4f 4d 42 4c 4f 42 28 31 30  8, RANDOMBLOB(10
0640: 34 38 35 37 36 29 29 3b 0d 0a 20 20 20 20 49 4e  48576));..    IN
0650: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28 78 2c  SERT INTO t1 (x,
0660: 20 79 29 20 56 41 4c 55 45 53 28 39 2c 20 52 41   y) VALUES(9, RA
0670: 4e 44 4f 4d 42 4c 4f 42 28 31 30 34 38 35 37 36  NDOMBLOB(1048576
0680: 29 29 3b 0d 0a 20 20 7d 5d 0d 0a 0d 0a 20 20 6c  ));..  }]....  l
0690: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 66  append result [f
06a0: 69 6c 65 20 73 69 7a 65 20 5b 66 69 6c 65 20 6a  ile size [file j
06b0: 6f 69 6e 20 5b 67 65 74 44 61 74 61 62 61 73 65  oin [getDatabase
06c0: 44 69 72 65 63 74 6f 72 79 5d 20 24 66 69 6c 65  Directory] $file
06d0: 4e 61 6d 65 5d 5d 0d 0a 0d 0a 20 20 6c 61 70 70  Name]]....  lapp
06e0: 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71 6c 20  end result [sql 
06f0: 65 78 65 63 75 74 65 20 2d 65 78 65 63 75 74 65  execute -execute
0700: 20 73 63 61 6c 61 72 20 24 64 62 20 7b 0d 0a 20   scalar $db {.. 
0710: 20 20 20 53 45 4c 45 43 54 20 43 4f 55 4e 54 28     SELECT COUNT(
0720: 2a 29 20 46 52 4f 4d 20 74 31 3b 0d 0a 20 20 7d  *) FROM t1;..  }
0730: 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72  ]....  lappend r
0740: 65 73 75 6c 74 20 5b 73 71 6c 20 65 78 65 63 75  esult [sql execu
0750: 74 65 20 2d 65 78 65 63 75 74 65 20 73 63 61 6c  te -execute scal
0760: 61 72 20 24 64 62 20 7b 0d 0a 20 20 20 20 50 52  ar $db {..    PR
0770: 41 47 4d 41 20 66 72 65 65 6c 69 73 74 5f 63 6f  AGMA freelist_co
0780: 75 6e 74 3b 0d 0a 20 20 7d 5d 0d 0a 0d 0a 20 20  unt;..  }]....  
0790: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
07a0: 73 71 6c 20 65 78 65 63 75 74 65 20 24 64 62 20  sql execute $db 
07b0: 7b 0d 0a 20 20 20 20 44 45 4c 45 54 45 20 46 52  {..    DELETE FR
07c0: 4f 4d 20 74 31 20 57 48 45 52 45 20 78 20 3c 20  OM t1 WHERE x < 
07d0: 35 3b 0d 0a 20 20 7d 5d 0d 0a 0d 0a 20 20 6c 61  5;..  }]....  la
07e0: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73 71  ppend result [sq
07f0: 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75  l execute -execu
0800: 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 7b 0d  te scalar $db {.
0810: 0a 20 20 20 20 53 45 4c 45 43 54 20 43 4f 55 4e  .    SELECT COUN
0820: 54 28 2a 29 20 46 52 4f 4d 20 74 31 3b 0d 0a 20  T(*) FROM t1;.. 
0830: 20 7d 5d 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64   }]....  lappend
0840: 20 72 65 73 75 6c 74 20 5b 73 71 6c 20 65 78 65   result [sql exe
0850: 63 75 74 65 20 2d 65 78 65 63 75 74 65 20 73 63  cute -execute sc
0860: 61 6c 61 72 20 24 64 62 20 7b 0d 0a 20 20 20 20  alar $db {..    
0870: 50 52 41 47 4d 41 20 66 72 65 65 6c 69 73 74 5f  PRAGMA freelist_
0880: 63 6f 75 6e 74 3b 0d 0a 20 20 7d 5d 0d 0a 0d 0a  count;..  }]....
0890: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
08a0: 20 5b 66 69 6c 65 20 73 69 7a 65 20 5b 66 69 6c   [file size [fil
08b0: 65 20 6a 6f 69 6e 20 5b 67 65 74 44 61 74 61 62  e join [getDatab
08c0: 61 73 65 44 69 72 65 63 74 6f 72 79 5d 20 24 66  aseDirectory] $f
08d0: 69 6c 65 4e 61 6d 65 5d 5d 0d 0a 0d 0a 20 20 6c  ileName]]....  l
08e0: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 73  append result [s
08f0: 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78 65 63  ql execute -exec
0900: 75 74 65 20 73 63 61 6c 61 72 20 24 64 62 20 7b  ute scalar $db {
0910: 0d 0a 20 20 20 20 50 52 41 47 4d 41 20 69 6e 63  ..    PRAGMA inc
0920: 72 65 6d 65 6e 74 61 6c 5f 76 61 63 75 75 6d 3b  remental_vacuum;
0930: 0d 0a 20 20 7d 5d 0d 0a 0d 0a 20 20 6c 61 70 70  ..  }]....  lapp
0940: 65 6e 64 20 72 65 73 75 6c 74 20 5b 66 69 6c 65  end result [file
0950: 20 73 69 7a 65 20 5b 66 69 6c 65 20 6a 6f 69 6e   size [file join
0960: 20 5b 67 65 74 44 61 74 61 62 61 73 65 44 69 72   [getDatabaseDir
0970: 65 63 74 6f 72 79 5d 20 24 66 69 6c 65 4e 61 6d  ectory] $fileNam
0980: 65 5d 5d 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72  e]]..  lappend r
0990: 65 73 75 6c 74 20 5b 65 78 70 72 20 7b 5b 6c 69  esult [expr {[li
09a0: 6e 64 65 78 20 24 72 65 73 75 6c 74 20 65 6e 64  ndex $result end
09b0: 5d 20 3c 20 5b 6c 69 6e 64 65 78 20 24 72 65 73  ] < [lindex $res
09c0: 75 6c 74 20 65 6e 64 2d 32 5d 7d 5d 0d 0a 0d 0a  ult end-2]}]....
09d0: 20 20 73 65 74 20 72 65 73 75 6c 74 0d 0a 7d 20    set result..} 
09e0: 2d 63 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 63 6c  -cleanup {..  cl
09f0: 65 61 6e 75 70 44 62 20 24 66 69 6c 65 4e 61 6d  eanupDb $fileNam
0a00: 65 0d 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f  e....  unset -no
0a10: 63 6f 6d 70 6c 61 69 6e 20 72 65 73 75 6c 74 20  complain result 
0a20: 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a 7d 20 2d  db fileName..} -
0a30: 63 6f 6e 73 74 72 61 69 6e 74 73 20 5c 0d 0a 7b  constraints \..{
0a40: 65 61 67 6c 65 20 6d 6f 6e 6f 42 75 67 32 38 20  eagle monoBug28 
0a50: 63 6f 6d 6d 61 6e 64 2e 73 71 6c 20 63 6f 6d 70  command.sql comp
0a60: 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74 65 20  ile.DATA SQLite 
0a70: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
0a80: 74 65 7d 20 2d 6d 61 74 63 68 20 5c 0d 0a 72 65  te} -match \..re
0a90: 67 65 78 70 20 2d 72 65 73 75 6c 74 20 7b 5e 2d  gexp -result {^-
0aa0: 31 20 28 3f 3a 2d 31 7c 30 29 20 32 20 34 30 39  1 (?:-1|0) 2 409
0ab0: 36 20 39 20 39 34 36 39 39 35 32 20 39 20 30 20  6 9 9469952 9 0 
0ac0: 34 20 35 20 31 30 32 35 20 39 34 36 39 39 35 32  4 5 1025 9469952
0ad0: 20 5c 7b 5c 7d 20 39 34 36 35 38 35 36 5c 0d 0a   \{\} 9465856\..
0ae0: 54 72 75 65 24 7d 7d 0d 0a 0d 0a 23 23 23 23 23  True$}}....#####
0af0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b30: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75  ##########....ru
0b40: 6e 53 51 4c 69 74 65 54 65 73 74 45 70 69 6c 6f  nSQLiteTestEpilo
0b50: 67 75 65 0d 0a 72 75 6e 54 65 73 74 45 70 69 6c  gue..runTestEpil
0b60: 6f 67 75 65 0d 0a                                ogue..