diff options
author | drh <> | 2022-04-19 23:00:32 +0000 |
---|---|---|
committer | drh <> | 2022-04-19 23:00:32 +0000 |
commit | befbb40f44f4791eaf3a995fa4c6e8cd91241ac2 (patch) | |
tree | ac6d26c690d645dd21817ba936af53aacdc44ab5 /src | |
parent | 4d0d071a53d02015f7411ba8832f191b2e91b71a (diff) | |
parent | cbde37d8e447ce4094eca5bc40847651d74e38a9 (diff) | |
download | sqlite-befbb40f44f4791eaf3a995fa4c6e8cd91241ac2.tar.gz sqlite-befbb40f44f4791eaf3a995fa4c6e8cd91241ac2.zip |
Merge the ALTER TABLE fix from trunk.
FossilOrigin-Name: d5ceaef3fca8cb4791ead9cbfe00d0eafa1bdc2b0522c3599c68b40fe6a7efe2
Diffstat (limited to 'src')
-rw-r--r-- | src/select.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/select.c b/src/select.c index 6ebc1dc3c..65ca283b3 100644 --- a/src/select.c +++ b/src/select.c @@ -5834,13 +5834,19 @@ static int selectExpander(Walker *pWalker, Select *p){ zColname = zName; zToFree = 0; } - if( pTabList->nSrc>1 - && ( (pFrom->fg.jointype & JT_LTORJ)==0 - || !inAnyUsingClause(zName,pFrom,pTabList->nSrc-i-1) ) + if( (pTabList->nSrc>1 + && ( (pFrom->fg.jointype & JT_LTORJ)==0 + || !inAnyUsingClause(zName,pFrom,pTabList->nSrc-i-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); @@ -5849,6 +5855,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 ){ |