]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Open windows files in binary mode. (CVS 193)
authordrh <drh@noemail.net>
Tue, 20 Mar 2001 12:55:13 +0000 (12:55 +0000)
committerdrh <drh@noemail.net>
Tue, 20 Mar 2001 12:55:13 +0000 (12:55 +0000)
FossilOrigin-Name: e48b9f24faeee606aa2bda1666016d8a00b430a7

13 files changed:
VERSION
doc/report1.txt
manifest
manifest.uuid
src/dbbe.c
src/dbbemem.c
test/dbbe.test
test/delete.test
test/lock.test
test/main.test
test/tester.tcl
test/vacuum.test
www/changes.tcl

diff --git a/VERSION b/VERSION
index 4a4127c371df8684c0acdc027f67fd908f947ec0..8955a0173eb8468ed27b66207e02b819a3cd7fd6 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.25
+1.0.26
index cf5668d1b80fafd71ffca9777354b121137eff20..84d8de1d98e9c5f58846ddaa07d4bfa906d10fb2 100644 (file)
-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%
index 140ae4d583e2031755174a361ae225f7e66d47c4..b184088746a4606de2b4ca62ac65cc66d34749ed 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,19 +1,19 @@
-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
@@ -45,16 +45,16 @@ F src/vdbe.h 031b7dd7d6f94c51dc37cdf26efe43d1619bb672
 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
@@ -63,9 +63,9 @@ F test/select5.test e2b9d51d88cbd6c307c2c05b0ef55fe7ba811ac2
 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
@@ -80,7 +80,7 @@ F www/arch.fig 4f246003b7da23bd63b8b0af0618afb4ee3055c8
 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
@@ -91,7 +91,7 @@ F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
 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
index d6eaddfe706ffa56db23ab224887d91dedcb1ef4..e7df5d144b5117722c81a0ab1997166544d02e36 100644 (file)
@@ -1 +1 @@
-7564b223ab39f26a2fcf2afe150a98d10de132ea
\ No newline at end of file
+e48b9f24faeee606aa2bda1666016d8a00b430a7
\ No newline at end of file
index 8e3516a1e7a90c35ebf70ac6980f967070fa88d4..da99eb9e5ad283983442c090a291ae5123b98ee1 100644 (file)
@@ -30,7 +30,7 @@
 ** 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>
@@ -98,7 +98,11 @@ int sqliteDbbeOpenTempFile(const char *zDir, Dbbe *pBe, FILE **ppFile){
     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);
index 4e9f78e0445ba2fc0ffef9c212b86d2998eec3bf..6bd4079d27c503d9e9630527b257e2b8ce656421 100644 (file)
@@ -28,7 +28,7 @@
 **
 ** 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>
@@ -721,7 +721,12 @@ static int sqliteMemDelete(DbbeCursor *pCursr, int nKey, char *pKey){
 ** 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;
index e1a079e0bc80e6c008b345c8a3b8ede9dc51e872..d30047bc153dbd45bdea3e4ca13b0c09e8732424 100644 (file)
@@ -23,7 +23,7 @@
 # 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
@@ -66,6 +66,8 @@ do_test dbbe-1.4 {
   lappend v $msg
 } {1 {not a directory: "testdb"}}
 
+if {$::tcl_platform(platform)!="windows"} {
+
 # Access permission denied on the directory.
 #
 do_test dbbe-1.5 {
@@ -100,6 +102,8 @@ do_test dbbe-1.6b {
   lappend v $msg
 } {0 {}}
 
+} ;# End of if( platform!=windows )
+
 # Make sure a table can be accessed by either uppercase or lowercase
 # names
 #
index b00e3c0d3e0dd8e5c65ab12377122ccb79710a31..d8c6f561856f2e7c14bd7d3c8eabef349fe00ad5 100644 (file)
@@ -23,7 +23,7 @@
 # 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
@@ -79,4 +79,43 @@ do_test delete-4.2 {
   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
index 0de1842684039cd2b48944e4b6814e388c0731dd..bae3864e25eeea697f86057151483a67f684e3ee 100644 (file)
@@ -23,9 +23,9 @@
 # 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
index 165d51506ce03058c658a1a0899f65bccb16727c..f236d26b09a5a4b600a4f0be314601c12523bf57 100644 (file)
@@ -23,7 +23,7 @@
 # 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
@@ -81,6 +81,7 @@ do_test main-1.13 {
 #
 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]
@@ -94,6 +95,7 @@ do_test main-2.0 {
 #
 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]
@@ -101,6 +103,7 @@ do_test main-3.1 {
 } {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]
@@ -108,6 +111,7 @@ do_test main-3.2 {
 } {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]
@@ -116,6 +120,7 @@ do_test main-3.3 {
 
 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 {
index 6d55d5fa1aeb7b88d7099113a25d2732b33a1523..55af4452482d9d634960123738802825b7bd9034 100644 (file)
@@ -23,7 +23,7 @@
 # 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
 #
@@ -36,6 +36,9 @@ if {![info exists dbprefix]} {
 }
 switch $dbprefix {
   gdbm: {
+   foreach f [glob -nocomplain testdb/*] {
+     catch {file delete -force $f}
+   }
    if {[catch {file delete -force testdb}]} {
      exec rm -rf testdb
    }
index 802a70021e749b2c6ab5163b5c6136a4b2c00834..157bf170209d6e2cf9173ed78f7cb6589bf33bdc 100644 (file)
@@ -23,7 +23,7 @@
 # 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
@@ -65,6 +65,7 @@ do_test vacuum-1.3 {
   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]
@@ -77,6 +78,6 @@ do_test vacuum-1.4 {
   set a3 [file mtime testdb/index1.tbl]
   expr {$a1>$b1 && $a2>$b2 && $a3>$b3}
 } {1}
-
+} ;# End if( platform!=windows )
 
 finish_test
index 49204119f3b8078190d0bf3101a9af602702e3bd..c12e98e825a540979d46f67a15573d8fc23555c8 100644 (file)
@@ -17,6 +17,11 @@ proc chng {date desc} {
   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