aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2016-12-01 19:38:05 +0000
committerdan <dan@noemail.net>2016-12-01 19:38:05 +0000
commit92ddb3bd021fe08b9f157224ba08fde7bb0b775b (patch)
treefbd74429bfe35471521bb5dfddb7f991c0250cf4 /src
parentc9c81dc6d78aa9aec5625e0419817f245ab8ab4f (diff)
downloadsqlite-92ddb3bd021fe08b9f157224ba08fde7bb0b775b.tar.gz
sqlite-92ddb3bd021fe08b9f157224ba08fde7bb0b775b.zip
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening
sub-selects. Possible fix for [2df0107b]. FossilOrigin-Name: 8bed4cd549759a93c4a087d8d8c08c0068ba8d59
Diffstat (limited to 'src')
-rw-r--r--src/select.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/select.c b/src/select.c
index 8e6022c9c..e0b8fccc5 100644
--- a/src/select.c
+++ b/src/select.c
@@ -3164,6 +3164,10 @@ static Expr *substExpr(
assert( pEList!=0 && pExpr->iColumn<pEList->nExpr );
assert( pExpr->pLeft==0 && pExpr->pRight==0 );
pNew = sqlite3ExprDup(db, pEList->a[pExpr->iColumn].pExpr, 0);
+ if( pNew && (pExpr->flags & EP_FromJoin) ){
+ pNew->iRightJoinTable = pExpr->iRightJoinTable;
+ pNew->flags |= EP_FromJoin;
+ }
sqlite3ExprDelete(db, pExpr);
pExpr = pNew;
}