Ruleutils_17 Revert recent SQL/JSON related commits

Reverts 8ad3592464
def847fd79

Relevant PG commit:
eef5195f30
eef5195f300bb9cf2864d48761c0db2ad93842c1
pull/7725/head
naisila 2024-11-10 23:52:28 +03:00
parent 330e886f79
commit a07b59d2b9
1 changed files with 5 additions and 5 deletions

View File

@ -8495,6 +8495,7 @@ get_json_table_columns(TableFunc *tf, JsonTablePathScan *scan,
bool showimplicit) bool showimplicit)
{ {
StringInfo buf = context->buf; StringInfo buf = context->buf;
JsonExpr *jexpr = castNode(JsonExpr, tf->docexpr);
ListCell *lc_colname; ListCell *lc_colname;
ListCell *lc_coltype; ListCell *lc_coltype;
ListCell *lc_coltypmod; ListCell *lc_coltypmod;
@ -8547,10 +8548,6 @@ get_json_table_columns(TableFunc *tf, JsonTablePathScan *scan,
if (ordinality) if (ordinality)
continue; 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) if (colexpr->op == JSON_EXISTS_OP)
{ {
appendStringInfoString(buf, " EXISTS"); appendStringInfoString(buf, " EXISTS");
@ -8574,6 +8571,9 @@ get_json_table_columns(TableFunc *tf, JsonTablePathScan *scan,
default_behavior = JSON_BEHAVIOR_NULL; default_behavior = JSON_BEHAVIOR_NULL;
} }
if (jexpr->on_error->btype == JSON_BEHAVIOR_ERROR)
default_behavior = JSON_BEHAVIOR_ERROR;
appendStringInfoString(buf, " PATH "); appendStringInfoString(buf, " PATH ");
get_json_path_spec(colexpr->path_spec, context, showimplicit); 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, get_json_table_columns(tf, castNode(JsonTablePathScan, tf->plan), context,
showimplicit); 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"); get_json_behavior(jexpr->on_error, context, "ERROR");
if (PRETTY_INDENT(context)) if (PRETTY_INDENT(context))