diff options
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r-- | src/backend/parser/parse_expr.c | 14 |
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); } |