diff options
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 9 |
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 |