Adds three different SQL/JSON values to ruleutils_15.c

Relevant PG commits:
606948b058dc16bce494270eea577011a602810e
49082c2cc3d8167cca70cfe697afb064710828ca
boolean_node
naisila 2022-07-25 16:27:01 +03:00
parent fbd989cac7
commit c71d940093
1 changed files with 13 additions and 1 deletions

View File

@ -6842,7 +6842,10 @@ get_json_constructor_options(JsonConstructorExpr *ctor, StringInfo buf)
if (ctor->unique) if (ctor->unique)
appendStringInfoString(buf, " WITH UNIQUE KEYS"); appendStringInfoString(buf, " WITH UNIQUE KEYS");
get_json_returning(ctor->returning, buf, true); if (!((ctor->type == JSCTOR_JSON_PARSE ||
ctor->type == JSCTOR_JSON_SCALAR) &&
ctor->returning->typid == JSONOID))
get_json_returning(ctor->returning, buf, true);
} }
static void static void
@ -6856,6 +6859,15 @@ get_json_constructor(JsonConstructorExpr *ctor, deparse_context *context,
switch (ctor->type) switch (ctor->type)
{ {
case JSCTOR_JSON_PARSE:
funcname = "JSON";
break;
case JSCTOR_JSON_SCALAR:
funcname = "JSON_SCALAR";
break;
case JSCTOR_JSON_SERIALIZE:
funcname = "JSON_SERIALIZE";
break;
case JSCTOR_JSON_OBJECT: case JSCTOR_JSON_OBJECT:
funcname = "JSON_OBJECT"; funcname = "JSON_OBJECT";
break; break;