-The SQL database used for ACD contains 113 tables and indices implemented
+The SQL database used for ACD contains 105 tables and indices implemented
in GDBM. The following are statistics on the sizes of keys and data
within these tables and indices.
-Entries: 962080
-Size: 45573853
+Entries: 967089
+Size: 45896104
Avg Size: 48
-Key Size: 11045299
+Key Size: 11112265
Avg Key Size: 12
Max Key Size: 99
- 0..8 266 0%
- 9..12 5485 0%
- 13..16 73633 8%
- 17..24 180918 27%
- 25..32 209823 48%
- 33..40 148995 64%
- 41..48 76304 72%
- 49..56 14346 73%
- 57..64 15725 75%
- 65..80 44916 80%
- 81..96 127815 93%
- 97..112 34769 96%
- 113..128 13314 98%
- 129..144 8098 99%
- 145..160 3355 99%
- 161..176 1159 99%
- 177..192 629 99%
- 193..208 221 99%
- 209..224 210 99%
- 225..240 129 99%
- 241..256 57 99%
- 257..288 496 99%
- 289..320 60 99%
- 321..352 37 99%
- 353..384 46 99%
- 385..416 22 99%
+ 0..8 263 0%
+ 9..12 5560 0%
+ 13..16 71394 7%
+ 17..24 180717 26%
+ 25..32 215442 48%
+ 33..40 151118 64%
+ 41..48 77479 72%
+ 49..56 13983 74%
+ 57..64 14481 75%
+ 65..80 41342 79%
+ 81..96 127098 92%
+ 97..112 38054 96%
+ 113..128 14197 98%
+ 129..144 8208 99%
+ 145..160 3326 99%
+ 161..176 1242 99%
+ 177..192 604 99%
+ 193..208 222 99%
+ 209..224 213 99%
+ 225..240 132 99%
+ 241..256 58 99%
+ 257..288 515 99%
+ 289..320 64 99%
+ 321..352 39 99%
+ 353..384 44 99%
+ 385..416 25 99%
417..448 24 99%
449..480 26 99%
481..512 27 99%
- 513..1024 471 99%
- 1025..2048 389 99%
- 2049..4096 182 99%
- 4097..8192 74 99%
- 8193..16384 34 99%
+ 513..1024 470 99%
+ 1025..2048 396 99%
+ 2049..4096 187 99%
+ 4097..8192 78 99%
+ 8193..16384 35 99%
+16385..32768 17 99%
+32769..65536 6 99%
+65537..65541 3 100%
+
+If the indices are omitted, the statistics for the 49 tables
+become the following:
+
+Entries: 451103
+Size: 30930282
+Avg Size: 69
+Key Size: 1804412
+Avg Key Size: 4
+Max Key Size: 4
+
+ 0..24 89 0%
+ 25..32 9417 2%
+ 33..40 119162 28%
+ 41..48 68710 43%
+ 49..56 9539 45%
+ 57..64 12435 48%
+ 65..80 38650 57%
+ 81..96 126877 85%
+ 97..112 38030 93%
+ 113..128 14183 96%
+ 129..144 7668 98%
+ 145..160 3302 99%
+ 161..176 1238 99%
+ 177..192 597 99%
+ 193..208 217 99%
+ 209..224 211 99%
+ 225..240 130 99%
+ 241..256 57 99%
+ 257..288 100 99%
+ 289..320 62 99%
+ 321..352 34 99%
+ 353..384 43 99%
+ 385..416 24 99%
+ 417..448 24 99%
+ 449..480 25 99%
+ 481..512 27 99%
+ 513..1024 153 99%
+ 1025..2048 92 99%
+ 2049..4096 7 100%
+
+The 56 indices have these statistics:
+
+Entries: 512422
+Size: 14879828
+Avg Size: 30
+Key Size: 9253204
+Avg Key Size: 19
+Max Key Size: 99
+
+ 0..8 246 0%
+ 9..12 5486 1%
+ 13..16 70717 14%
+ 17..24 178246 49%
+ 25..32 205722 89%
+ 33..40 31951 96%
+ 41..48 8768 97%
+ 49..56 4444 98%
+ 57..64 2046 99%
+ 65..80 2691 99%
+ 81..96 202 99%
+ 97..112 11 99%
+ 113..144 527 99%
+ 145..160 20 99%
+ 161..288 406 99%
+ 289..1024 316 99%
+ 1025..2048 304 99%
+ 2049..4096 180 99%
+ 4097..8192 78 99%
+ 8193..16384 35 99%
16385..32768 17 99%
-32769..65536 5 99%
-65537..131073 3 100%
+32769..65536 6 99%
+65537..65541 3 100%
-C Version\s1.0.25\s(CVS\s478)
-D 2001-03-15T18:30:00
+C Open\swindows\sfiles\sin\sbinary\smode.\s(CVS\s193)
+D 2001-03-20T12:55:13
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
F Makefile.in 7efa81e2985b45ba73db27d55b70cc927f5abfd7
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
-F VERSION 80af39f0d764a13d57b92a38c6d21a7d4e5f7197
+F VERSION 900bbde4128ea2f66efdd32cae849187ea790e77
F configure 3dc1edb9dcf60215e31ff72b447935ab62211442 x
F configure.in d892ca33db7e88a055519ce2f36dcb11020e8fff
F doc/lemon.html e233a3e97a779c7a87e1bc4528c664a58e49dd47
-F doc/report1.txt ad0a41513479f1be0355d1f3f074e66779ff2282
+F doc/report1.txt 734cbae63b1310cc643fe5e9e3da1ab55a79b99e
F src/TODO 38a68a489e56e9fd4a96263e0ff9404a47368ad4
F src/build.c 7aa5879bf58ea6bbff22c26c59d1130021fa6ca4
-F src/dbbe.c 162d29b09ac379f160892c5795efc14099dcc8eb
+F src/dbbe.c 1b3b8b5ded9e58d10d94d268cd12343b6212dbd1
F src/dbbe.h 0435a36906a839cce062608f51bd9d3e79878fec
F src/dbbegdbm.c 5bfcb1b4ee47a98c5eae83041e9716cd3233fd0e
-F src/dbbemem.c 576a0a0ad675063a1dd2c4aae68233232bd2deac
+F src/dbbemem.c af740e5b4f2da3cb010b10592034f0627cdb0543
F src/delete.c b83dc815f83220a82df13f1f1f479187d305fe6a
F src/ex/README b745b00acce2d892f60c40111dacdfc48e0c1c7a
F src/ex/db.c f1419ae6c93e40b5ac6e39fe7efd95d868e6f9d7
F src/where.c 478fde7c930969ca428de2d80b137959d25ee2fb
F test/all.test 15cac2f6b2d4c55bf896212aff3cc9d6597b0490
F test/copy.test b77a1214bd7756f2849d5c4fa6e715c0ff0c34eb
-F test/dbbe.test 27deeebf2a01da97cabaab8dc7f34ca3b51a0123
-F test/delete.test 402ee3ccb6e544582d24c573ef70b34d09583ae7
+F test/dbbe.test 03a6940807f8a1e7538897b4c802a7937677e053
+F test/delete.test e3e082a9dc764e3c259a8d175b31cd648e7c58f7
F test/expr.test 48273bf48a15d226c35829f702af4254c0ff6795
F test/func.test 02aed8845b98bde1043dda97455de1d37238ebb3
F test/in.test 2c560c0f55fb777029fd9bb5378f2997582aa603
F test/index.test ee060ef8912be47ba616e50cce7985259a68d58a
F test/insert.test 66f4c3bd600fec8eb1e733b928cbe6fa885eff0c
F test/insert2.test 732405e30331635af8d159fccabe835eea5cd0c6
-F test/lock.test a58af9b98b4351dc80896767781d8e6cab1b3666
-F test/main.test 83cfa58b0b9b69924cc915d5c50b12f0ac9e40e7
+F test/lock.test d8f0fc54f2a88969368c15490ea82811e2d7dd37
+F test/main.test 5b0ed3d586c15b9136b9fd4916dcc95086639387
F test/select1.test 68ff778c24fc8982e63dda37acb5b0396913adf7
F test/select2.test 04ac3bd69298f58c7d0883159bab42ab9ad6021c
F test/select3.test a9234b8424b6c6d71de534f43b91ade9be68e9cc
F test/sort.test d582086c4bb7df3fbf50aa72e69d7e235e9f8e31
F test/subselect.test bf8b251a92fb091973c1c469ce499dc9648a41d5
F test/table.test eaa25951c0f18615763cd3dc248ea4bc38739c05
-F test/tester.tcl 2afa947ed17c4633864fbd6506f20e26e884103c
+F test/tester.tcl 01f881142be3bd8713abcea06747652067dafb78
F test/update.test 72c0c93310483b86dc904a992220c5b84c7ce100
-F test/vacuum.test 2127748ff4ddb409212efbb6d9fb9c469ea1b49c
+F test/vacuum.test b95d8119a0a83dc6c4ac63888f8872f06199e065
F test/where.test bbab5a308055fb6087dc23d600b4ad2b72797397
F tool/gdbmdump.c 529e67c78d920606ba196326ea55b57b75fcc82b
F tool/gdbmstat.c 56a9033531e5f5a48413f6ec436d5fb0341632c1
F www/arch.png 8dae0766d42ed3de9ed013c1341a5792bcf633e6
F www/arch.tcl a40380c1fe0080c43e6cc5c20ed70731511b06be
F www/c_interface.tcl 11be2d5826eb7d6efd629751d3b483c1ed78ba14
-F www/changes.tcl 1698d3b1636ec70c77d22aebccc12f43ba4c1c57
+F www/changes.tcl 6216d3a09f4cde137e635ab9aedda63adef086c0
F www/crosscompile.tcl c99efacb3aefaa550c6e80d91b240f55eb9fd33e
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
F www/fileformat.tcl cfb7fba80b7275555281ba2f256c00734bcdd1c9
F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f
F www/tclsqlite.tcl 06f81c401f79a04f2c5ebfb97e7c176225c0aef2
F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad
-P 4b0ba23807a57eaa3649622cff3be66cd75e7561
-R 9278e0d1b4fb4a58660b2bd6644e304b
+P 7564b223ab39f26a2fcf2afe150a98d10de132ea
+R c64bf80b88e496913947dd674ee75d13
U drh
-Z 1678389fee545571636f80371eb62ce2
+Z 8308fb574f8a07fbde2a6679bf75d982
-7564b223ab39f26a2fcf2afe150a98d10de132ea
\ No newline at end of file
+e48b9f24faeee606aa2bda1666016d8a00b430a7
\ No newline at end of file
** relatively simple to convert to a different database such
** as NDBM, SDBM, or BerkeleyDB.
**
-** $Id: dbbe.c,v 1.23 2001/01/15 22:51:10 drh Exp $
+** $Id: dbbe.c,v 1.24 2001/03/20 12:55:14 drh Exp $
*/
#include "sqliteInt.h"
#include <unistd.h>
zFile = 0;
sqliteSetString(&zFile, zDir, zBuf, 0);
}while( access(zFile,0)==0 && limit-- >= 0 );
+#if OS_WIN
+ *ppFile = pBe->apTemp[i] = fopen(zFile, "w+b");
+#else
*ppFile = pBe->apTemp[i] = fopen(zFile, "w+");
+#endif
if( pBe->apTemp[i]==0 ){
rc = SQLITE_ERROR;
sqliteFree(zFile);
**
** This file uses an in-memory hash table as the database backend.
**
-** $Id: dbbemem.c,v 1.8 2001/02/19 23:48:17 drh Exp $
+** $Id: dbbemem.c,v 1.9 2001/03/20 12:55:14 drh Exp $
*/
#include "sqliteInt.h"
#include <sys/stat.h>
** directory.
*/
static int sqliteMemOpenTempFile(Dbbe *pDbbe, FILE **ppFile){
+#if OS_UNIX
const char *zTemps[] = { "/usr/tmp", "/var/tmp", "/tmp", "/temp", 0};
+#endif
+#if OS_WIN
+ const char *zTemps[] = { "c:/temp", "c:", 0};
+#endif
const char *zDir;
int i;
struct stat statbuf;
# This file implements regression tests for SQLite library. The
# focus of this file is exercising the code in dbbe.c.
#
-# $Id: dbbe.test,v 1.5 2001/01/31 13:28:09 drh Exp $
+# $Id: dbbe.test,v 1.6 2001/03/20 12:55:14 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
lappend v $msg
} {1 {not a directory: "testdb"}}
+if {$::tcl_platform(platform)!="windows"} {
+
# Access permission denied on the directory.
#
do_test dbbe-1.5 {
lappend v $msg
} {0 {}}
+} ;# End of if( platform!=windows )
+
# Make sure a table can be accessed by either uppercase or lowercase
# names
#
# This file implements regression tests for SQLite library. The
# focus of this file is testing the DELETE FROM statement.
#
-# $Id: delete.test,v 1.6 2000/06/21 13:59:13 drh Exp $
+# $Id: delete.test,v 1.7 2001/03/20 12:55:14 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
lappend v $msg
} {1 {no such function: xyzzy}}
+# Lots of deletes
+#
+do_test delete-5.1 {
+ execsql {DELETE FROM table1}
+ execsql {SELECT count(*) FROM table1}
+} {}
+do_test delete-5.2 {
+ for {set i 1} {$i<=200} {incr i} {
+ execsql "INSERT INTO table1 VALUES($i,[expr {$i*$i}])"
+ }
+ execsql {SELECT count(*) FROM table1}
+} {200}
+do_test delete-5.3 {
+ for {set i 1} {$i<=200} {incr i 4} {
+ execsql "DELETE FROM table1 WHERE f1==$i"
+ }
+ execsql {SELECT count(*) FROM table1}
+} {150}
+do_test delete-5.4 {
+ execsql "DELETE FROM table1 WHERE f1>50"
+ execsql {SELECT count(*) FROM table1}
+} {37}
+do_test delete-5.5 {
+ for {set i 1} {$i<=70} {incr i 3} {
+ execsql "DELETE FROM table1 WHERE f1==$i"
+ }
+ execsql {SELECT f1 FROM table1 ORDER BY f1}
+} {2 3 6 8 11 12 14 15 18 20 23 24 26 27 30 32 35 36 38 39 42 44 47 48 50}
+do_test delete-5.6 {
+ for {set i 1} {$i<40} {incr i} {
+ execsql "DELETE FROM table1 WHERE f1==$i"
+ }
+ execsql {SELECT f1 FROM table1 ORDER BY f1}
+} {42 44 47 48 50}
+do_test delete-5.7 {
+ execsql "DELETE FROM table1 WHERE f1!=48"
+ execsql {SELECT f1 FROM table1 ORDER BY f1}
+} {48}
+
finish_test
# This file implements regression tests for SQLite library. The
# focus of this script is database locks.
#
-# $Id: lock.test,v 1.6 2001/03/15 18:21:22 drh Exp $
+# $Id: lock.test,v 1.7 2001/03/20 12:55:14 drh Exp $
-if {$dbprefix=="gdbm:"} {
+if {$dbprefix=="gdbm:" && $::tcl_platform(platform)!="windows"} {
set testdir [file dirname $argv0]
source $testdir/tester.tcl
# This file implements regression tests for SQLite library. The
# focus of this file is exercising the code in main.c.
#
-# $Id: main.test,v 1.4 2000/12/10 18:23:52 drh Exp $
+# $Id: main.test,v 1.5 2001/03/20 12:55:14 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
#
do_test main-2.0 {
catch {db close}
+ foreach f [glob -nocomplain testdb/*] {file delete -force $f}
file delete -force testdb
file mkdir testdb
set fd [open testdb/sqlite_master.tbl w]
#
do_test main-3.1 {
catch {db close}
+ foreach f [glob -nocomplain testdb/*] {file delete -force $f}
file delete -force testdb
sqlite db testdb
set v [catch {execsql {SELECT * from T1 where x!!5}} msg]
} {1 {unrecognized token: "!!"}}
do_test main-3.2 {
catch {db close}
+ foreach f [glob -nocomplain testdb/*] {file delete -force $f}
file delete -force testdb
sqlite db testdb
set v [catch {execsql {SELECT * from T1 where ~x}} msg]
} {1 {unrecognized token: "~"}}
do_test main-3.3 {
catch {db close}
+ foreach f [glob -nocomplain testdb/*] {file delete -force $f}
file delete -force testdb
sqlite db testdb
set v [catch {execsql {SELECT a|b from T1 where x}} msg]
do_test main-3.3 {
catch {db close}
+ foreach f [glob -nocomplain testdb/*] {file delete -force $f}
file delete -force testdb
sqlite db testdb
execsql {
# This file implements some common TCL routines used for regression
# testing the SQLite library
#
-# $Id: tester.tcl,v 1.11 2001/03/15 18:21:22 drh Exp $
+# $Id: tester.tcl,v 1.12 2001/03/20 12:55:14 drh Exp $
# Create a test database
#
}
switch $dbprefix {
gdbm: {
+ foreach f [glob -nocomplain testdb/*] {
+ catch {file delete -force $f}
+ }
if {[catch {file delete -force testdb}]} {
exec rm -rf testdb
}
# This file implements regression tests for SQLite library. The
# focus of this file is testing the VACUUM statement.
#
-# $Id: vacuum.test,v 1.2 2000/10/19 14:10:10 drh Exp $
+# $Id: vacuum.test,v 1.3 2001/03/20 12:55:14 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
set a3 [file mtime testdb/index1.tbl]
expr {$a1>$b1 && $a2==$b2 && $a3==$b3}
} {1}
+if {$::tcl_platform(platform)!="windows"} {
testif gdbm:
do_test vacuum-1.4 {
set b1 [file mtime testdb/test1.tbl]
set a3 [file mtime testdb/index1.tbl]
expr {$a1>$b1 && $a2>$b2 && $a3>$b3}
} {1}
-
+} ;# End if( platform!=windows )
finish_test
puts "<DD><P><UL>$desc</UL></P></DD>"
}
+chng {2001 Mar 20 (1.0.26)} {
+<li>A serious bug fixed on Windows. Windows users should upgrade.
+ No impact to Unix.</li>
+}
+
chng {2001 Mar 15 (1.0.25)} {
<li>Modify the test scripts to identify tests that depend on system
load and processor speed and