From a07b59d2b9d52c7f66d28071018c9ba21609d851 Mon Sep 17 00:00:00 2001 From: naisila Date: Sun, 10 Nov 2024 23:52:28 +0300 Subject: [PATCH] Ruleutils_17 Revert recent SQL/JSON related commits Reverts https://github.com/citusdata/citus/commit/8ad35924641e8fab19e732fbe1bfaca6a27a57e9 https://github.com/citusdata/citus/commit/def847fd794c5834a143ad82f5204d1a5e7df7a5 Relevant PG commit: https://github.com/postgres/postgres/commit/eef5195f300bb9cf2864d48761c0db2ad93842c1 eef5195f300bb9cf2864d48761c0db2ad93842c1 --- src/backend/distributed/deparser/ruleutils_17.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/distributed/deparser/ruleutils_17.c b/src/backend/distributed/deparser/ruleutils_17.c index f0710e684..dc24accff 100644 --- a/src/backend/distributed/deparser/ruleutils_17.c +++ b/src/backend/distributed/deparser/ruleutils_17.c @@ -8495,6 +8495,7 @@ 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; @@ -8547,10 +8548,6 @@ 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"); @@ -8574,6 +8571,9 @@ 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); @@ -8651,7 +8651,7 @@ get_json_table(TableFunc *tf, deparse_context *context, bool showimplicit) get_json_table_columns(tf, castNode(JsonTablePathScan, tf->plan), context, showimplicit); - if (jexpr->on_error->btype != JSON_BEHAVIOR_EMPTY_ARRAY) + if (jexpr->on_error->btype != JSON_BEHAVIOR_EMPTY) get_json_behavior(jexpr->on_error, context, "ERROR"); if (PRETTY_INDENT(context))