]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid the use of statement journals on DELETEs of a single row without
authordrh <drh@noemail.net>
Fri, 20 Apr 2018 19:46:52 +0000 (19:46 +0000)
committerdrh <drh@noemail.net>
Fri, 20 Apr 2018 19:46:52 +0000 (19:46 +0000)
triggers or foreign keys.

FossilOrigin-Name: 20bf5800808ea02b2aa4bf01a380926784c0e7514a2c73ca303cac1f5c732ae0

manifest
manifest.uuid
src/delete.c

index c125bf160c2e37de2054936a2fb420ad439cadd9..4040315166abf922ef2e9e9defd8b0dfc6c7ac52 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Avoid\sopening\sa\sstatement\sjournal\son\ssingle-row\sUPDATEs\swithout\striggers\sor\nFK\sconstraints.
-D 2018-04-20T19:32:35.766
+C Avoid\sthe\suse\sof\sstatement\sjournals\son\sDELETEs\sof\sa\ssingle\srow\swithout\ntriggers\sor\sforeign\skeys.
+D 2018-04-20T19:46:52.676
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 5ce9343cba9c189046f1afe6d2bcc1f68079439febc05267b98aec6ecc752439
@@ -443,7 +443,7 @@ F src/ctime.c 849d4cebe008cfc6e4799b034a172b4eaf8856b100739632a852732ba66eee48
 F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957
 F src/dbpage.c 8db4c97f630e7d83f884ea75caf1ffd0988c160e9d530194d93721c80821e0f6
 F src/dbstat.c edabb82611143727511a45ca0859b8cd037851ebe756ae3db289859dd18b6f91
-F src/delete.c 333aca5587c690bbc460c9b2e6842e7080b1f7abac0e6ca4d3f82c2aea328def
+F src/delete.c b0f90749e22d5e41a12dbf940f4811138cf97da54b46b737089b93eb64a2896f
 F src/expr.c 53df437b3a4a404f039645919b2d6a56a2f59b9883e858940cd2a8858a25cd3d
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c d617daf66b5515e2b42c1405b2b4984c30ca50fb705ab164271a9bf66c69e331
@@ -1724,7 +1724,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 279c48f6061f766f5437edd6964c0dd1e10399314eb17b6e5ee34df925a776ed
-R f59d9c8d7506cfee5d11867351ba9adc
+P 2772404b8c570caf3c31d2b0530cf347a24f6f60e220e726c086537b38ebfa85
+R ee450c0b69f4dcb2215df3be5c0b6054
 U drh
-Z f6c31c0d19eadcc475691d30218d7dbb
+Z 19b2fe2aad3c7a4f7bc67e8d88be66a9
index 7d201a25592b6f33c8b2ae918911c574487f3dfa..e14a2a169d7cf8f4e1d22295376a79ca96773955 100644 (file)
@@ -1 +1 @@
-2772404b8c570caf3c31d2b0530cf347a24f6f60e220e726c086537b38ebfa85
\ No newline at end of file
+20bf5800808ea02b2aa4bf01a380926784c0e7514a2c73ca303cac1f5c732ae0
\ No newline at end of file
index 7a33fcf6cd1298d0894ed412c96f6286427f4bb7..8efe89ded4ad32698710edf8e9eb44b0693c4489 100644 (file)
@@ -343,7 +343,7 @@ void sqlite3DeleteFrom(
     goto delete_from_cleanup;
   }
   if( pParse->nested==0 ) sqlite3VdbeCountChanges(v);
-  sqlite3BeginWriteOperation(pParse, 1, iDb);
+  sqlite3BeginWriteOperation(pParse, bComplex, iDb);
 
   /* If we are trying to delete from a view, realize that view into
   ** an ephemeral table.
@@ -447,6 +447,7 @@ void sqlite3DeleteFrom(
     eOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass);
     assert( IsVirtual(pTab)==0 || eOnePass!=ONEPASS_MULTI );
     assert( IsVirtual(pTab) || bComplex || eOnePass!=ONEPASS_OFF );
+    if( eOnePass!=ONEPASS_SINGLE ) sqlite3MultiWrite(pParse);
   
     /* Keep track of the number of rows to be deleted */
     if( memCnt ){