0004-Remove-JsonBehavior-stuff-from-union.patch.nocfbot
text/plain
Filename: 0004-Remove-JsonBehavior-stuff-from-union.patch.nocfbot
Type: text/plain
Part: 3
Message:
Re: remaining sql/json patches
From a7e78b5e9c5cfa191a9580a7b98f6ea663edaa36 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Tue, 21 Nov 2023 05:53:55 +0100
Subject: [PATCH 4/6] Remove JsonBehavior stuff from %union
---
src/backend/parser/gram.y | 36 +++++++++++++++++-------------------
1 file changed, 17 insertions(+), 19 deletions(-)
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index a2d482ab70..2866d1345c 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -278,8 +278,6 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
MergeWhenClause *mergewhen;
struct KeyActions *keyactions;
struct KeyAction *keyaction;
- JsonBehavior *jsbehavior;
- JsonBehaviorClause *jsbehaviorclause;
}
%type <node> stmt toplevel_stmt schema_stmt routine_body_stmt
@@ -654,6 +652,8 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
json_aggregate_func
json_api_common_syntax
json_argument
+ json_behavior
+ json_behavior_clause_opt
%type <list> json_name_and_value_list
json_value_expr_list
json_array_aggregate_order_by_clause_opt
@@ -665,8 +665,6 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
%type <boolean> json_key_uniqueness_constraint_opt
json_object_constructor_null_clause_opt
json_array_constructor_null_clause_opt
-%type <jsbehavior> json_behavior
-%type <jsbehaviorclause> json_behavior_clause_opt
/*
@@ -15779,7 +15777,7 @@ func_expr_common_subexpr:
n->output = (JsonOutput *) $4;
n->wrapper = $5;
n->quotes = $6;
- n->behavior = $7;
+ n->behavior = (JsonBehaviorClause *) $7;
n->location = @1;
$$ = (Node *) n;
}
@@ -15794,7 +15792,7 @@ func_expr_common_subexpr:
p->op = JSON_EXISTS_OP;
p->common = (JsonCommon *) $3;
p->output = (JsonOutput *) $4;
- p->behavior = $5;
+ p->behavior = (JsonBehaviorClause *) $5;
p->location = @1;
$$ = (Node *) p;
}
@@ -15809,7 +15807,7 @@ func_expr_common_subexpr:
n->op = JSON_VALUE_OP;
n->common = (JsonCommon *) $3;
n->output = (JsonOutput *) $4;
- n->behavior = $5;
+ n->behavior = (JsonBehaviorClause *) $5;
n->location = @1;
$$ = (Node *) n;
}
@@ -16665,25 +16663,25 @@ json_returning_clause_opt:
;
json_behavior:
- DEFAULT a_expr { $$ = makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, $2, @1); }
- | ERROR_P { $$ = makeJsonBehavior(JSON_BEHAVIOR_ERROR, NULL, @1); }
- | NULL_P { $$ = makeJsonBehavior(JSON_BEHAVIOR_NULL, NULL, @1); }
- | TRUE_P { $$ = makeJsonBehavior(JSON_BEHAVIOR_TRUE, NULL, @1); }
- | FALSE_P { $$ = makeJsonBehavior(JSON_BEHAVIOR_FALSE, NULL, @1); }
- | UNKNOWN { $$ = makeJsonBehavior(JSON_BEHAVIOR_UNKNOWN, NULL, @1); }
- | EMPTY_P ARRAY { $$ = makeJsonBehavior(JSON_BEHAVIOR_EMPTY_ARRAY, NULL, @1); }
- | EMPTY_P OBJECT_P { $$ = makeJsonBehavior(JSON_BEHAVIOR_EMPTY_OBJECT, NULL, @1); }
+ DEFAULT a_expr { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, $2, @1); }
+ | ERROR_P { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_ERROR, NULL, @1); }
+ | NULL_P { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_NULL, NULL, @1); }
+ | TRUE_P { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_TRUE, NULL, @1); }
+ | FALSE_P { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_FALSE, NULL, @1); }
+ | UNKNOWN { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_UNKNOWN, NULL, @1); }
+ | EMPTY_P ARRAY { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_EMPTY_ARRAY, NULL, @1); }
+ | EMPTY_P OBJECT_P { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_EMPTY_OBJECT, NULL, @1); }
/* non-standard, for Oracle compatibility only */
- | EMPTY_P { $$ = makeJsonBehavior(JSON_BEHAVIOR_EMPTY_ARRAY, NULL, @1); }
+ | EMPTY_P { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_EMPTY_ARRAY, NULL, @1); }
;
json_behavior_clause_opt:
json_behavior ON EMPTY_P
- { $$ = makeJsonBehaviorClause($1, NULL, @1); }
+ { $$ = (Node *) makeJsonBehaviorClause((JsonBehavior *) $1, NULL, @1); }
| json_behavior ON ERROR_P
- { $$ = makeJsonBehaviorClause(NULL, $1, @1); }
+ { $$ = (Node *) makeJsonBehaviorClause(NULL, (JsonBehavior *) $1, @1); }
| json_behavior ON EMPTY_P json_behavior ON ERROR_P
- { $$ = makeJsonBehaviorClause($1, $4, @1); }
+ { $$ = (Node *) makeJsonBehaviorClause((JsonBehavior *) $1, (JsonBehavior *) $4, @1); }
| /* EMPTY */
{ $$ = NULL; }
;
--
2.42.1