]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem causing the pre-update hook to be invoked by DROP TABLE
authordan <dan@noemail.net>
Fri, 27 Jan 2017 17:02:26 +0000 (17:02 +0000)
committerdan <dan@noemail.net>
Fri, 27 Jan 2017 17:02:26 +0000 (17:02 +0000)
statements.

FossilOrigin-Name: fbb6bf1b69cfd581b4ffd778c344e3fbd9c9406f

manifest
manifest.uuid
src/delete.c
test/hook.test

index 1c84aea007b33376a4116247231e69ab6f185b5e..55464d8c360eec547cf1472e2cffd757714d13a0 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Alternative\sICU\sfix\s(compare\sto\scheck-in\s[50e60cb4])\sthat\savoids\scasting\nintegers\sto\spointers.
-D 2017-01-27T13:14:12.467
+C Fix\sa\sproblem\scausing\sthe\spre-update\shook\sto\sbe\sinvoked\sby\sDROP\sTABLE\nstatements.
+D 2017-01-27T17:02:26.115
 F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
@@ -342,7 +342,7 @@ F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 F src/ctime.c 9f2296a4e5d26ebf0e0d95a0af4628f1ea694e7a
 F src/date.c dc3f1391d9297f8c748132813aaffcb117090d6e
 F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
-F src/delete.c 8a444fea8340989d6b1be2e122c55bfc61ce69be
+F src/delete.c 0d9d5549d42e79ce4d82ff1db1e6c81e36d2f67c
 F src/expr.c f06f41e5e5daca10fb090e70a2502dcc0dbc992b
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 2e9aabe1aee76273aff8a84ee92c464e095400ae
@@ -832,7 +832,7 @@ F test/gcfault.test dd28c228a38976d6336a3fc42d7e5f1ad060cb8c
 F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98
 F test/hexlit.test 4a6a5f46e3c65c4bf1fa06f5dd5a9507a5627751
 F test/hidden.test 23c1393a79e846d68fd902d72c85d5e5dcf98711
-F test/hook.test f6a48d33817f0ca1a39a4d6605fe7e9da8077522
+F test/hook.test dbc0b87756e1e20e7497b56889c9e9cd2f8cc2b5
 F test/icu.test 73956798bace8982909c00476b216714a6d0559a
 F test/ieee754.test 806fc0ce7f305f57e3331eaceeddcfec9339e607
 F test/imposter1.test c3f1db2d3db2c24611a6596a3fc0ffc14f1466c8
@@ -1547,7 +1547,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 58f02e6eae8fc9e2577fe435b0282fb46af3960d
-R 4a4a07080dc840a599a4cd01566373f4
-U drh
-Z 816a99767333ba2de388be8cc7b0ed87
+P d9752c8f7c55426fd7d2b877c5cc3784f93b5349
+R 7c4166e1e335b0337f6f8b4996b52965
+U dan
+Z 241b65c68385a1329b03731baa61f118
index 92d5c8ac0b4d24c6d32b2fdc0d38917478f760f2..e1bf32dbf998a729e731fba37136948cf7b94340 100644 (file)
@@ -1 +1 @@
-d9752c8f7c55426fd7d2b877c5cc3784f93b5349
\ No newline at end of file
+fbb6bf1b69cfd581b4ffd778c344e3fbd9c9406f
\ No newline at end of file
index 1d31622237b39a27f8cd2cc0680490c06a53cd04..0683f9b9dd36ad619aaf7f4c35b6ac6c90a1faa8 100644 (file)
@@ -715,7 +715,9 @@ void sqlite3GenerateRowDelete(
     u8 p5 = 0;
     sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur,0,iIdxNoSeek);
     sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, (count?OPFLAG_NCHANGE:0));
-    sqlite3VdbeAppendP4(v, (char*)pTab, P4_TABLE);
+    if( pParse->nested==0 ){
+      sqlite3VdbeAppendP4(v, (char*)pTab, P4_TABLE);
+    }
     if( eMode!=ONEPASS_OFF ){
       sqlite3VdbeChangeP5(v, OPFLAG_AUXDELETE);
     }
index 0c24ec731386d4492402365699998f98acb68350..9ba220cdede5462ace8fb87bcb7778ddd83da0fb 100644 (file)
@@ -849,10 +849,12 @@ do_preupdate_test 7.6.4 {
 }
 
 # No preupdate callbacks for modifying sqlite_master.
-do_preupdate_test 8.1 {
-  CREATE TABLE x1(x, y);
-} {
-}
+do_preupdate_test 8.1 { CREATE TABLE x1(x, y); } { }
+do_preupdate_test 8.2 { ALTER TABLE x1 ADD COLUMN z } { }
+do_preupdate_test 8.3 { ALTER TABLE x1 RENAME TO y1 } { }
+do_preupdate_test 8.4 { CREATE INDEX y1x ON y1(x) } { }
+do_preupdate_test 8.5 { CREATE VIEW v1 AS SELECT * FROM y1 } { }
+do_preupdate_test 8.6 { DROP TABLE y1 } { }
 
 #-------------------------------------------------------------------------
 reset_db