aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <>2021-04-01 11:30:23 +0000
committerdrh <>2021-04-01 11:30:23 +0000
commitea602ac6b09aee6fb42d512148b76e01d9e25be0 (patch)
treefb86fb8142c40036c547dc42836aee34d8befdae /src/resolve.c
parent378c763eb354b763109f3c9a6b65b07a33ccf321 (diff)
downloadsqlite-ea602ac6b09aee6fb42d512148b76e01d9e25be0.tar.gz
sqlite-ea602ac6b09aee6fb42d512148b76e01d9e25be0.zip
When resolving names in the RETURNING clause, do not accept trigger names
even within subquires. FossilOrigin-Name: 8541c71b35fd529ee3addd51fd51279bc1fb35dd6b6ceee3ed22c06df0e3d02e
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 f2578abff..5ddfa4df3 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;
}