]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change the name of the ".recover" command option "--freelist-corrupt" to "--ignore...
authordan <Dan Kennedy>
Thu, 27 Oct 2022 18:19:45 +0000 (18:19 +0000)
committerdan <Dan Kennedy>
Thu, 27 Oct 2022 18:19:45 +0000 (18:19 +0000)
FossilOrigin-Name: afce8443ace57c3c99c6810be98f05ed716ae504b68098726c869843c643bbf0

manifest
manifest.uuid
src/shell.c.in
test/recover.test

index cf243b4c10888cdb47b39606c90b7711d3db39f0..36ea326c15f26b759fb6e5a3fb301c743501da95 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C speedtest1.html:\swhen\svfs==kvvfs,\sincrease\s--size\sfrom\s2\sto\s4,\sas\senabled\sby\s[a4d40f6346e7].\s--size\s5\sis\s4.96mb\sout\sof\s(supposedly)\s5mb,\swhich\sworks\sbut\sis\sa\sbit\stoo\sclose\sto\sthe\sedge.
-D 2022-10-27T14:41:38.247
+C Change\sthe\sname\sof\sthe\s".recover"\scommand\soption\s"--freelist-corrupt"\sto\s"--ignore-freelist".
+D 2022-10-27T18:19:45.230
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -636,7 +636,7 @@ F src/random.c 546d6feb15ec69c1aafe9bb351a277cbb498fd5410e646add673acb805714960
 F src/resolve.c efea4e5fbecfd6d0a9071b0be0d952620991673391b6ffaaf4c277b0bb674633
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c 8a709a8e19b32d2c411eaae1a10e2ee214cf740288859a9f9a362fcb2f50eaf1
-F src/shell.c.in 02634e7996d087f24cb585aaec6296989e7addf306b6befc27a9a4d391262ea7
+F src/shell.c.in af6bf3efa19b22c72058427e3d7f7814b72929aee1bd58fd39b992c0f8383b60
 F src/sqlite.h.in d9c8a6243fc0a1c270d69db33758e34b810af3462f9bc5b4af113b347e07c69d
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 5336beea1868d99d2f62e628dbea55e97267dbff8193291ab175e960c5df9141
@@ -1408,7 +1408,7 @@ F test/randexpr1.tcl 40dec52119ed3a2b8b2a773bce24b63a3a746459
 F test/randexpr1.test eda062a97e60f9c38ae8d806b03b0ddf23d796df
 F test/rbu.test 168573d353cd0fd10196b87b0caa322c144ef736
 F test/rdonly.test 64e2696c322e3538df0b1ed624e21f9a23ed9ff8
-F test/recover.test ccb8c2623902a92ebb76770edd075cb4f75a4760bb7afde38026572c6e79070d
+F test/recover.test cd81539661b9a6263d68f7bfd1440f4ac0aeb68f0fa0370db32a9e706da89de7
 F test/regexp1.test 83c631617357150f8054ca1d1fed40a552b0d0f8eb7a7f090c3be02cee9f9913
 F test/regexp2.test 55ed41da802b0e284ac7e2fe944be3948f93ff25abbca0361a609acfed1368b5
 F test/reindex.test cd9d6021729910ece82267b4f5e1b5ac2911a7566c43b43c176a6a4732e2118d
@@ -2052,8 +2052,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 a4d40f6346e7eb2a5239684dba86f297358122768a4d4bf6786b6028f4300e04
-R 99c4e795333d2dc1049d59bf743d209d
-U stephan
-Z 2931f3e9dccb9e9bedf9ff1781ba6005
+P a608d584a8a68ebaf8566cffc9c33f59309b710e7b29229a15bef529702f35d5
+R acdd9868710d658cbd45f34ba638ca6b
+U dan
+Z 87ba6aaecfad0a3a8476812a05f3df34
 # Remove this line to create a well-formed Fossil manifest.
