aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r--src/backend/parser/parse_expr.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 3cbd5161528..2f8c5e63fe8 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -4072,13 +4072,15 @@ static JsonBehavior *
transformJsonBehavior(ParseState *pstate, JsonBehavior *behavior,
JsonBehaviorType default_behavior)
{
- JsonBehaviorType behavior_type;
- Node *default_expr;
-
- behavior_type = behavior ? behavior->btype : default_behavior;
- default_expr = behavior_type != JSON_BEHAVIOR_DEFAULT ? NULL :
- transformExprRecurse(pstate, behavior->default_expr);
+ JsonBehaviorType behavior_type = default_behavior;
+ Node *default_expr = NULL;
+ if (behavior)
+ {
+ behavior_type = behavior->btype;
+ if (behavior_type == JSON_BEHAVIOR_DEFAULT)
+ default_expr = transformExprRecurse(pstate, behavior->default_expr);
+ }
return makeJsonBehavior(behavior_type, default_expr);
}