1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-20 00:42:27 +03:00

Tweak detail and hint messages to be consistent with project policy

Detail and hint messages should be full sentences and should end with a
period, but some of the messages newly-introduced in v15 did not follow
that.

Author: Justin Pryzby
Reviewed-by: Álvaro Herrera
Discussion: https://postgr.es/m/20220719120948.GF12702@telsasoft.com
Backpatch-through: 15
This commit is contained in:
Michael Paquier 2022-07-20 09:50:12 +09:00
parent ecc84b916f
commit 12c254c99f
15 changed files with 43 additions and 43 deletions

View File

@ -111,7 +111,7 @@ check_archive_directory(char **newval, void **extra, GucSource source)
*/ */
if (strlen(*newval) + 64 + 2 >= MAXPGPATH) if (strlen(*newval) + 64 + 2 >= MAXPGPATH)
{ {
GUC_check_errdetail("archive directory too long"); GUC_check_errdetail("Archive directory too long.");
return false; return false;
} }
@ -122,7 +122,7 @@ check_archive_directory(char **newval, void **extra, GucSource source)
*/ */
if (stat(*newval, &st) != 0 || !S_ISDIR(st.st_mode)) if (stat(*newval, &st) != 0 || !S_ISDIR(st.st_mode))
{ {
GUC_check_errdetail("specified archive directory does not exist"); GUC_check_errdetail("Specified archive directory does not exist.");
return false; return false;
} }

View File

@ -9590,7 +9590,7 @@ HINT: Target server's authentication method must be changed or password_require
-- Unpriv user cannot make the mapping passwordless -- Unpriv user cannot make the mapping passwordless
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password_required 'false'); ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password_required 'false');
ERROR: password_required=false is superuser-only ERROR: password_required=false is superuser-only
HINT: User mappings with the password_required option set to false may only be created or modified by the superuser HINT: User mappings with the password_required option set to false may only be created or modified by the superuser.
SELECT 1 FROM ft1_nopw LIMIT 1; SELECT 1 FROM ft1_nopw LIMIT 1;
ERROR: password is required ERROR: password is required
DETAIL: Non-superuser cannot connect if the server does not request a password. DETAIL: Non-superuser cannot connect if the server does not request a password.
@ -9611,10 +9611,10 @@ SELECT 1 FROM ft1_nopw LIMIT 1;
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (SET password_required 'true'); ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (SET password_required 'true');
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslcert 'foo.crt'); ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslcert 'foo.crt');
ERROR: sslcert and sslkey are superuser-only ERROR: sslcert and sslkey are superuser-only
HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser.
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslkey 'foo.key'); ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslkey 'foo.key');
ERROR: sslcert and sslkey are superuser-only ERROR: sslcert and sslkey are superuser-only
HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser.
-- We're done with the role named after a specific user and need to check the -- We're done with the role named after a specific user and need to check the
-- changes to the public mapping. -- changes to the public mapping.
DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw; DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;

View File

@ -193,7 +193,7 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("password_required=false is superuser-only"), errmsg("password_required=false is superuser-only"),
errhint("User mappings with the password_required option set to false may only be created or modified by the superuser"))); errhint("User mappings with the password_required option set to false may only be created or modified by the superuser.")));
} }
else if (strcmp(def->defname, "sslcert") == 0 || else if (strcmp(def->defname, "sslcert") == 0 ||
strcmp(def->defname, "sslkey") == 0) strcmp(def->defname, "sslkey") == 0)
@ -203,7 +203,7 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("sslcert and sslkey are superuser-only"), errmsg("sslcert and sslkey are superuser-only"),
errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser"))); errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser.")));
} }
} }

View File

@ -743,7 +743,7 @@ CheckPubRelationColumnList(List *tables, const char *queryString,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE), (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("cannot use publication column list for relation \"%s\"", errmsg("cannot use publication column list for relation \"%s\"",
RelationGetRelationName(pri->relation)), RelationGetRelationName(pri->relation)),
errdetail("column list cannot be used for a partitioned table when %s is false.", errdetail("Column list cannot be used for a partitioned table when %s is false.",
"publish_via_partition_root"))); "publish_via_partition_root")));
} }
} }

