From dbefdd47ab63c099b8cb9e7a7af3907ed2212dcd Mon Sep 17 00:00:00 2001 From: Henson Choi Date: Wed, 27 May 2026 07:02:38 +0900 Subject: [PATCH] Add raw_expression_tree_walker coverage for RPR raw nodes WindowDef.rpCommonSyntax was not walked, and there were no case arms for T_RPCommonSyntax or T_RPRPatternNode. RPR core was unaffected -- contain_rpr_walker() in parse_cte.c intercepts WindowDef before delegating -- but debug_raw_expression_coverage_test silently skipped these subtrees, leaving any future raw-node omission on the RPR side undetected. --- src/backend/nodes/nodeFuncs.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index 734bb0554fe..101c03b6ae8 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -4641,6 +4641,8 @@ raw_expression_tree_walker_impl(Node *node, return true; if (WALK(wd->endOffset)) return true; + if (WALK(wd->rpCommonSyntax)) + return true; } break; case T_RangeSubselect: @@ -4896,6 +4898,24 @@ raw_expression_tree_walker_impl(Node *node, return true; } break; + case T_RPCommonSyntax: + { + RPCommonSyntax *rc = (RPCommonSyntax *) node; + + if (WALK(rc->rpPattern)) + return true; + if (WALK(rc->rpDefs)) + return true; + } + break; + case T_RPRPatternNode: + { + RPRPatternNode *rp = (RPRPatternNode *) node; + + if (WALK(rp->children)) + return true; + } + break; default: elog(ERROR, "unrecognized node type: %d", (int) nodeTag(node)); -- 2.50.1 (Apple Git-155)