diff options
author | drh <> | 2021-03-31 23:56:55 +0000 |
---|---|---|
committer | drh <> | 2021-03-31 23:56:55 +0000 |
commit | 22af584e3e20014db2bfb65ac93acdf7465c59ea (patch) | |
tree | 92a4ce7ab37b682ba1601fd97e4598461b9008e0 /src/resolve.c | |
parent | d75aeee535254e4b30b80f97ac07d7e3e2378906 (diff) | |
download | sqlite-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.c | 6 |
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; } |