mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-18 10:21:03 +03:00
RETURNING works even if "PRAGMA count_changes=ON" is set.
FossilOrigin-Name: a9122d97577b239704cdee1a90a3b0dbff8bdf9dea2324d7315bd47238dcc8eb
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -643,6 +643,7 @@ void sqlite3Update(
|
||||
if( (db->flags&SQLITE_CountRows)!=0
|
||||
&& !pParse->pTriggerTab
|
||||
&& !pParse->nested
|
||||
&& !pParse->bReturning
|
||||
&& pUpsert==0
|
||||
){
|
||||
regRowCount = ++pParse->nMem;
|
||||
|
||||
Reference in New Issue
Block a user