]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid an unnecessary branch when not using pre-update hooks.
authordrh <drh@noemail.net>
Fri, 12 Jan 2018 18:46:52 +0000 (18:46 +0000)
committerdrh <drh@noemail.net>
Fri, 12 Jan 2018 18:46:52 +0000 (18:46 +0000)
FossilOrigin-Name: ec96707eb359c7e0597ee22e5ae017774366463dffa6bdb06e4438b09549f5c0

manifest
manifest.uuid
src/vdbe.c

index b9288406258dbee555a66651c86020caf04dd1f4..c7f4c5f8470ecd5a6397da72bf5c38d16750253a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sobsolete\scomments.\s\sNo\schanges\sto\scode.
-D 2018-01-12T18:03:38.307
+C Avoid\san\sunnecessary\sbranch\swhen\snot\susing\spre-update\shooks.
+D 2018-01-12T18:46:52.041
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 38f84f301cbef443b2d269f67a74b8cc536469831f70df7c3e912acc04932cc2
@@ -554,7 +554,7 @@ F src/update.c 8bd52c38d6d426925be4488ee106db26d9ee344406315671ed246ddace8d6091
 F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
 F src/util.c 7315e97a8dc2c8e19ca64196c652cf0a65d13fd0a211b2cec082062372dc6261
 F src/vacuum.c 90839322fd5f00df9617eb21b68beda9b6e2a2937576b0d65985e4aeb1c53739
-F src/vdbe.c 5d83f28acbce72f3bb35917c75c34131022010f0a54dbd5ae2cbbf21f08c38c1
+F src/vdbe.c a7d0f8312eea5c2084349f0ea13b25fa7ecdb3606d8aab393d4a98ca7ac4c62b
 F src/vdbe.h 134beb7a12a6213c00eba58febaede33447cc4441bc568a0d9c144b33fc3720a
 F src/vdbeInt.h a0969c14950bcc61b2dfa19c6f62b42c5012013fcda342ca927a192ed37e6592
 F src/vdbeapi.c f519346f6db99a1eb3f85ca3ae8aede9ff9c4d90fec809dae7cb946786b2e270
@@ -1699,7 +1699,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 2064233533edec0308d0212fb08e72fd14c760a1c88452424cae298e9eaf4af8
-R 3e8aedeebf1827d98e1081cfd8339e33
+P ec39c99bea024ffce9b87bbf3d80087ff772f43f7fb7e238754c364f7db2a17b
+R 639f4697487bdd2e7953131ba8eccf21
 U drh
-Z 59c372a6dec67f6ff695d342429f4b78
+Z a0b90d4f07f3f08da8d3bc6f5ca171c6
index 7b4544545f11aa3bee5e873b40b17945a806d02c..c70f198da6e84fb647ff42b3ff22cd850a573708 100644 (file)
@@ -1 +1 @@
-ec39c99bea024ffce9b87bbf3d80087ff772f43f7fb7e238754c364f7db2a17b
\ No newline at end of file
+ec96707eb359c7e0597ee22e5ae017774366463dffa6bdb06e4438b09549f5c0
\ No newline at end of file
index f5112e0daa4db9f8f43f3ed01ed0a5dd42e57860..5a3908cda633ace6973ba8b99b04c4fb2d8ea37c 100644 (file)
@@ -4454,11 +4454,14 @@ case OP_InsertInt: {
 
 #ifdef SQLITE_ENABLE_PREUPDATE_HOOK
   /* Invoke the pre-update hook, if any */
-  if( db->xPreUpdateCallback 
-   && pOp->p4type==P4_TABLE
-   && !(pOp->p5 & OPFLAG_ISUPDATE)
-  ){
-    sqlite3VdbePreUpdateHook(p, pC, SQLITE_INSERT, zDb, pTab, x.nKey, pOp->p2);
+  if( pOp->p4type==P4_TABLE ){
+    if( db->xPreUpdateCallback && !(pOp->p5 & OPFLAG_ISUPDATE) ){
+      sqlite3VdbePreUpdateHook(p, pC, SQLITE_INSERT, zDb, pTab, x.nKey,pOp->p2);
+    }
+    if( op && pTab->aCol==0 ){
+      assert( sqlite3_stricmp(pTab->zName, "sqlite_stat1")==0 );
+      op = 0;
+    }
   }
   if( pOp->p5 & OPFLAG_ISNOOP ) break;
 #endif
@@ -4483,8 +4486,8 @@ case OP_InsertInt: {
 
   /* Invoke the update-hook if required. */
   if( rc ) goto abort_due_to_error;
-  assert( !op || pTab->aCol || !sqlite3_stricmp(pTab->zName,"sqlite_stat1") );
-  if( db->xUpdateCallback && op && pTab->aCol ){
+  if( db->xUpdateCallback && op ){
+    assert( pTab->aCol );
     db->xUpdateCallback(db->pUpdateArg, op, zDb, pTab->zName, x.nKey);
   }
   break;