From 7b9d7fb735a467ff391898ed4ebc11bd6ef315fa Mon Sep 17 00:00:00 2001 From: Henson Choi Date: Fri, 20 Mar 2026 21:21:58 +0900 Subject: [PATCH] Add clarifying comments for excludeLocation and empty quantifier in gram.y Add comments explaining that excludeLocation is set to -1 when no EXCLUDE clause is present (opt_window_exclusion_clause returns 0), and that the EMPTY quantifier rule's @$ location is unused since min=max=1 never produces an error. --- src/backend/parser/gram.y | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 9dcac63bdc7..6d390258532 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -16757,6 +16757,7 @@ opt_frame_clause: n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; n->frameOptions |= $3; n->frameLocation = @1; + /* -1 when no EXCLUDE clause (opt_window_exclusion_clause returns 0) */ n->excludeLocation = ($3 != 0) ? @3 : -1; $$ = n; } @@ -16767,6 +16768,7 @@ opt_frame_clause: n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; n->frameOptions |= $3; n->frameLocation = @1; + /* -1 when no EXCLUDE clause (opt_window_exclusion_clause returns 0) */ n->excludeLocation = ($3 != 0) ? @3 : -1; $$ = n; } @@ -16777,6 +16779,7 @@ opt_frame_clause: n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; n->frameOptions |= $3; n->frameLocation = @1; + /* -1 when no EXCLUDE clause (opt_window_exclusion_clause returns 0) */ n->excludeLocation = ($3 != 0) ? @3 : -1; $$ = n; } @@ -17069,7 +17072,9 @@ row_pattern_primary: ; row_pattern_quantifier_opt: - /* EMPTY */ { $$ = (Node *) makeRPRQuantifier(1, 1, -1, @$, yyscanner); } + /* EMPTY - no quantifier means exactly once; @$ is unused since + * min=max=1 never produces an error */ + { $$ = (Node *) makeRPRQuantifier(1, 1, -1, @$, yyscanner); } | '*' { $$ = (Node *) makeRPRQuantifier(0, INT_MAX, -1, @1, yyscanner); } | '+' { $$ = (Node *) makeRPRQuantifier(1, INT_MAX, -1, @1, yyscanner); } | Op -- 2.50.1 (Apple Git-155)