diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index d27abe554cc..17035fb4d15 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -15973,6 +15973,10 @@ a_expr: c_expr { $$ = $1; } { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", $1, $3, @2); } | a_expr NOT_EQUALS a_expr { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", $1, $3, @2); } + | RIGHT_ARROW a_expr + { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "->", NULL, $2, @1); } + | '|' a_expr + { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "|", NULL, $2, @1); } | a_expr RIGHT_ARROW a_expr { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "->", $1, $3, @2); } | a_expr '|' a_expr @@ -16457,6 +16461,10 @@ b_expr: c_expr { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", $1, $3, @2); } | b_expr NOT_EQUALS b_expr { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", $1, $3, @2); } + | RIGHT_ARROW b_expr + { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "->", NULL, $2, @1); } + | '|' b_expr + { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "|", NULL, $2, @1); } | b_expr RIGHT_ARROW b_expr { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "->", $1, $3, @2); } | b_expr '|' b_expr