diff options
author | drh <drh@noemail.net> | 2015-09-29 13:25:15 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-09-29 13:25:15 +0000 |
commit | c149f18f4da6228c78513d164623d8accf4088a2 (patch) | |
tree | d50a49f32c9ea20674f9c5aa3f517d4c508d3e81 /src | |
parent | 94f26a1e22cc5ffc0952948d254dc1f3b7c1d142 (diff) | |
download | sqlite-c149f18f4da6228c78513d164623d8accf4088a2.tar.gz sqlite-c149f18f4da6228c78513d164623d8accf4088a2.zip |
Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level
VDBE is being coded (versus a trigger) and use that interface.
FossilOrigin-Name: 59662cd2b65255a30e1a420331c07c51b644621a
Diffstat (limited to 'src')
-rw-r--r-- | src/delete.c | 2 | ||||
-rw-r--r-- | src/insert.c | 2 | ||||
-rw-r--r-- | src/sqliteInt.h | 2 | ||||
-rw-r--r-- | src/update.c | 2 |
4 files changed, 5 insertions, 3 deletions
diff --git a/src/delete.c b/src/delete.c index ed843c1a7..6a512017e 100644 --- a/src/delete.c +++ b/src/delete.c @@ -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 diff --git a/src/insert.c b/src/insert.c index 53b429c1f..3ade95e4e 100644 --- a/src/insert.c +++ b/src/insert.c @@ -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){ diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 747f19b39..b32cc21bb 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -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 diff --git a/src/update.c b/src/update.c index c90320f0b..ba5d0380a 100644 --- a/src/update.c +++ b/src/update.c @@ -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{ |