aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <>2024-04-06 12:19:50 +0000
committerdrh <>2024-04-06 12:19:50 +0000
commitde6a4be9b58f8f4058aaaf4c7c1283f811cc8fce (patch)
tree4eeb1f2720404d0803d586664487639366e36fbe /src/resolve.c
parent743ae4c68b51fe56e6a269a79532224d2e45ce12 (diff)
downloadsqlite-de6a4be9b58f8f4058aaaf4c7c1283f811cc8fce.tar.gz
sqlite-de6a4be9b58f8f4058aaaf4c7c1283f811cc8fce.zip
Generalize pushdown to allow any uncorrelated subquery to be pushed down.
FossilOrigin-Name: 87c45fb0d5f5ca5d6d1ad27bef83f294231d17d94299e1997364a7975b423e38
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/resolve.c b/src/resolve.c
index 6e0c9906a..7378addf5 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -1349,6 +1349,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
testcase( pNC->ncFlags & NC_PartIdx );
testcase( pNC->ncFlags & NC_IdxExpr );
testcase( pNC->ncFlags & NC_GenCol );
+ assert( pExpr->x.pSelect );
if( pNC->ncFlags & NC_SelfRef ){
notValidImpl(pParse, pNC, "subqueries", pExpr, pExpr);
}else{
@@ -1357,6 +1358,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
assert( pNC->nRef>=nRef );
if( nRef!=pNC->nRef ){
ExprSetProperty(pExpr, EP_VarSelect);
+ pExpr->x.pSelect->selFlags |= SF_Correlated;
}
pNC->ncFlags |= NC_Subquery;
}