]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an incompatibility between the Tcl interface and the "memdb" vfs by allowing...
authordan <Dan Kennedy>
Thu, 15 Dec 2022 18:56:12 +0000 (18:56 +0000)
committerdan <Dan Kennedy>
Thu, 15 Dec 2022 18:56:12 +0000 (18:56 +0000)
FossilOrigin-Name: bd537f2057a4800bd30e7dd57405c3e57df649471104c80bd32573a89568029e

manifest
manifest.uuid
src/memdb.c
test/memdb2.test

index 465b45f77875d7fa4803df5f326c8622fbab973e..8fe1f810b71666bdc029cd07438d0fef9b9f606b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Added\sa\scouple\smissing\s'not\spart\sof\sthe\spublic\sAPI'\stags\son\sfunctions\sin\ssqlite3-wasm.c.\sNo\scode\schanges.
-D 2022-12-15T18:50:30.614
+C Fix\san\sincompatibility\sbetween\sthe\sTcl\sinterface\sand\sthe\s"memdb"\svfs\sby\sallowing\smemdb\sto\saccept\sfilenames\sthat\sbegin\swith\s'\\'\scharacters.
+D 2022-12-15T18:56:12.441
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -615,7 +615,7 @@ F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
 F src/mem2.c c8bfc9446fd0798bddd495eb5d9dbafa7d4b7287d8c22d50a83ac9daa26d8a75
 F src/mem3.c 30301196cace2a085cbedee1326a49f4b26deff0af68774ca82c1f7c06fda4f6
 F src/mem5.c 5a3dbd8ac8a6501152a4fc1fcae9b0900c2d7eb0589c4ec7456fdde15725a26c
-F src/memdb.c 3c1f3a3daa670294bad0056e66c17f5fe75cfa1da1850056a5a94347ec32e6bd
+F src/memdb.c 1d4adda82e1277b0ededcdc5c23d217e19aa0a66c191f6c0c0ff9ade98124a9c
 F src/memjournal.c c283c6c95d940eb9dc70f1863eef3ee40382dbd35e5a1108026e7817c206e8a0
 F src/msvc.h 3a15918220367a8876be3fa4f2abe423a861491e84b864fb2b7426bf022a28f8
 F src/mutex.c 5e3409715552348732e97b9194abe92fdfcd934cfb681df4ba0ab87ac6c18d25
@@ -1317,7 +1317,7 @@ F test/manydb.test 28385ae2087967aa05c38624cec7d96ec74feb3e
 F test/mem5.test c6460fba403c5703141348cd90de1c294188c68f
 F test/memdb.test c1f2a343ad14398d5d6debda6ea33e80d0dafcc7
 F test/memdb1.test 2c4e9cc10d21c6bf4e217d72b7f6b8ba9b2605971bb2c5e6df76018e189f98f5
-F test/memdb2.test d1dc6058ee59f78c7f46f85e069bb974a981920f8c499f0167690d16c0b079f6
+F test/memdb2.test 7789975b96b0726032a22c1afc026592c7ff175bf05be11f1d640791541a77ea
 F test/memjournal.test 70f3a00c7f84ee2978ad14e831231caa1e7f23915a2c54b4f775a021d5740c6c
 F test/memjournal2.test 6b9083cfaab9a3281ec545c3da2487999e8025fb7501bbae10f713f80c56454c
 F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2
@@ -2067,8 +2067,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 751e344f4cd2045caf97920cc9f4571caf0de1ba83b94ded902a03b36c10a389
-R 7c259616b48958b222370dcf666e6512
-U stephan
-Z ceb56069ad8fabf4af8cfb5eb42bafe3
+P eb27feecea508f3491a09699f2339951facd2345d479cfd3020183dc2af703b2
+R d9029a8d7af89f7bcaaa52e77671d993
+U dan
+Z 711e972efe20ba3f8cde77248740eec0
 # Remove this line to create a well-formed Fossil manifest.
index 6a62eaa6783bd93a4db6965db00023cc79e8cd8b..29eb87a2b29a1b7c112e5c88121f352f6c2f81d6 100644 (file)
@@ -1 +1 @@
-eb27feecea508f3491a09699f2339951facd2345d479cfd3020183dc2af703b2
\ No newline at end of file
+bd537f2057a4800bd30e7dd57405c3e57df649471104c80bd32573a89568029e
\ No newline at end of file
index 4ea3cffde88c449b2baf2e7f0004519e331098c8..97b6bed0fd04ee091adf5f21390da4460fb17336 100644 (file)
@@ -535,7 +535,7 @@ static int memdbOpen(
 
   memset(pFile, 0, sizeof(*pFile));
   szName = sqlite3Strlen30(zName);
-  if( szName>1 && zName[0]=='/' ){
+  if( szName>1 && (zName[0]=='/' || zName[0]=='\\') ){
     int i;
 #ifndef SQLITE_MUTEX_OMIT
     sqlite3_mutex *pVfsMutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1);
index 91843aa1916e483052f2f5b7a7091a5445d4b968..286bfc3f8493200745b2ab56a6f34eb7a0c5d531 100644 (file)
@@ -14,7 +14,7 @@
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
-set testprefix memdb1
+set testprefix memdb2
 do_not_use_codec
 
 ifcapable !deserialize {
@@ -28,39 +28,50 @@ db close
 # Test that when using a memdb database, it is not possible to upgrade
 # to an EXCLUSIVE lock if some other client is holding SHARED.
 #
-sqlite3 db  file:/test.db?vfs=memdb -uri 1
-sqlite3 db2 file:/test.db?vfs=memdb -uri 1
+foreach {tn fname} {
+    1   file:/test.db?vfs=memdb
+    2   file:\\test.db?vfs=memdb
+} {
+  if {$tn==2} breakpoint
+  sqlite3 db  $fname -uri 1
+  sqlite3 db2 $fname -uri 1
 
-do_execsql_test 1.1 {
-  CREATE TABLE t1(x, y);
-  INSERT INTO t1 VALUES(1, 2);
+  
+  do_execsql_test 1.$tn.1 {
+    CREATE TABLE t1(x, y);
+    INSERT INTO t1 VALUES(1, 2);
+  }
+  
+  do_execsql_test -db db2 1.$tn.2 {
+    BEGIN;
+      SELECT * FROM t1;
+  } {1 2}
+  
+  do_execsql_test 1.$tn.3 {
+    BEGIN;
+      INSERT INTO t1 VALUES(3, 4);
+  }
+  
+  do_catchsql_test 1.$tn.4 {
+    COMMIT
+  } {1 {database is locked}}
+  
+  do_execsql_test -db db2 1.$tn.5 {
+      SELECT * FROM t1;
+    END;
+  } {1 2}
+  
+  do_execsql_test 1.$tn.6 {
+    COMMIT
+  } {}
+  
+  do_execsql_test -db db2 1.$tn.7 {
+    SELECT * FROM t1
+  } {1 2 3 4}
+  
+  db close
+  db2 close
 }
 
-do_execsql_test -db db2 1.2 {
-  BEGIN;
-    SELECT * FROM t1;
-} {1 2}
-
-do_execsql_test 1.3 {
-  BEGIN;
-    INSERT INTO t1 VALUES(3, 4);
-}
-
-do_catchsql_test 1.4 {
-  COMMIT
-} {1 {database is locked}}
-
-do_execsql_test -db db2 1.5 {
-    SELECT * FROM t1;
-  END;
-} {1 2}
-
-do_execsql_test 1.6 {
-  COMMIT
-} {}
-
-do_execsql_test -db db2 1.7 {
-  SELECT * FROM t1
-} {1 2 3 4}
-
 finish_test
+