mirror of
https://github.com/postgres/postgres.git
synced 2025-11-29 23:43:17 +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:
@@ -572,7 +572,6 @@ _readTableFunc(void)
|
||||
{
|
||||
READ_LOCALS(TableFunc);
|
||||
|
||||
READ_ENUM_FIELD(functype, TableFuncType);
|
||||
READ_NODE_FIELD(ns_uris);
|
||||
READ_NODE_FIELD(ns_names);
|
||||
READ_NODE_FIELD(docexpr);
|
||||
@@ -583,9 +582,7 @@ _readTableFunc(void)
|
||||
READ_NODE_FIELD(colcollations);
|
||||
READ_NODE_FIELD(colexprs);
|
||||
READ_NODE_FIELD(coldefexprs);
|
||||
READ_NODE_FIELD(colvalexprs);
|
||||
READ_BITMAPSET_FIELD(notnulls);
|
||||
READ_NODE_FIELD(plan);
|
||||
READ_INT_FIELD(ordinalitycol);
|
||||
READ_LOCATION_FIELD(location);
|
||||
|
||||
@@ -1431,194 +1428,6 @@ _readOnConflictExpr(void)
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonFormat
|
||||
*/
|
||||
static JsonFormat *
|
||||
_readJsonFormat(void)
|
||||
{
|
||||
READ_LOCALS(JsonFormat);
|
||||
|
||||
READ_ENUM_FIELD(format_type, JsonFormatType);
|
||||
READ_ENUM_FIELD(encoding, JsonEncoding);
|
||||
READ_LOCATION_FIELD(location);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonReturning
|
||||
*/
|
||||
static JsonReturning *
|
||||
_readJsonReturning(void)
|
||||
{
|
||||
READ_LOCALS(JsonReturning);
|
||||
|
||||
READ_NODE_FIELD(format);
|
||||
READ_OID_FIELD(typid);
|
||||
READ_INT_FIELD(typmod);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonValueExpr
|
||||
*/
|
||||
static JsonValueExpr *
|
||||
_readJsonValueExpr(void)
|
||||
{
|
||||
READ_LOCALS(JsonValueExpr);
|
||||
|
||||
READ_NODE_FIELD(raw_expr);
|
||||
READ_NODE_FIELD(formatted_expr);
|
||||
READ_NODE_FIELD(format);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonConstructorExpr
|
||||
*/
|
||||
static JsonConstructorExpr *
|
||||
_readJsonConstructorExpr(void)
|
||||
{
|
||||
READ_LOCALS(JsonConstructorExpr);
|
||||
|
||||
READ_ENUM_FIELD(type, JsonConstructorType);
|
||||
READ_NODE_FIELD(args);
|
||||
READ_NODE_FIELD(func);
|
||||
READ_NODE_FIELD(coercion);
|
||||
READ_NODE_FIELD(returning);
|
||||
READ_BOOL_FIELD(absent_on_null);
|
||||
READ_BOOL_FIELD(unique);
|
||||
READ_LOCATION_FIELD(location);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonBehavior
|
||||
*/
|
||||
static JsonBehavior *
|
||||
_readJsonBehavior(void)
|
||||
{
|
||||
READ_LOCALS(JsonBehavior);
|
||||
|
||||
READ_ENUM_FIELD(btype, JsonBehaviorType);
|
||||
READ_NODE_FIELD(default_expr);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonExpr
|
||||
*/
|
||||
static JsonExpr *
|
||||
_readJsonExpr(void)
|
||||
{
|
||||
READ_LOCALS(JsonExpr);
|
||||
|
||||
READ_ENUM_FIELD(op, JsonExprOp);
|
||||
READ_NODE_FIELD(formatted_expr);
|
||||
READ_NODE_FIELD(result_coercion);
|
||||
READ_NODE_FIELD(format);
|
||||
READ_NODE_FIELD(path_spec);
|
||||
READ_NODE_FIELD(passing_names);
|
||||
READ_NODE_FIELD(passing_values);
|
||||
READ_NODE_FIELD(returning);
|
||||
READ_NODE_FIELD(on_empty);
|
||||
READ_NODE_FIELD(on_error);
|
||||
READ_NODE_FIELD(coercions);
|
||||
READ_ENUM_FIELD(wrapper, JsonWrapper);
|
||||
READ_BOOL_FIELD(omit_quotes);
|
||||
READ_LOCATION_FIELD(location);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
static JsonTableParent *
|
||||
_readJsonTableParent(void)
|
||||
{
|
||||
READ_LOCALS(JsonTableParent);
|
||||
|
||||
READ_NODE_FIELD(path);
|
||||
READ_STRING_FIELD(name);
|
||||
READ_NODE_FIELD(child);
|
||||
READ_BOOL_FIELD(outerJoin);
|
||||
READ_INT_FIELD(colMin);
|
||||
READ_INT_FIELD(colMax);
|
||||
READ_BOOL_FIELD(errorOnError);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
static JsonTableSibling *
|
||||
_readJsonTableSibling(void)
|
||||
{
|
||||
READ_LOCALS(JsonTableSibling);
|
||||
|
||||
READ_NODE_FIELD(larg);
|
||||
READ_NODE_FIELD(rarg);
|
||||
READ_BOOL_FIELD(cross);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonCoercion
|
||||
*/
|
||||
static JsonCoercion *
|
||||
_readJsonCoercion(void)
|
||||
{
|
||||
READ_LOCALS(JsonCoercion);
|
||||
|
||||
READ_NODE_FIELD(expr);
|
||||
READ_BOOL_FIELD(via_populate);
|
||||
READ_BOOL_FIELD(via_io);
|
||||
READ_OID_FIELD(collation);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonItemCoercions
|
||||
*/
|
||||
static JsonItemCoercions *
|
||||
_readJsonItemCoercions(void)
|
||||
{
|
||||
READ_LOCALS(JsonItemCoercions);
|
||||
|
||||
READ_NODE_FIELD(null);
|
||||
READ_NODE_FIELD(string);
|
||||
READ_NODE_FIELD(numeric);
|
||||
READ_NODE_FIELD(boolean);
|
||||
READ_NODE_FIELD(date);
|
||||
READ_NODE_FIELD(time);
|
||||
READ_NODE_FIELD(timetz);
|
||||
READ_NODE_FIELD(timestamp);
|
||||
READ_NODE_FIELD(timestamptz);
|
||||
READ_NODE_FIELD(composite);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* _readJsonIsPredicate
|
||||
*/
|
||||
static JsonIsPredicate *
|
||||
_readJsonIsPredicate()
|
||||
{
|
||||
READ_LOCALS(JsonIsPredicate);
|
||||
|
||||
READ_NODE_FIELD(expr);
|
||||
READ_NODE_FIELD(format);
|
||||
READ_ENUM_FIELD(item_type, JsonValueType);
|
||||
READ_BOOL_FIELD(unique_keys);
|
||||
READ_LOCATION_FIELD(location);
|
||||
|
||||
READ_DONE();
|
||||
}
|
||||
|
||||
/*
|
||||
* Stuff from pathnodes.h.
|
||||
*
|
||||
@@ -3213,28 +3022,6 @@ parseNodeString(void)
|
||||
return_value = _readPartitionBoundSpec();
|
||||
else if (MATCH("PARTITIONRANGEDATUM", 19))
|
||||
return_value = _readPartitionRangeDatum();
|
||||
else if (MATCH("JSONFORMAT", 10))
|
||||
return_value = _readJsonFormat();
|
||||
else if (MATCH("JSONRETURNING", 13))
|
||||
return_value = _readJsonReturning();
|
||||
else if (MATCH("JSONVALUEEXPR", 13))
|
||||
return_value = _readJsonValueExpr();
|
||||
else if (MATCH("JSONCONSTRUCTOREXPR", 19))
|
||||
return_value = _readJsonConstructorExpr();
|
||||
else if (MATCH("JSONISPREDICATE", 15))
|
||||
return_value = _readJsonIsPredicate();
|
||||
else if (MATCH("JSONBEHAVIOR", 12))
|
||||
return_value = _readJsonBehavior();
|
||||
else if (MATCH("JSONEXPR", 8))
|
||||
return_value = _readJsonExpr();
|
||||
else if (MATCH("JSONCOERCION", 12))
|
||||
return_value = _readJsonCoercion();
|
||||
else if (MATCH("JSONITEMCOERCIONS", 17))
|
||||
return_value = _readJsonItemCoercions();
|
||||
else if (MATCH("JSONTABLEPARENT", 15))
|
||||
return_value = _readJsonTableParent();
|
||||
else if (MATCH("JSONTABLESIBLING", 16))
|
||||
return_value = _readJsonTableSibling();
|
||||
else
|
||||
{
|
||||
elog(ERROR, "badly formatted node string \"%.32s\"...", token);
|
||||
|
||||
Reference in New Issue
Block a user