nocfbot-0006-Clarify-ST_NONE-intent.txt
text/plain
Filename: nocfbot-0006-Clarify-ST_NONE-intent.txt
Type: text/plain
Part: 5
Message:
Re: Row pattern recognition
From e267e4f1e40bd6919efb4ebef769e60da3a7ac4e Mon Sep 17 00:00:00 2001
From: Henson Choi <assam258@gmail.com>
Date: Fri, 20 Mar 2026 16:59:21 +0900
Subject: [PATCH] Clarify ST_NONE intent in RPSkipTo enum and WindowClause
initialization
ST_NONE serves as the sentinel value (0) indicating that a WindowClause
has no RPR AFTER MATCH clause. This was implicit via palloc0 zero-filling
but not documented.
Add a comment to the ST_NONE enum value explaining its role as the default
for non-RPR windows, and add an explicit assignment in
transformWindowDefinitions() to make the intent clear in code.
---
src/backend/parser/parse_clause.c | 2 ++
src/include/nodes/parsenodes.h | 3 ++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index b30c22933ec..3796a69ac3a 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -2889,6 +2889,8 @@ transformWindowDefinitions(ParseState *pstate,
* And prepare the new WindowClause.
*/
wc = makeNode(WindowClause);
+ wc->rpSkipTo = ST_NONE; /* ST_NONE marks this as a non-RPR window;
+ * overridden by transformRPR() if RPR is used */
wc->name = windef->name;
wc->refname = windef->refname;
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 432b0573990..c5bf2ce80bf 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -583,7 +583,8 @@ typedef struct SortBy
*/
typedef enum RPSkipTo
{
- ST_NONE, /* AFTER MATCH omitted */
+ ST_NONE, /* no AFTER MATCH clause; default for non-RPR
+ * windows */
ST_NEXT_ROW, /* SKIP TO NEXT ROW */
ST_PAST_LAST_ROW, /* SKIP TO PAST LAST ROW */
} RPSkipTo;
--
2.50.1 (Apple Git-155)