diff options
Diffstat (limited to 'src/backend/nodes/nodeFuncs.c')
-rw-r--r-- | src/backend/nodes/nodeFuncs.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index e1df1894b69..89ee4b61f2f 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -2163,6 +2163,16 @@ expression_tree_walker_impl(Node *node, return true; if (WALK(expr->aggfilter)) return true; + if (WALK(expr->runCondition)) + return true; + } + break; + case T_WindowFuncRunCondition: + { + WindowFuncRunCondition *expr = (WindowFuncRunCondition *) node; + + if (WALK(expr->arg)) + return true; } break; case T_SubscriptingRef: @@ -2400,8 +2410,6 @@ expression_tree_walker_impl(Node *node, return true; if (WALK(wc->endOffset)) return true; - if (WALK(wc->runCondition)) - return true; } break; case T_CTECycleClause: @@ -2752,8 +2760,6 @@ query_tree_walker_impl(Query *query, return true; if (WALK(wc->endOffset)) return true; - if (WALK(wc->runCondition)) - return true; } } @@ -3053,6 +3059,16 @@ expression_tree_mutator_impl(Node *node, return (Node *) newnode; } break; + case T_WindowFuncRunCondition: + { + WindowFuncRunCondition *wfuncrc = (WindowFuncRunCondition *) node; + WindowFuncRunCondition *newnode; + + FLATCOPY(newnode, wfuncrc, WindowFuncRunCondition); + MUTATE(newnode->arg, wfuncrc->arg, Expr *); + return (Node *) newnode; + } + break; case T_SubscriptingRef: { SubscriptingRef *sbsref = (SubscriptingRef *) node; @@ -3466,7 +3482,6 @@ expression_tree_mutator_impl(Node *node, MUTATE(newnode->orderClause, wc->orderClause, List *); MUTATE(newnode->startOffset, wc->startOffset, Node *); MUTATE(newnode->endOffset, wc->endOffset, Node *); - MUTATE(newnode->runCondition, wc->runCondition, List *); return (Node *) newnode; } break; @@ -3799,7 +3814,6 @@ query_tree_mutator_impl(Query *query, FLATCOPY(newnode, wc, WindowClause); MUTATE(newnode->startOffset, wc->startOffset, Node *); MUTATE(newnode->endOffset, wc->endOffset, Node *); - MUTATE(newnode->runCondition, wc->runCondition, List *); resultlist = lappend(resultlist, (Node *) newnode); } |