aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordan <Dan Kennedy>2021-09-27 15:44:03 +0000
committerdan <Dan Kennedy>2021-09-27 15:44:03 +0000
commit5a69d19eea897dd597f48ad994c2cbdfd7052687 (patch)
tree1e15d974b47ae820cae322a43e7593fc85a30ab4 /src/expr.c
parent76ec55fddba94ea2c97d6f59b6c2417209a23079 (diff)
downloadsqlite-5a69d19eea897dd597f48ad994c2cbdfd7052687.tar.gz
sqlite-5a69d19eea897dd597f48ad994c2cbdfd7052687.zip
Fix a problem in ALTER TABLE causing table or column references in sub-selects ton the RHS of a vector SET clause in an UPDATE within a trigger (i.e. "SET (a,b) = ( (SELECT...), <expr> )").
FossilOrigin-Name: 255b0eeed113d83b474efc5bc8fc790a270bc43ee598df4b2c378e1ad2d729b7
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c5
1 files changed, 4 insertions, 1 deletions
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;
}