aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2015-09-29 13:25:15 +0000
committerdrh <drh@noemail.net>2015-09-29 13:25:15 +0000
commitc149f18f4da6228c78513d164623d8accf4088a2 (patch)
treed50a49f32c9ea20674f9c5aa3f517d4c508d3e81 /src
parent94f26a1e22cc5ffc0952948d254dc1f3b7c1d142 (diff)
downloadsqlite-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.c2
-rw-r--r--src/insert.c2
-rw-r--r--src/sqliteInt.h2
-rw-r--r--src/update.c2
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{