]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Improved error handling when ".open" fails in the CLI.
authordrh <>
Mon, 8 May 2023 13:47:38 +0000 (13:47 +0000)
committerdrh <>
Mon, 8 May 2023 13:47:38 +0000 (13:47 +0000)
FossilOrigin-Name: 38544b11f0e19cc6c6f8230a89d28e36c7c3587481deaac6cedbf82338ca0d47

manifest
manifest.uuid
src/shell.c.in

index c46c202af70912c1cd5859e24e6df33d48d5c4e5..25749f8ec3c0719e4a760264b3076e5cbb86488c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C In\seditPage(),\sif\san\sattempt\sis\smade\sto\sedit\san\sempty\s64KB\spage,\sthen\stake\nthe\sslow\spath\sthrough\srebuildPage(),\sin\sorder\sto\smaintain\sstrict\sinvariants\nin\sthe\seditPage()\scode.\n[forum:/forumpost/0f37727c0d|Forum\spost\s0f37727c0d].
-D 2023-05-08T13:38:14.485
+C Improved\serror\shandling\swhen\s".open"\sfails\sin\sthe\sCLI.
+D 2023-05-08T13:47:38.883
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -636,7 +636,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 3e53e02ce87c9582bd7e7d22f13f4094a271678d9dc72820fa257a2abb5e4032
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c f9333ef8181192c22662f5cb8d257efc4a2880f9ee4853c6c4616f783d27e1b5
-F src/shell.c.in 39ea3d9c17c65c42c6c415222d89a32ae683b245c8af7b4bfc544d9246055d16
+F src/shell.c.in e0ca294a4ca6322fd0888bc090d34047347ff591ca9ac8846adc57b13ab91bee
 F src/sqlite.h.in 27ca1d4b2eda8feee468af5735182390e8fe4696522751eec0136d17323201ad
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h da473ce2b3d0ae407a6300c4a164589b9a6bfdbec9462688a8593ff16f3bb6e4
@@ -2068,8 +2068,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 c335737c2889722ea05b732a5efff8a2f31140c18ca038c41e05c2a26e0db5bd
-R a4c80707056958d556ff67539a7c1798
+P a865e574e510c1ca192d0bd5293fb583def90f7ed086af2c89ca856ce93d115b
+R c59c0ab602565c9462d7f8be44cc8aca
 U drh
-Z b12cc07b0d2ae6aee47dbd1c24cec27b
+Z da3351fa0642cbfa8d9f8540ca3ba271
 # Remove this line to create a well-formed Fossil manifest.
index 3354f0fd77463602c2764cad86d1d3677b8e22f4..9962ca64faedd1ab1920a4053f2a525db98d5e47 100644 (file)
@@ -1 +1 @@
-a865e574e510c1ca192d0bd5293fb583def90f7ed086af2c89ca856ce93d115b
\ No newline at end of file
+38544b11f0e19cc6c6f8230a89d28e36c7c3587481deaac6cedbf82338ca0d47
\ No newline at end of file
index bf804aca9f1ec311365623986ba02cde7f9c20ff..567752e9b0f19dbbd84b6716cd5251b6a3e1a1c5 100644 (file)
@@ -5380,11 +5380,21 @@ static void open_db(ShellState *p, int openFlags){
     if( p->db==0 || SQLITE_OK!=sqlite3_errcode(p->db) ){
       utf8_printf(stderr,"Error: unable to open database \"%s\": %s\n",
           zDbFilename, sqlite3_errmsg(p->db));
-      if( openFlags & OPEN_DB_KEEPALIVE ){
-        sqlite3_open(":memory:", &p->db);
-        return;
+      if( (openFlags & OPEN_DB_KEEPALIVE)==0 ){
+        exit(1);
+      }
+      sqlite3_close(p->db);
+      sqlite3_open(":memory:", &p->db);
+      if( p->db==0 || SQLITE_OK!=sqlite3_errcode(p->db) ){
+        utf8_printf(stderr,
+          "Also: unable to open substitute in-memory database.\n"
+        );
+        exit(1);
+      }else{
+        utf8_printf(stderr,
+          "Notice: using substitute in-memory database instead of \"%s\"\n",
+          zDbFilename);
       }
-      exit(1);
     }
     sqlite3_db_config(p->db, SQLITE_DBCONFIG_STMT_SCANSTATUS, (int)0, (int*)0);