index 1c98cca254e9c21787e8400c196a7bc8566f28ec..f33ea7e2d6ca784dc0ea174e8bcf06255b8958ff 100644 (file)
@@ -1 +1 @@
-a608d584a8a68ebaf8566cffc9c33f59309b710e7b29229a15bef529702f35d5
\ No newline at end of file
+afce8443ace57c3c99c6810be98f05ed716ae504b68098726c869843c643bbf0
\ No newline at end of file
index 6c4c3e5f72c9808e8767bb9d2139353757da0389..b1cfe9d5b268c855d7ffeb6fa4be4b2e318d96fe 100644 (file)
@@ -4512,7 +4512,7 @@ static const char *(azHelp[]) = {
 #endif
 #if SQLITE_SHELL_HAVE_RECOVER
   ".recover                 Recover as much data as possible from corrupt db.",
-  "   --freelist-corrupt       Assume the freelist is corrupt",
+  "   --ignore-freelist        Ignore pages that appear to be on db freelist",
   "   --recovery-db NAME       Store recovery metadata in database file NAME",
   "   --lost-and-found TABLE   Alternative name for the lost-and-found table",
   "   --no-rowids              Do not attempt to recover rowid values",
@@ -7304,7 +7304,7 @@ static int recoverDatabaseCmd(ShellState *pState, int nArg, char **azArg){
   int rc = SQLITE_OK;
   const char *zRecoveryDb = "";   /* Name of "recovery" database */
   const char *zLAF = "lost_and_found";
-  int bFreelist = 1;              /* 0 if --freelist-corrupt is specified */
+  int bFreelist = 1;              /* 0 if --ignore-freelist is specified */
   int bRowids = 1;                /* 0 if --no-rowids */
   sqlite3_recover *p = 0;
   int i = 0;
@@ -7314,7 +7314,7 @@ static int recoverDatabaseCmd(ShellState *pState, int nArg, char **azArg){
     int n;
     if( z[0]=='-' && z[1]=='-' ) z++;
     n = strlen30(z);
-    if( n<=17 && memcmp("-freelist-corrupt", z, n)==0 ){
+    if( n<=17 && memcmp("-ignore-freelist", z, n)==0 ){
       bFreelist = 0;
     }else
     if( n<=12 && memcmp("-recovery-db", z, n)==0 && i<(nArg-1) ){
index 469c43b115da916b5f70172ff44a61a93a604e6f..b60892459ff5a1b5f30a50c00075249c987bedf0 100644 (file)
@@ -39,8 +39,9 @@ proc compare_dbs {db1 db2} {
   }
 }
 
-proc do_recover_test {tn {tsql {}} {res {}}} {
-  set fd [open "|$::CLI test.db .recover"]
+proc recover_with_opts {opts} {
+  set cmd ".recover $opts"
+  set fd [open [list |$::CLI test.db $cmd]]
   fconfigure $fd -encoding binary
   fconfigure $fd -translation binary
   set sql [read $fd]
@@ -49,6 +50,13 @@ proc do_recover_test {tn {tsql {}} {res {}}} {
   forcedelete test.db2
   sqlite3 db2 test.db2
   execsql $sql db2
+  db2 close
+}
+
+proc do_recover_test {tn {tsql {}} {res {}}} {
+  recover_with_opts ""
+
+  sqlite3 db2 test.db2
   if {$tsql==""} {
     uplevel [list do_test $tn [list compare_dbs db db2] {}]
   } else {
@@ -131,4 +139,39 @@ do_recover_test 2.4.1 {
 reset_db
 do_recover_test 3.0
 
+#-------------------------------------------------------------------------
+reset_db 
+do_execsql_test 4.0 {
+  CREATE TABLE t1(a, b, c);
+  CREATE TABLE t2(d, e, f);
+  CREATE TABLE t3(g, h, i);
+
+  INSERT INTO t2 VALUES(1, 2, 3);
+  INSERT INTO t2 VALUES('a', 'b', 'c');
+
+  INSERT INTO t3 VALUES('one', 'two', 'three');
+  DROP TABLE t1;
+  DROP TABLE t2;
+}
+
+recover_with_opts ""
+sqlite3 db2 test.db2
+do_execsql_test -db db2 4.1.1 {
+  SELECT name FROM sqlite_schema
+} {t3 lost_and_found}
+do_execsql_test -db db2 4.1.2 {
+  SELECT id, c0, c1, c2 FROM lost_and_found
+} {1 1 2 3    2 a b c}
+db2 close
+
+recover_with_opts -ignore-freelist
+sqlite3 db2 test.db2
+do_execsql_test -db db2 4.2.1 {
+  SELECT name FROM sqlite_schema
+} {t3}
+do_execsql_test -db db2 4.2.2 {
+  SELECT * FROM t3
+} {one two three}
+db2 close
+
 finish_test