diff options
author | dan <Dan Kennedy> | 2022-04-19 20:47:18 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2022-04-19 20:47:18 +0000 |
commit | cbde37d8e447ce4094eca5bc40847651d74e38a9 (patch) | |
tree | 05c437111526be405b30f48e52061e4f5886ce5e /src | |
parent | 1942d1f2368e962c372c0adaf0ee2f0a909ce261 (diff) | |
download | sqlite-cbde37d8e447ce4094eca5bc40847651d74e38a9.tar.gz sqlite-cbde37d8e447ce4094eca5bc40847651d74e38a9.zip |
Fix a problem in ALTER TABLE with handling "table.*" expressions within SELECT statements in triggers.
FossilOrigin-Name: 24755fd0657252e49793bb1fe906973a2dd84a1bde03bea9a762de36cc96c2d2
Diffstat (limited to 'src')
-rw-r--r-- | src/select.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/select.c b/src/select.c index 28934ffd9..bc6a0b1d1 100644 --- a/src/select.c +++ b/src/select.c @@ -5755,10 +5755,13 @@ static int selectExpander(Walker *pWalker, Select *p){ pRight = sqlite3Expr(db, TK_ID, zName); zColname = zName; zToFree = 0; - if( longNames || pTabList->nSrc>1 ){ + if( longNames || pTabList->nSrc>1 || IN_RENAME_OBJECT ){ Expr *pLeft; pLeft = sqlite3Expr(db, TK_ID, zTabName); pExpr = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); + if( IN_RENAME_OBJECT && pE->pLeft ){ + sqlite3RenameTokenRemap(pParse, pLeft, pE->pLeft); + } if( zSchemaName ){ pLeft = sqlite3Expr(db, TK_ID, zSchemaName); pExpr = sqlite3PExpr(pParse, TK_DOT, pLeft, pExpr); @@ -5771,6 +5774,7 @@ static int selectExpander(Walker *pWalker, Select *p){ pExpr = pRight; } pNew = sqlite3ExprListAppend(pParse, pNew, pExpr); + sqlite3TokenInit(&sColname, zColname); sqlite3ExprListSetName(pParse, pNew, &sColname, 0); if( pNew && (p->selFlags & SF_NestedFrom)!=0 && !IN_RENAME_OBJECT ){ |