aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <>2021-03-31 23:56:55 +0000
committerdrh <>2021-03-31 23:56:55 +0000
commit22af584e3e20014db2bfb65ac93acdf7465c59ea (patch)
tree92a4ce7ab37b682ba1601fd97e4598461b9008e0 /src/resolve.c
parentd75aeee535254e4b30b80f97ac07d7e3e2378906 (diff)
downloadsqlite-22af584e3e20014db2bfb65ac93acdf7465c59ea.tar.gz
sqlite-22af584e3e20014db2bfb65ac93acdf7465c59ea.zip
When resolving names in the RETURNING clause, do not accept trigger names
even within subquires. See [forum:/info/34c81d83c9177f46|forum post 34c81d83c9177f46] for context. FossilOrigin-Name: fd4ea3f626b6e4957d56c2369be711895735cfc37cfde65650a6682ad5a3eb1a
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/resolve.c b/src/resolve.c
index 436d3f70c..30fa21f3b 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -376,8 +376,10 @@ static int lookupName(
if( pParse->pTriggerTab!=0 ){
int op = pParse->eTriggerOp;
assert( op==TK_DELETE || op==TK_UPDATE || op==TK_INSERT );
- if( pParse->bReturning && (pNC->ncFlags & NC_UBaseReg)!=0 ){
- if( zTab==0 || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0 ){
+ if( pParse->bReturning ){
+ if( (pNC->ncFlags & NC_UBaseReg)!=0
+ && (zTab==0 || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0)
+ ){
pExpr->iTable = op!=TK_DELETE;
pTab = pParse->pTriggerTab;
}