aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <Dan Kennedy>2022-04-19 20:47:18 +0000
committerdan <Dan Kennedy>2022-04-19 20:47:18 +0000
commitcbde37d8e447ce4094eca5bc40847651d74e38a9 (patch)
tree05c437111526be405b30f48e52061e4f5886ce5e /src
parent1942d1f2368e962c372c0adaf0ee2f0a909ce261 (diff)
downloadsqlite-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.c6
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 ){