View File

@ -17790,7 +17790,7 @@ ATExecAttachPartition(List **wqueue, Relation rel, PartitionCmd *cmd,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED), (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("trigger \"%s\" prevents table \"%s\" from becoming a partition", errmsg("trigger \"%s\" prevents table \"%s\" from becoming a partition",
trigger_name, RelationGetRelationName(attachrel)), trigger_name, RelationGetRelationName(attachrel)),
errdetail("ROW triggers with transition tables are not supported on partitions"))); errdetail("ROW triggers with transition tables are not supported on partitions.")));
/* /*
* Check that the new partition's bound is valid and does not overlap any * Check that the new partition's bound is valid and does not overlap any

View File

@ -3447,7 +3447,7 @@ checkJsonOutputFormat(ParseState *pstate, const JsonFormat *format,
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED), (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("unsupported JSON encoding"), errmsg("unsupported JSON encoding"),
errhint("only UTF8 JSON encoding is supported"), errhint("Only UTF8 JSON encoding is supported."),
parser_errposition(pstate, format->location))); parser_errposition(pstate, format->location)));
} }
} }
@ -4580,7 +4580,7 @@ transformJsonSerializeExpr(ParseState *pstate, JsonSerializeExpr *expr)
errmsg("cannot use RETURNING type %s in %s", errmsg("cannot use RETURNING type %s in %s",
format_type_be(returning->typid), format_type_be(returning->typid),
"JSON_SERIALIZE()"), "JSON_SERIALIZE()"),
errhint("Try returning a string type or bytea"))); errhint("Try returning a string type or bytea.")));
} }
} }
else else

View File

@ -141,7 +141,7 @@ registerJsonTableColumn(JsonTableContext *cxt, char *colname)
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_DUPLICATE_ALIAS), (errcode(ERRCODE_DUPLICATE_ALIAS),
errmsg("duplicate JSON_TABLE column name: %s", colname), errmsg("duplicate JSON_TABLE column name: %s", colname),
errhint("JSON_TABLE column names must be distinct from one another"))); errhint("JSON_TABLE column names must be distinct from one another.")));
cxt->pathNames = lappend(cxt->pathNames, colname); cxt->pathNames = lappend(cxt->pathNames, colname);
} }
@ -258,7 +258,7 @@ validateJsonTableChildPlan(ParseState *pstate, JsonTablePlan *plan,
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR), (errcode(ERRCODE_SYNTAX_ERROR),
errmsg("invalid JSON_TABLE plan"), errmsg("invalid JSON_TABLE plan"),
errdetail("plan node for nested path %s was not found in plan", jtc->pathname), errdetail("Plan node for nested path %s was not found in plan.", jtc->pathname),
parser_errposition(pstate, jtc->location))); parser_errposition(pstate, jtc->location)));
nchildren++; nchildren++;
@ -269,7 +269,7 @@ validateJsonTableChildPlan(ParseState *pstate, JsonTablePlan *plan,
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR), (errcode(ERRCODE_SYNTAX_ERROR),
errmsg("invalid JSON_TABLE plan"), errmsg("invalid JSON_TABLE plan"),
errdetail("plan node contains some extra or duplicate sibling nodes"), errdetail("Plan node contains some extra or duplicate sibling nodes."),
parser_errposition(pstate, plan ? plan->location : -1))); parser_errposition(pstate, plan ? plan->location : -1)));
} }
@ -385,7 +385,7 @@ transformJsonTableChildPlan(JsonTableContext *cxt, JsonTablePlan *plan,
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR), (errcode(ERRCODE_SYNTAX_ERROR),
errmsg("invalid JSON_TABLE plan"), errmsg("invalid JSON_TABLE plan"),
errdetail("path name was %s not found in nested columns list", errdetail("Path name was %s not found in nested columns list.",
plan->pathname), plan->pathname),
parser_errposition(cxt->pstate, plan->location))); parser_errposition(cxt->pstate, plan->location)));
@ -586,7 +586,7 @@ transformJsonTableColumns(JsonTableContext *cxt, JsonTablePlan *plan,
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR), (errcode(ERRCODE_SYNTAX_ERROR),
errmsg("invalid JSON_TABLE plan"), errmsg("invalid JSON_TABLE plan"),
errdetail("expected INNER or OUTER JSON_TABLE plan node"), errdetail("Expected INNER or OUTER JSON_TABLE plan node."),
parser_errposition(cxt->pstate, plan->location))); parser_errposition(cxt->pstate, plan->location)));
parentPlan = plan->plan1; parentPlan = plan->plan1;
@ -605,7 +605,7 @@ transformJsonTableColumns(JsonTableContext *cxt, JsonTablePlan *plan,
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR), (errcode(ERRCODE_SYNTAX_ERROR),
errmsg("invalid JSON_TABLE plan"), errmsg("invalid JSON_TABLE plan"),
errdetail("path name mismatch: expected %s but %s is given", errdetail("Path name mismatch: expected %s but %s is given.",
*pathName, parentPlan->pathname), *pathName, parentPlan->pathname),
parser_errposition(cxt->pstate, plan->location))); parser_errposition(cxt->pstate, plan->location)));

View File

@ -2973,8 +2973,8 @@ JsonPathQuery(Datum jb, JsonPath *jp, JsonWrapper wrapper, bool *empty,
(errcode(ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM), (errcode(ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM),
errmsg("JSON path expression in JSON_QUERY should return " errmsg("JSON path expression in JSON_QUERY should return "
"singleton item without wrapper"), "singleton item without wrapper"),
errhint("use WITH WRAPPER clause to wrap SQL/JSON item " errhint("Use WITH WRAPPER clause to wrap SQL/JSON item "
"sequence into array"))); "sequence into array.")));
} }
if (first) if (first)

View File

@ -526,7 +526,7 @@ makeItemLikeRegex(JsonPathParseItem *expr, JsonPathString *pattern,
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR), (errcode(ERRCODE_SYNTAX_ERROR),
errmsg("invalid input syntax for type %s", "jsonpath"), errmsg("invalid input syntax for type %s", "jsonpath"),
errdetail("unrecognized flag character \"%.*s\" in LIKE_REGEX predicate", errdetail("Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate.",
pg_mblen(flags->val + i), flags->val + i))); pg_mblen(flags->val + i), flags->val + i)));
break; break;
} }

View File

@ -12551,7 +12551,7 @@ check_client_connection_check_interval(int *newval, void **extra, GucSource sour
{ {
if (!WaitEventSetCanReportClosed() && *newval != 0) if (!WaitEventSetCanReportClosed() && *newval != 0)
{ {
GUC_check_errdetail("client_connection_check_interval must be set to 0 on this platform"); GUC_check_errdetail("client_connection_check_interval must be set to 0 on this platform.");
return false; return false;
} }
return true; return true;

View File

@ -716,7 +716,7 @@ SELECT JSON_QUERY(jsonb '[]', '$[*]' ERROR ON ERROR);
SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' ERROR ON ERROR); SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' ERROR ON ERROR);
ERROR: JSON path expression in JSON_QUERY should return singleton item without wrapper ERROR: JSON path expression in JSON_QUERY should return singleton item without wrapper
HINT: use WITH WRAPPER clause to wrap SQL/JSON item sequence into array HINT: Use WITH WRAPPER clause to wrap SQL/JSON item sequence into array.
SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' DEFAULT '"empty"' ON ERROR); SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' DEFAULT '"empty"' ON ERROR);
json_query json_query
------------ ------------
@ -1378,7 +1378,7 @@ SELECT * FROM JSON_TABLE(
) )
) jt; ) jt;
ERROR: duplicate JSON_TABLE column name: a ERROR: duplicate JSON_TABLE column name: a
HINT: JSON_TABLE column names must be distinct from one another HINT: JSON_TABLE column names must be distinct from one another.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb '[]', '$' AS a jsonb '[]', '$' AS a
COLUMNS ( COLUMNS (
@ -1390,7 +1390,7 @@ SELECT * FROM JSON_TABLE(
) )
) jt; ) jt;
ERROR: duplicate JSON_TABLE column name: a ERROR: duplicate JSON_TABLE column name: a
HINT: JSON_TABLE column names must be distinct from one another HINT: JSON_TABLE column names must be distinct from one another.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb '[]', '$' jsonb '[]', '$'
COLUMNS ( COLUMNS (
@ -1402,7 +1402,7 @@ SELECT * FROM JSON_TABLE(
) )
) jt; ) jt;
ERROR: duplicate JSON_TABLE column name: b ERROR: duplicate JSON_TABLE column name: b
HINT: JSON_TABLE column names must be distinct from one another HINT: JSON_TABLE column names must be distinct from one another.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb '[]', '$' jsonb '[]', '$'
COLUMNS ( COLUMNS (
@ -1420,7 +1420,7 @@ SELECT * FROM JSON_TABLE(
) )
) jt; ) jt;
ERROR: duplicate JSON_TABLE column name: a ERROR: duplicate JSON_TABLE column name: a
HINT: JSON_TABLE column names must be distinct from one another HINT: JSON_TABLE column names must be distinct from one another.
-- JSON_TABLE: plan validation -- JSON_TABLE: plan validation
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
@ -1438,7 +1438,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 12: PLAN (p1) LINE 12: PLAN (p1)
^ ^
DETAIL: path name mismatch: expected p0 but p1 is given DETAIL: Path name mismatch: expected p0 but p1 is given.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1455,7 +1455,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 4: NESTED PATH '$' AS p1 COLUMNS ( LINE 4: NESTED PATH '$' AS p1 COLUMNS (
^ ^
DETAIL: plan node for nested path p1 was not found in plan DETAIL: Plan node for nested path p1 was not found in plan.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1472,7 +1472,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 4: NESTED PATH '$' AS p1 COLUMNS ( LINE 4: NESTED PATH '$' AS p1 COLUMNS (
^ ^
DETAIL: plan node for nested path p1 was not found in plan DETAIL: Plan node for nested path p1 was not found in plan.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1489,7 +1489,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 12: PLAN (p0 UNION p1 UNION p11) LINE 12: PLAN (p0 UNION p1 UNION p11)
^ ^
DETAIL: expected INNER or OUTER JSON_TABLE plan node DETAIL: Expected INNER or OUTER JSON_TABLE plan node.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1506,7 +1506,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 8: NESTED PATH '$' AS p2 COLUMNS ( LINE 8: NESTED PATH '$' AS p2 COLUMNS (
^ ^
DETAIL: plan node for nested path p2 was not found in plan DETAIL: Plan node for nested path p2 was not found in plan.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1523,7 +1523,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 5: NESTED PATH '$' AS p11 COLUMNS ( foo int ), LINE 5: NESTED PATH '$' AS p11 COLUMNS ( foo int ),
^ ^
DETAIL: plan node for nested path p11 was not found in plan DETAIL: Plan node for nested path p11 was not found in plan.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1540,7 +1540,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 12: PLAN (p0 OUTER ((p1 UNION p11) CROSS p2)) LINE 12: PLAN (p0 OUTER ((p1 UNION p11) CROSS p2))
^ ^
DETAIL: plan node contains some extra or duplicate sibling nodes DETAIL: Plan node contains some extra or duplicate sibling nodes.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1557,7 +1557,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 6: NESTED PATH '$' AS p12 COLUMNS ( bar int ) LINE 6: NESTED PATH '$' AS p12 COLUMNS ( bar int )
^ ^
DETAIL: plan node for nested path p12 was not found in plan DETAIL: Plan node for nested path p12 was not found in plan.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0 jsonb 'null', '$[*]' AS p0
COLUMNS ( COLUMNS (
@ -1574,7 +1574,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan ERROR: invalid JSON_TABLE plan
LINE 9: NESTED PATH '$' AS p21 COLUMNS ( baz int ) LINE 9: NESTED PATH '$' AS p21 COLUMNS ( baz int )
^ ^
DETAIL: plan node for nested path p21 was not found in plan DETAIL: Plan node for nested path p21 was not found in plan.
SELECT * FROM JSON_TABLE( SELECT * FROM JSON_TABLE(
jsonb 'null', 'strict $[*]' AS p0 jsonb 'null', 'strict $[*]' AS p0
COLUMNS ( COLUMNS (

View File

@ -477,7 +477,7 @@ select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
ERROR: invalid input syntax for type jsonpath ERROR: invalid input syntax for type jsonpath
LINE 1: select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath; LINE 1: select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
^ ^
DETAIL: unrecognized flag character "a" in LIKE_REGEX predicate DETAIL: Unrecognized flag character "a" in LIKE_REGEX predicate.
select '$ < 1'::jsonpath; select '$ < 1'::jsonpath;
jsonpath jsonpath
---------- ----------

View File

@ -940,7 +940,7 @@ ALTER PUBLICATION testpub6 SET (PUBLISH_VIA_PARTITION_ROOT=0);
-- fail - cannot use column list for partitioned table -- fail - cannot use column list for partitioned table
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk (a); ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk (a);
ERROR: cannot use publication column list for relation "rf_tbl_abcd_part_pk" ERROR: cannot use publication column list for relation "rf_tbl_abcd_part_pk"
DETAIL: column list cannot be used for a partitioned table when publish_via_partition_root is false. DETAIL: Column list cannot be used for a partitioned table when publish_via_partition_root is false.
-- ok - can use column list for partition -- ok - can use column list for partition
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk_1 (a); ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk_1 (a);
-- ok - "a" is a PK col -- ok - "a" is a PK col

View File

@ -317,7 +317,7 @@ SELECT pg_typeof(JSON_SERIALIZE(NULL));
-- only string types or bytea allowed -- only string types or bytea allowed
SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb); SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb);
ERROR: cannot use RETURNING type jsonb in JSON_SERIALIZE() ERROR: cannot use RETURNING type jsonb in JSON_SERIALIZE()
HINT: Try returning a string type or bytea HINT: Try returning a string type or bytea.
EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SERIALIZE('{}'); EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SERIALIZE('{}');
QUERY PLAN QUERY PLAN
----------------------------------------------------- -----------------------------------------------------
@ -403,12 +403,12 @@ SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF16);
ERROR: unsupported JSON encoding ERROR: unsupported JSON encoding
LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF1... LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF1...
^ ^
HINT: only UTF8 JSON encoding is supported HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF32); SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF32);
ERROR: unsupported JSON encoding ERROR: unsupported JSON encoding
LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF3... LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF3...
^ ^
HINT: only UTF8 JSON encoding is supported HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON); SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
ERROR: cannot use non-string types with explicit FORMAT JSON clause ERROR: cannot use non-string types with explicit FORMAT JSON clause
LINE 1: SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON); LINE 1: SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
@ -691,12 +691,12 @@ SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16);
ERROR: unsupported JSON encoding ERROR: unsupported JSON encoding
LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16... LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16...
^ ^
HINT: only UTF8 JSON encoding is supported HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32); SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32);
ERROR: unsupported JSON encoding ERROR: unsupported JSON encoding
LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32... LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32...
^ ^
HINT: only UTF8 JSON encoding is supported HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_ARRAY('aaa', 111, true, array[1,2,3], NULL, json '{"a": [1]}', jsonb '["a",3]'); SELECT JSON_ARRAY('aaa', 111, true, array[1,2,3], NULL, json '{"a": [1]}', jsonb '["a",3]');
json_array json_array
----------------------------------------------------- -----------------------------------------------------

View File

@ -2951,7 +2951,7 @@ create trigger child_row_trig
-- but now we're not allowed to reattach it -- but now we're not allowed to reattach it
alter table parent attach partition child for values in ('AAA'); alter table parent attach partition child for values in ('AAA');
ERROR: trigger "child_row_trig" prevents table "child" from becoming a partition ERROR: trigger "child_row_trig" prevents table "child" from becoming a partition
DETAIL: ROW triggers with transition tables are not supported on partitions DETAIL: ROW triggers with transition tables are not supported on partitions.
-- drop the trigger, and now we're allowed to attach it again -- drop the trigger, and now we're allowed to attach it again
drop trigger child_row_trig on child; drop trigger child_row_trig on child;
alter table parent attach partition child for values in ('AAA'); alter table parent attach partition child for values in ('AAA');