diff options
author | drh <drh@noemail.net> | 2016-02-05 01:55:27 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2016-02-05 01:55:27 +0000 |
commit | 4a642b60607e55a2c25f663b472af3609c76b214 (patch) | |
tree | d4af5d6c69d8cde0c32bfcc7a427eb34c2815080 /src/select.c | |
parent | e514f651d0fb5364e6495b9d6c4dd80ca51a227f (diff) | |
download | sqlite-4a642b60607e55a2c25f663b472af3609c76b214.tar.gz sqlite-4a642b60607e55a2c25f663b472af3609c76b214.zip |
Improvements to the way that OOM errors are processed.
FossilOrigin-Name: c3ef03478a5788c855b3aef385d43ae7f494f440
Diffstat (limited to 'src/select.c')
-rw-r--r-- | src/select.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/select.c b/src/select.c index 891b12354..84d5423de 100644 --- a/src/select.c +++ b/src/select.c @@ -1016,7 +1016,7 @@ KeyInfo *sqlite3KeyInfoAlloc(sqlite3 *db, int N, int X){ p->nRef = 1; memset(&p[1], 0, nExtra); }else{ - db->mallocFailed = 1; + sqlite3OomFault(db); } return p; } @@ -1677,7 +1677,7 @@ int sqlite3ColumnsFromExprList( pCol->zName = zName; sqlite3ColumnPropertiesFromName(0, pCol); if( zName && sqlite3HashInsert(&ht, zName, pCol)==pCol ){ - db->mallocFailed = 1; + sqlite3OomFault(db); } } sqlite3HashClear(&ht); @@ -1764,7 +1764,7 @@ Table *sqlite3ResultSetOfSelect(Parse *pParse, Select *pSelect){ } /* The sqlite3ResultSetOfSelect() is only used n contexts where lookaside ** is disabled */ - assert( db->lookaside.bEnabled==0 ); + assert( db->lookaside.bDisable ); pTab->nRef = 1; pTab->zName = 0; pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); @@ -5562,7 +5562,8 @@ int sqlite3Select( if( flag ){ pMinMax = sqlite3ExprListDup(db, pMinMax, 0); pDel = pMinMax; - if( pMinMax && !db->mallocFailed ){ + assert( db->mallocFailed || pMinMax!=0 ); + if( !db->mallocFailed ){ pMinMax->a[0].sortOrder = flag!=WHERE_ORDERBY_MIN ?1:0; pMinMax->a[0].pExpr->op = TK_COLUMN; } |