]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Have the recover module add "PRAGMA foreign_keys = off" to SQL output. Have the shell...
authordan <Dan Kennedy>
Wed, 5 Mar 2025 19:39:02 +0000 (19:39 +0000)
committerdan <Dan Kennedy>
Wed, 5 Mar 2025 19:39:02 +0000 (19:39 +0000)
FossilOrigin-Name: dcfe3d3292851aa48a085a2c68623b049e2786c8dc7154ccc78508443973b5a1

ext/recover/recoverslowidx.test
ext/recover/sqlite3recover.c
manifest
manifest.uuid
src/shell.c.in
test/recover.test

index 269105113dd6bf87d05dd9d54497843f0890e857..36842b8a6487a5d7efbe17e73b3023cd50c7ec21 100644 (file)
@@ -39,6 +39,7 @@ do_test 1.2 {
 } [list {*}{
   {BEGIN}
   {PRAGMA writable_schema = on}
+  {PRAGMA foreign_keys = off}
   {PRAGMA encoding = 'UTF-8'}
   {PRAGMA page_size = '1024'}
   {PRAGMA auto_vacuum = '0'}
@@ -67,6 +68,7 @@ do_test 1.4 {
 } [list {*}{
   {BEGIN}
   {PRAGMA writable_schema = on}
+  {PRAGMA foreign_keys = off}
   {PRAGMA encoding = 'UTF-8'}
   {PRAGMA page_size = '1024'}
   {PRAGMA auto_vacuum = '0'}
index 643a1fb07771ae253c5427804cc5ad42c1afc3df..b13719083db41dd16d2eab3963f76e773bcd1c35 100644 (file)
@@ -2580,6 +2580,7 @@ static void recoverStep(sqlite3_recover *p){
       */
       recoverSqlCallback(p, "BEGIN");
       recoverSqlCallback(p, "PRAGMA writable_schema = on");
+      recoverSqlCallback(p, "PRAGMA foreign_keys = off");
 
       recoverEnterMutex();
 
index b664efcf749bb9dd78b0fe3c7cc4d7902654e3dc..88edfa11a48cdaa2060fa83647976e8beab69ba1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Always\signore\scomments\sin\sthe\sschema\sof\sa\sdatabase,\seven\sif\nSQLITE_DBCONFIG_ENABLE_COMMENTS\sis\sturned\soff.
-D 2025-03-05T18:18:17.032
+C Have\sthe\srecover\smodule\sadd\s"PRAGMA\sforeign_keys\s=\soff"\sto\sSQL\soutput.\sHave\sthe\sshell\stool\sadd\s".dbconfig\sdefensive\soff".
+D 2025-03-05T19:39:02.155
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -521,9 +521,9 @@ F ext/recover/recoverfault2.test 730e7371bcda769554d15460cb23126abba1be8eca9539c
 F ext/recover/recoverold.test 68db3d6f85dd2b98e785b6c4da4f5eea4bbe52ccf6674d9a94c7506dc92596aa
 F ext/recover/recoverpgsz.test 88766fcb810e52ee05335c456d4e5fb06d02b73d3ccb48c52bf293434305e2b1
 F ext/recover/recoverrowid.test f948bf4024a5f41b0e21b8af80c60564c5b5d78c05a8d64fc00787715ff9f45f
-F ext/recover/recoverslowidx.test 5205a9742dd9490ee99950dabb622307355ef1662dea6a3a21030057bfd81411
+F ext/recover/recoverslowidx.test c90d59c46bb8924a973ac6fbc38f3163cee38cc240256addcab1cf1a322c37dc
 F ext/recover/recoversql.test e66d01f95302a223bcd3fd42b5ee58dc2b53d70afa90b0d00e41e4b8eab20486
-F ext/recover/sqlite3recover.c f9f454ffb9299092e99cdd72d9bbf22a74042b61d3ee832b78a11295caf057fa
+F ext/recover/sqlite3recover.c 0ecdcb4df8967c84aa4dfe786816998bf2ef5cce55f4ac85ad4079e76f271027
 F ext/recover/sqlite3recover.h 011c799f02deb70ab685916f6f538e6bb32c4e0025e79bfd0e24ff9c74820959
 F ext/recover/test_recover.c 072260d7452a3b81aba995b2b3269e7ec2aa7f06725544ba4c25b1b0a1dbc61a
 F ext/repair/README.md 92f5e8aae749a4dae14f02eea8e1bb42d4db2b6ce5e83dbcdd6b1446997e0c15
@@ -782,7 +782,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 626c24b258b111f75c22107aa5614ad89810df3026f5ca071116d3fe75925c75
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c a076f7db3a0fcbd9f710d7746cfc07e0b3baadee45eb3136bedc29c598ef8f1c
-F src/shell.c.in 79f306cb3a2d3f949855dac6b5e7554df2717d5051c5fc4d951812e10060de38
+F src/shell.c.in 4847cc7b4adf3f010c15ced5ea1251de4b7b39018c8cd5d77b3b0929985a04e5
 F src/sqlite.h.in 3db05f6603c78d9e6fe035e9e12bed4ca8140135d05ff092becc2cf7d7d1fefb
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 3f046c04ea3595d6bfda99b781926b17e672fd6d27da2ba6d8d8fc39981dcb54
@@ -1558,7 +1558,7 @@ F test/randexpr1.test eda062a97e60f9c38ae8d806b03b0ddf23d796df
 F test/rbu.test 168573d353cd0fd10196b87b0caa322c144ef736
 F test/rdonly.test 64e2696c322e3538df0b1ed624e21f9a23ed9ff8
 F test/readonly.test 69a7ccec846cad2e000b3539d56360d02f327061dc5e41f7f9a3e01f19719952
-F test/recover.test a163a156ea9f2beea63fa83c4dcd8dea6e57b8a569fc647155e3d2754eaac1b5
+F test/recover.test c76d05f33f0271fba0f0752170e03b0ab5952dc61dcea7ab3ba40df03c4c42de
 F test/regexp1.test 8f2a8bc1569666e29a4cee6c1a666cd224eb6d50e2470d1dc1df995170f3e0f1
 F test/regexp2.test 55ed41da802b0e284ac7e2fe944be3948f93ff25abbca0361a609acfed1368b5
 F test/reindex.test cd9d6021729910ece82267b4f5e1b5ac2911a7566c43b43c176a6a4732e2118d
@@ -2213,8 +2213,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P b0b66f21159b47e1950ca63a01f92fe4f621efb9a2962b310d65fa7ebdbb43b3
-R 80ec4c58f66aaf3822aba9e80edae374
-U drh
-Z d18a58001daeeed84852f4117b8a6ab7
+P 373ae3f4de526c636c35db03d6b5c84526d6f144c1c3bebcbb257e52f563a203
+R 38fa5364fa5cffdc78b1c32dbd4f81d6
+U dan
+Z 397711d5197aed7f09beea9e54a174c7
 # Remove this line to create a well-formed Fossil manifest.
index b16ec70bb3aca07927e45f2aa3ba052ff8399949..88b0b3a5aa9febb067eff515ffac5f155de52d16 100644 (file)
@@ -1 +1 @@
-373ae3f4de526c636c35db03d6b5c84526d6f144c1c3bebcbb257e52f563a203
+dcfe3d3292851aa48a085a2c68623b049e2786c8dc7154ccc78508443973b5a1
index 1717f76d44aa1d676997d6ff4574e83844e19ef4..f4451d292eb4bd152430a81ab218551abdeaadb5 100644 (file)
@@ -8183,6 +8183,7 @@ static int recoverDatabaseCmd(ShellState *pState, int nArg, char **azArg){
   sqlite3_recover_config(p, SQLITE_RECOVER_ROWIDS, (void*)&bRowids);
   sqlite3_recover_config(p, SQLITE_RECOVER_FREELIST_CORRUPT,(void*)&bFreelist);
 
+  sqlite3_fprintf(pState->out, ".dbconfig defensive off\n");
   sqlite3_recover_run(p);
   if( sqlite3_recover_errcode(p)!=SQLITE_OK ){
     const char *zErr = sqlite3_recover_errmsg(p);
index 268d3a55b06beaa85255637e49b7630d0e4eb633..ad6b7298dce1e242b68340e57b77bed272c28fa4 100644 (file)
@@ -47,6 +47,9 @@ proc recover_with_opts {opts} {
   set sql [read $fd]
   close $fd
 
+  # Remove the ".dbconfig defensive off" line
+  set sql [string map {".dbconfig defensive off" ""} $sql]
+
   forcedelete test.db2
   sqlite3 db2 test.db2
   execsql $sql db2