aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build.c2
-rw-r--r--src/delete.c1
-rw-r--r--src/insert.c1
-rw-r--r--src/update.c1
4 files changed, 5 insertions, 0 deletions
diff --git a/src/build.c b/src/build.c
index a25c9c6d8..74c5319ca 100644
--- a/src/build.c
+++ b/src/build.c
@@ -1267,6 +1267,8 @@ void sqlite3AddReturning(Parse *pParse, ExprList *pList){
Returning *pRet;
Hash *pHash;
sqlite3 *db = pParse->db;
+ assert( !pParse->bReturning );
+ pParse->bReturning = 1;
pRet = sqlite3DbMallocZero(db, sizeof(*pRet));
if( pRet==0 ){
sqlite3ExprListDelete(db, pList);
diff --git a/src/delete.c b/src/delete.c
index 064ae7325..e9b092b24 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -387,6 +387,7 @@ void sqlite3DeleteFrom(
if( (db->flags & SQLITE_CountRows)!=0
&& !pParse->nested
&& !pParse->pTriggerTab
+ && !pParse->bReturning
){
memCnt = ++pParse->nMem;
sqlite3VdbeAddOp2(v, OP_Integer, 0, memCnt);
diff --git a/src/insert.c b/src/insert.c
index 6047969c0..4f549f352 100644
--- a/src/insert.c
+++ b/src/insert.c
@@ -954,6 +954,7 @@ void sqlite3Insert(
if( (db->flags & SQLITE_CountRows)!=0
&& !pParse->nested
&& !pParse->pTriggerTab
+ && !pParse->bReturning
){
regRowCount = ++pParse->nMem;
sqlite3VdbeAddOp2(v, OP_Integer, 0, regRowCount);
diff --git a/src/update.c b/src/update.c
index f8cb2afed..82a6eb635 100644
--- a/src/update.c
+++ b/src/update.c
@@ -643,6 +643,7 @@ void sqlite3Update(
if( (db->flags&SQLITE_CountRows)!=0
&& !pParse->pTriggerTab
&& !pParse->nested
+ && !pParse->bReturning
&& pUpsert==0
){
regRowCount = ++pParse->nMem;