mirror of
https://github.com/postgres/postgres.git
synced 2025-11-07 19:06:32 +03:00
Revert SQL/JSON features
The reverts the following and makes some associated cleanups:
commit f79b803dc: Common SQL/JSON clauses
commit f4fb45d15: SQL/JSON constructors
commit 5f0adec25: Make STRING an unreserved_keyword.
commit 33a377608: IS JSON predicate
commit 1a36bc9db: SQL/JSON query functions
commit 606948b05: SQL JSON functions
commit 49082c2cc: RETURNING clause for JSON() and JSON_SCALAR()
commit 4e34747c8: JSON_TABLE
commit fadb48b00: PLAN clauses for JSON_TABLE
commit 2ef6f11b0: Reduce running time of jsonb_sqljson test
commit 14d3f24fa: Further improve jsonb_sqljson parallel test
commit a6baa4bad: Documentation for SQL/JSON features
commit b46bcf7a4: Improve readability of SQL/JSON documentation.
commit 112fdb352: Fix finalization for json_objectagg and friends
commit fcdb35c32: Fix transformJsonBehavior
commit 4cd8717af: Improve a couple of sql/json error messages
commit f7a605f63: Small cleanups in SQL/JSON code
commit 9c3d25e17: Fix JSON_OBJECTAGG uniquefying bug
commit a79153b7a: Claim SQL standard compliance for SQL/JSON features
commit a1e7616d6: Rework SQL/JSON documentation
commit 8d9f9634e: Fix errors in copyfuncs/equalfuncs support for JSON node types.
commit 3c633f32b: Only allow returning string types or bytea from json_serialize
commit 67b26703b: expression eval: Fix EEOP_JSON_CONSTRUCTOR and EEOP_JSONEXPR size.
The release notes are also adjusted.
Backpatch to release 15.
Discussion: https://postgr.es/m/40d2c882-bcac-19a9-754d-4299e1d87ac7@postgresql.org
This commit is contained in:
@@ -737,76 +737,6 @@ JumbleExpr(JumbleState *jstate, Node *node)
|
||||
JumbleExpr(jstate, (Node *) conf->exclRelTlist);
|
||||
}
|
||||
break;
|
||||
case T_JsonFormat:
|
||||
{
|
||||
JsonFormat *format = (JsonFormat *) node;
|
||||
|
||||
APP_JUMB(format->format_type);
|
||||
APP_JUMB(format->encoding);
|
||||
}
|
||||
break;
|
||||
case T_JsonReturning:
|
||||
{
|
||||
JsonReturning *returning = (JsonReturning *) node;
|
||||
|
||||
JumbleExpr(jstate, (Node *) returning->format);
|
||||
APP_JUMB(returning->typid);
|
||||
APP_JUMB(returning->typmod);
|
||||
}
|
||||
break;
|
||||
case T_JsonValueExpr:
|
||||
{
|
||||
JsonValueExpr *expr = (JsonValueExpr *) node;
|
||||
|
||||
JumbleExpr(jstate, (Node *) expr->raw_expr);
|
||||
JumbleExpr(jstate, (Node *) expr->formatted_expr);
|
||||
JumbleExpr(jstate, (Node *) expr->format);
|
||||
}
|
||||
break;
|
||||
case T_JsonConstructorExpr:
|
||||
{
|
||||
JsonConstructorExpr *ctor = (JsonConstructorExpr *) node;
|
||||
|
||||
APP_JUMB(ctor->type);
|
||||
JumbleExpr(jstate, (Node *) ctor->args);
|
||||
JumbleExpr(jstate, (Node *) ctor->func);
|
||||
JumbleExpr(jstate, (Node *) ctor->coercion);
|
||||
JumbleExpr(jstate, (Node *) ctor->returning);
|
||||
APP_JUMB(ctor->absent_on_null);
|
||||
APP_JUMB(ctor->unique);
|
||||
}
|
||||
break;
|
||||
case T_JsonIsPredicate:
|
||||
{
|
||||
JsonIsPredicate *pred = (JsonIsPredicate *) node;
|
||||
|
||||
JumbleExpr(jstate, (Node *) pred->expr);
|
||||
JumbleExpr(jstate, (Node *) pred->format);
|
||||
APP_JUMB(pred->item_type);
|
||||
APP_JUMB(pred->unique_keys);
|
||||
}
|
||||
break;
|
||||
case T_JsonExpr:
|
||||
{
|
||||
JsonExpr *jexpr = (JsonExpr *) node;
|
||||
|
||||
APP_JUMB(jexpr->op);
|
||||
JumbleExpr(jstate, jexpr->formatted_expr);
|
||||
JumbleExpr(jstate, jexpr->path_spec);
|
||||
foreach(temp, jexpr->passing_names)
|
||||
{
|
||||
APP_JUMB_STRING(lfirst_node(String, temp)->sval);
|
||||
}
|
||||
JumbleExpr(jstate, (Node *) jexpr->passing_values);
|
||||
if (jexpr->on_empty)
|
||||
{
|
||||
APP_JUMB(jexpr->on_empty->btype);
|
||||
JumbleExpr(jstate, jexpr->on_empty->default_expr);
|
||||
}
|
||||
APP_JUMB(jexpr->on_error->btype);
|
||||
JumbleExpr(jstate, jexpr->on_error->default_expr);
|
||||
}
|
||||
break;
|
||||
case T_List:
|
||||
foreach(temp, (List *) node)
|
||||
{
|
||||
@@ -879,11 +809,9 @@ JumbleExpr(JumbleState *jstate, Node *node)
|
||||
{
|
||||
TableFunc *tablefunc = (TableFunc *) node;
|
||||
|
||||
APP_JUMB(tablefunc->functype);
|
||||
JumbleExpr(jstate, tablefunc->docexpr);
|
||||
JumbleExpr(jstate, tablefunc->rowexpr);
|
||||
JumbleExpr(jstate, (Node *) tablefunc->colexprs);
|
||||
JumbleExpr(jstate, (Node *) tablefunc->colvalexprs);
|
||||
}
|
||||
break;
|
||||
case T_TableSampleClause:
|
||||
|
||||
Reference in New Issue
Block a user