diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/build.c | 2 | ||||
-rw-r--r-- | src/delete.c | 1 | ||||
-rw-r--r-- | src/insert.c | 1 | ||||
-rw-r--r-- | src/update.c | 1 |
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; |