]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level
authordrh <drh@noemail.net>
Tue, 29 Sep 2015 13:25:15 +0000 (13:25 +0000)
committerdrh <drh@noemail.net>
Tue, 29 Sep 2015 13:25:15 +0000 (13:25 +0000)
VDBE is being coded (versus a trigger) and use that interface.

FossilOrigin-Name: 59662cd2b65255a30e1a420331c07c51b644621a

manifest
manifest.uuid
src/delete.c
src/insert.c
src/sqliteInt.h
src/update.c

index ded8386abbca62233074334679be885d2c3516c6..353278a1a20b7d254a9d7ca0df5e12dd776998c8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\scompiler\swarnings.
-D 2015-09-29T12:32:56.672
+C Create\sthe\ssqlite3IsToplevel(Parse*)\sinterface\sto\scheck\sto\ssee\sif\sa\stop-level\nVDBE\sis\sbeing\scoded\s(versus\sa\strigger)\sand\suse\sthat\sinterface.
+D 2015-09-29T13:25:15.973
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 2143eeef6d0cc26006ae5fc4bb242a4a8b973412
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -291,7 +291,7 @@ F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f
 F src/ctime.c 5a0b735dc95604766f5dac73973658eef782ee8b
 F src/date.c fb1c99172017dcc8e237339132c91a21a0788584
 F src/dbstat.c e637e7a7ff40ef32132a418c6fdf1cfb63aa27c7
-F src/delete.c 174b140317915e0e8c6e2eff28158eecf95c53d8
+F src/delete.c 46bb5e217f83af68574ccb613421485578c41ba8
 F src/expr.c 3a76afcdac925294c39903b7002ddb9e5fd29863
 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
 F src/fkey.c 83e1baba999bed3144ea5a2143fc922edf51135f
@@ -300,7 +300,7 @@ F src/global.c 508e4087f7b41d688e4762dcf4d4fe28cfbc87f9
 F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
 F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094
 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
-F src/insert.c 9748a37e058256eb2ead69f028ab85ebf203ad15
+F src/insert.c 81d6bf397c05b4e8ddc4af2ff6637c113ee7e37a
 F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
 F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
 F src/lempar.c d344a95d60c24e2f490ee59db9784b1b17439012
@@ -345,7 +345,7 @@ F src/shell.c a11b20da4c6630e0e8f83c47ce36f717dd0422f0
 F src/sqlite.h.in 4b76d74d69af48c534c58fb723137dc6944bdedc
 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
 F src/sqlite3ext.h 64350bf36833a56ad675e27392a913f417c5c308
-F src/sqliteInt.h 5afc6e50402be1e0a870f28e1cd8b32eb9db590f
+F src/sqliteInt.h b6516bb2727876348b4e05aadd12237797626270
 F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46
 F src/status.c f266ad8a2892d659b74f0f50cb6a88b6e7c12179
 F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e
@@ -399,7 +399,7 @@ F src/threads.c bbfb74450643cb5372a43ad4f6cffd7e9dfcecb0
 F src/tokenize.c 83c6ed569423a3af83a83973b444cf7123be33a6
 F src/treeview.c 154f0acc622fa3514de8777dcedf4c8a8802b4ce
 F src/trigger.c 322f23aad694e8f31d384dcfa386d52a48d3c52f
-F src/update.c e0169d20524cf3663c9c6d952e61baf3c03ae797
+F src/update.c d8f0afe1a1c66b97cbd87e5236f4e71d35ab4840
 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
 F src/util.c fc612367108b74573c5fd13a85d0a23027f438bd
 F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701
@@ -1389,7 +1389,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P b519c0d67a8fc39d65c17eccc9300a6187bd5661
-R 3b0dc7b7710e7cf4f943bdd9f5967b17
+P d1a0783854d2e9272320d9ddfa58362532f58d1a
+R a4e26d59514db031d207946929f0dada
 U drh
-Z 7521a63b646e7d2736834b9d13be676e
+Z ab43f3a6d7f071ac781590ae89cc31de
index eeb5e662b891bd1a602417f9723ebdbc6ef24777..906f2b5996e89919c6d0d34df19478b797cf012b 100644 (file)
@@ -1 +1 @@
-d1a0783854d2e9272320d9ddfa58362532f58d1a
\ No newline at end of file
+59662cd2b65255a30e1a420331c07c51b644621a
\ No newline at end of file
index ed843c1a75ee04679053081ded546306332c840a..6a512017e74ffd93be6038235c9a0d22119f7076 100644 (file)
@@ -518,7 +518,7 @@ void sqlite3DeleteFrom(
       sqlite3VdbeChangeP5(v, OE_Abort);
       assert( eOnePass==ONEPASS_OFF || eOnePass==ONEPASS_SINGLE );
       sqlite3MayAbort(pParse);
-      if( eOnePass==ONEPASS_SINGLE && pParse==sqlite3ParseToplevel(pParse) ){
+      if( eOnePass==ONEPASS_SINGLE && sqlite3IsToplevel(pParse) ){
         pParse->isMultiWrite = 0;
       }
     }else
index 53b429c1f40a6ffad36e24adf17cf72b9b4a9179..3ade95e4ece4e5a8b31cf0672420ec7fec5e6a4c 100644 (file)
@@ -260,7 +260,7 @@ void sqlite3AutoincrementBegin(Parse *pParse){
   /* This routine is never called during trigger-generation.  It is
   ** only called from the top-level */
   assert( pParse->pTriggerTab==0 );
-  assert( pParse==sqlite3ParseToplevel(pParse) );
+  assert( sqlite3IsToplevel(pParse) );
 
   assert( v );   /* We failed long ago if this is not so */
   for(p = pParse->pAinc; p; p = p->pNext){
index 747f19b39a6351249bb1f1bb252823462e9e72c7..b32cc21bbb5ac36d6248ae11243490783031c447 100644 (file)
@@ -3504,6 +3504,7 @@ void sqlite3MaterializeView(Parse*, Table*, Expr*, int);
   void sqlite3UnlinkAndDeleteTrigger(sqlite3*,int,const char*);
   u32 sqlite3TriggerColmask(Parse*,Trigger*,ExprList*,int,int,Table*,int);
 # define sqlite3ParseToplevel(p) ((p)->pToplevel ? (p)->pToplevel : (p))
+# define sqlite3IsToplevel(p) ((p)->pToplevel==0)
 #else
 # define sqlite3TriggersExist(B,C,D,E,F) 0
 # define sqlite3DeleteTrigger(A,B)
@@ -3513,6 +3514,7 @@ void sqlite3MaterializeView(Parse*, Table*, Expr*, int);
 # define sqlite3CodeRowTriggerDirect(A,B,C,D,E,F)
 # define sqlite3TriggerList(X, Y) 0
 # define sqlite3ParseToplevel(p) p
+# define sqlite3IsToplevel(p) 1
 # define sqlite3TriggerColmask(A,B,C,D,E,F,G) 0
 #endif
 
index c90320f0b2c80a38f4d3795e484c80695d97e5bb..ba5d0380af9ffa4152d8be3c962d055e3a4ab0ce 100644 (file)
@@ -764,7 +764,7 @@ static void updateVirtualTable(
     ** above. Also, if this is a top-level parse (not a trigger), clear the
     ** multi-write flag so that the VM does not open a statement journal */
     sqlite3VdbeChangeToNoop(v, addr);
-    if( sqlite3ParseToplevel(pParse)==pParse ){
+    if( sqlite3IsToplevel(pParse) ){
       pParse->isMultiWrite = 0;
     }
   }else{