From 0dc10b6cb66913ae2eabc327a64f0c6f411cbc04 Mon Sep 17 00:00:00 2001 From: naisila Date: Sun, 10 Nov 2024 23:58:26 +0300 Subject: [PATCH] Ruleutils_17 SQL/JSON: Fix JSON_TABLE() column deparsing Relevant PG commit: https://github.com/postgres/postgres/commit/cd680b39211c5c3c88a143abcac576a22f996d7a cd680b39211c5c3c88a143abcac576a22f996d7a --- src/backend/distributed/deparser/ruleutils_17.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/deparser/ruleutils_17.c b/src/backend/distributed/deparser/ruleutils_17.c index dc24accff..bedf616a1 100644 --- a/src/backend/distributed/deparser/ruleutils_17.c +++ b/src/backend/distributed/deparser/ruleutils_17.c @@ -8495,7 +8495,6 @@ get_json_table_columns(TableFunc *tf, JsonTablePathScan *scan, bool showimplicit) { StringInfo buf = context->buf; - JsonExpr *jexpr = castNode(JsonExpr, tf->docexpr); ListCell *lc_colname; ListCell *lc_coltype; ListCell *lc_coltypmod; @@ -8548,6 +8547,10 @@ get_json_table_columns(TableFunc *tf, JsonTablePathScan *scan, if (ordinality) continue; + /* + * Set default_behavior to guide get_json_expr_options() on whether to + * to emit the ON ERROR / EMPTY clauses. + */ if (colexpr->op == JSON_EXISTS_OP) { appendStringInfoString(buf, " EXISTS"); @@ -8571,9 +8574,6 @@ get_json_table_columns(TableFunc *tf, JsonTablePathScan *scan, default_behavior = JSON_BEHAVIOR_NULL; } - if (jexpr->on_error->btype == JSON_BEHAVIOR_ERROR) - default_behavior = JSON_BEHAVIOR_ERROR; - appendStringInfoString(buf, " PATH "); get_json_path_spec(colexpr->path_spec, context, showimplicit);