diff options
author | dan <Dan Kennedy> | 2021-09-29 18:33:26 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2021-09-29 18:33:26 +0000 |
commit | ab632bc97e8d68d77912b16176a39781fd75a2a8 (patch) | |
tree | 86013a43db2fa68790589d2457157b5ab2a3d7fe /src/expr.c | |
parent | eda0001d897fb122478248c81750d9a0a29ebbe8 (diff) | |
download | sqlite-ab632bc97e8d68d77912b16176a39781fd75a2a8.tar.gz sqlite-ab632bc97e8d68d77912b16176a39781fd75a2a8.zip |
Fix another problem with ALTER TABLE and vector UPDATE statements within triggers.
FossilOrigin-Name: a0df216f7c3f8963efba0b1ffee65d6a63309d846ffdcf2d2932cb4f1d4967b7
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/expr.c b/src/expr.c index 3e60cf712..d121fbfd2 100644 --- a/src/expr.c +++ b/src/expr.c @@ -516,12 +516,16 @@ Expr *sqlite3ExprForVectorField( pRet->pLeft = pVector; } }else{ - if( pVector->op==TK_VECTOR ) pVector = pVector->x.pList->a[iField].pExpr; - pRet = sqlite3ExprDup(pParse->db, pVector, 0); - if( pRet && IN_RENAME_OBJECT ){ - SWAP(Expr, *pRet, *pVector); - sqlite3RenameTokenRemap(pParse, pRet, pVector); + if( pVector->op==TK_VECTOR ){ + Expr **ppVector = &pVector->x.pList->a[iField].pExpr; + pVector = *ppVector; + if( IN_RENAME_OBJECT ){ + /* This must be a vector UPDATE inside a trigger */ + *ppVector = 0; + return pVector; + } } + pRet = sqlite3ExprDup(pParse->db, pVector, 0); } return pRet; } |