diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/alter.c | 1 | ||||
-rw-r--r-- | src/expr.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/alter.c b/src/alter.c index 8fc9b1096..f358dcb0a 100644 --- a/src/alter.c +++ b/src/alter.c @@ -831,6 +831,7 @@ static void renameWalkWith(Walker *pWalker, Select *pSelect){ memset(&sNC, 0, sizeof(sNC)); sNC.pParse = pParse; if( pCopy ) sqlite3SelectPrep(sNC.pParse, p, &sNC); + if( sNC.pParse->db->mallocFailed ) return; sqlite3WalkSelect(pWalker, p); sqlite3RenameExprlistUnmap(pParse, pWith->a[i].pCols); } diff --git a/src/expr.c b/src/expr.c index baa1fce3d..5b7a58fb5 100644 --- a/src/expr.c +++ b/src/expr.c @@ -518,7 +518,10 @@ Expr *sqlite3ExprForVectorField( }else{ if( pVector->op==TK_VECTOR ) pVector = pVector->x.pList->a[iField].pExpr; pRet = sqlite3ExprDup(pParse->db, pVector, 0); - sqlite3RenameTokenRemap(pParse, pRet, pVector); + if( IN_RENAME_OBJECT && pRet ){ + SWAP(Expr, *pRet, *pVector); + sqlite3RenameTokenRemap(pParse, pRet, pVector); + } } return pRet; } |