aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2016-12-01 19:58:01 +0000
committerdan <dan@noemail.net>2016-12-01 19:58:01 +0000
commitedaeba5e64a86a1c53ec73875249f39f4ceb3ff5 (patch)
tree6f4089b180ea2d3ad92443da675d74e678d581f8 /src
parent807b90f6798f8e4db0b721b48dc103c4bb8157cf (diff)
parent92ddb3bd021fe08b9f157224ba08fde7bb0b775b (diff)
downloadsqlite-edaeba5e64a86a1c53ec73875249f39f4ceb3ff5.tar.gz
sqlite-edaeba5e64a86a1c53ec73875249f39f4ceb3ff5.zip
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening
sub-selects. Possible fix for [2df0107b]. FossilOrigin-Name: a427c4052820d90c3c8c23abf9097f973e564010
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;
}