From 8481b482ab23fee014d3a0277a275749990f19a9 Mon Sep 17 00:00:00 2001 From: Pierre Forstmann Date: Sat, 18 Jul 2026 17:53:55 +0200 Subject: [PATCH 2/2] bug#19558: Fix user-defined prefix operators '|' and '->': fixed %prec --- src/backend/parser/gram.y | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 331da79..071bbf2 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -15873,9 +15873,9 @@ a_expr: c_expr { $$ = $1; } { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, $2, @1); } | '-' a_expr %prec UMINUS { $$ = doNegate($2, @1); } - | '|' a_expr %prec UMINUS + | '|' a_expr %prec Op { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "|", NULL , $2, @1); } - | RIGHT_ARROW a_expr %prec UMINUS + | RIGHT_ARROW a_expr %prec Op { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "->", NULL , $2, @1); } | a_expr '+' a_expr { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", $1, $3, @2); } @@ -15905,8 +15905,6 @@ a_expr: c_expr { $$ = $1; } { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "->", $1, $3, @2); } | a_expr '|' a_expr { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "|", $1, $3, @2); } - - | a_expr qual_Op a_expr %prec Op { $$ = (Node *) makeA_Expr(AEXPR_OP, $2, $1, $3, @2); } | qual_Op a_expr %prec Op -- 2.52.0