diff options
author | drh <> | 2021-01-29 22:33:05 +0000 |
---|---|---|
committer | drh <> | 2021-01-29 22:33:05 +0000 |
commit | 8f4e2e25c4b5bff5e43bca2f9f166ff48311d6a3 (patch) | |
tree | 0e4bf322a55e2331c8aa7dc88f99e20d9db79c66 /src | |
parent | d086aa0a480f6fabf0bb4f0952ae84d79d4295f4 (diff) | |
download | sqlite-8f4e2e25c4b5bff5e43bca2f9f166ff48311d6a3.tar.gz sqlite-8f4e2e25c4b5bff5e43bca2f9f166ff48311d6a3.zip |
Better handling of errors in RETURNING due to corrupt database files.
FossilOrigin-Name: 6aa2a058d136d0b24d94c5cbe1ce447eb435c1a1c7cdce5e435f1548bb3f05e7
Diffstat (limited to 'src')
-rw-r--r-- | src/build.c | 1 | ||||
-rw-r--r-- | src/trigger.c | 3 |
2 files changed, 1 insertions, 3 deletions
diff --git a/src/build.c b/src/build.c index 74c5319ca..4143221c3 100644 --- a/src/build.c +++ b/src/build.c @@ -1254,7 +1254,6 @@ void sqlite3ColumnPropertiesFromName(Table *pTab, Column *pCol){ static void sqlite3DeleteReturning(sqlite3 *db, Returning *pRet){ Hash *pHash; pHash = &(db->aDb[1].pSchema->trigHash); - assert( sqlite3HashFind(pHash, RETURNING_TRIGGER)==&pRet->retTrig ); sqlite3HashInsert(pHash, RETURNING_TRIGGER, 0); sqlite3ExprListDelete(db, pRet->pReturnEL); sqlite3DbFree(db, pRet); diff --git a/src/trigger.c b/src/trigger.c index a20c14197..452005944 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -567,8 +567,7 @@ TriggerStep *sqlite3TriggerDeleteStep( ** Recursively delete a Trigger structure */ void sqlite3DeleteTrigger(sqlite3 *db, Trigger *pTrigger){ - if( pTrigger==0 ) return; - assert( !pTrigger->bReturning ); + if( pTrigger==0 || pTrigger->bReturning ) return; sqlite3DeleteTriggerStep(db, pTrigger->step_list); sqlite3DbFree(db, pTrigger->zName); sqlite3DbFree(db, pTrigger->table); |