aboutsummaryrefslogtreecommitdiff
path: root/src/select.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2012-12-19 02:36:45 +0000
committerdrh <drh@noemail.net>2012-12-19 02:36:45 +0000
commit8f25d18b21c2f8076b02ced2b57ef3bc29b56427 (patch)
treed6a3c38f5145d3f413f0e99f1807bc0f6c078153 /src/select.c
parent832ee3d4ccf2941b17e718743ae7283f2e97a571 (diff)
downloadsqlite-8f25d18b21c2f8076b02ced2b57ef3bc29b56427.tar.gz
sqlite-8f25d18b21c2f8076b02ced2b57ef3bc29b56427.zip
Better resolution of table and column names in joins where some of the
terms of the FROM clause are parenthesized. FossilOrigin-Name: 7344e791b9456286ecdca6d45f2f5260fb3f10e2
Diffstat (limited to 'src/select.c')
-rw-r--r--src/select.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/select.c b/src/select.c
index 711669ae8..2f20e7aa5 100644
--- a/src/select.c
+++ b/src/select.c
@@ -3392,7 +3392,8 @@ static int selectExpander(Walker *pWalker, Select *p){
ExprList *pNew = 0;
int flags = pParse->db->flags;
int longNames = (flags & SQLITE_FullColNames)!=0
- && (flags & SQLITE_ShortColNames)==0;
+ && (flags & SQLITE_ShortColNames)==0
+ && (p->selFlags & SF_NestedFrom)==0;
for(k=0; k<pEList->nExpr; k++){
Expr *pE = a[k].pExpr;
@@ -3479,6 +3480,9 @@ static int selectExpander(Walker *pWalker, Select *p){
sColname.z = zColname;
sColname.n = sqlite3Strlen30(zColname);
sqlite3ExprListSetName(pParse, pNew, &sColname, 0);
+ if( pNew && (p->selFlags & SF_NestedFrom)!=0 ){
+ pNew->a[pNew->nExpr-1].zSpan = sqlite3DbStrDup(db, zTabName);
+ }
sqlite3DbFree(db, zToFree);
}
}