aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c
index a6bb441d5..6886d30b2 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -1345,13 +1345,16 @@ static int gatherSelectWindowsCallback(Walker *pWalker, Expr *pExpr){
}
return WRC_Continue;
}
+static int gatherSelectWindowsSelectCallback(Walker *pWalker, Select *p){
+ return p==pWalker->u.pSelect ? WRC_Continue : WRC_Prune;
+}
static void gatherSelectWindows(Select *p){
Walker w;
w.xExprCallback = gatherSelectWindowsCallback;
- w.xSelectCallback = 0;
+ w.xSelectCallback = gatherSelectWindowsSelectCallback;
+ w.xSelectCallback2 = 0;
w.u.pSelect = p;
- sqlite3WalkSelectExpr(&w, p);
- sqlite3WalkSelectFrom(&w, p);
+ sqlite3WalkSelect(&w, p);
}
#endif