diff options
author | drh <> | 2024-08-20 16:50:21 +0000 |
---|---|---|
committer | drh <> | 2024-08-20 16:50:21 +0000 |
commit | ff4ad29d05156598d70b8328cbfb352114446bc3 (patch) | |
tree | 185b5854459c6373f9f488dcf01b11601779f665 /src | |
parent | 1521ca4c20c7ade39c671291b2214096c74cacd0 (diff) | |
download | sqlite-ff4ad29d05156598d70b8328cbfb352114446bc3.tar.gz sqlite-ff4ad29d05156598d70b8328cbfb352114446bc3.zip |
Memory issues fixes so that mdevtest now passes.
FossilOrigin-Name: b249516f6a6650808e035ec219e762bf24dcb7c32a6235984b995d08d07d35d8
Diffstat (limited to 'src')
-rw-r--r-- | src/build.c | 6 | ||||
-rw-r--r-- | src/insert.c | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/build.c b/src/build.c index b585c1971..9cbedf1ec 100644 --- a/src/build.c +++ b/src/build.c @@ -5005,11 +5005,13 @@ int sqlite3SrcItemAttachSubquery( Subquery *p; if( pSelect==0 ) return SQLITE_OK; assert( pItem->fg.isSubquery==0 ); - if( pItem->fg.fixedSchema==0 && pItem->u4.zDatabase!=0 ){ + if( pItem->fg.fixedSchema ){ + pItem->u4.pSchema = 0; + pItem->fg.fixedSchema = 0; + }else if( pItem->u4.zDatabase!=0 ){ sqlite3DbFree(pParse->db, pItem->u4.zDatabase); pItem->u4.zDatabase = 0; } - pItem->fg.fixedSchema = 0; if( dupSelect ){ pSelect = sqlite3SelectDup(pParse->db, pSelect, 0); if( pSelect==0 ) return 0; diff --git a/src/insert.c b/src/insert.c index d65ead2a0..8214cd9c5 100644 --- a/src/insert.c +++ b/src/insert.c @@ -585,9 +585,11 @@ void sqlite3AutoincrementEnd(Parse *pParse){ void sqlite3MultiValuesEnd(Parse *pParse, Select *pVal){ if( ALWAYS(pVal) && pVal->pSrc->nSrc>0 ){ SrcItem *pItem = &pVal->pSrc->a[0]; - assert( pItem->fg.isSubquery && pItem->u4.pSubq!=0 ); - sqlite3VdbeEndCoroutine(pParse->pVdbe, pItem->u4.pSubq->regReturn); - sqlite3VdbeJumpHere(pParse->pVdbe, pItem->u4.pSubq->addrFillSub - 1); + assert( (pItem->fg.isSubquery && pItem->u4.pSubq!=0) || pParse->nErr ); + if( pItem->fg.isSubquery ){ + sqlite3VdbeEndCoroutine(pParse->pVdbe, pItem->u4.pSubq->regReturn); + sqlite3VdbeJumpHere(pParse->pVdbe, pItem->u4.pSubq->addrFillSub - 1); + } } } |