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)
{
GUC_check_errdetail("archive directory too long");
GUC_check_errdetail("Archive directory too long.");
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))
{
GUC_check_errdetail("specified archive directory does not exist");
GUC_check_errdetail("Specified archive directory does not exist.");
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
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password_required 'false');
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;
ERROR: password is required
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 (ADD sslcert 'foo.crt');
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');
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
-- changes to the public mapping.
DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;

View File

@ -193,7 +193,7 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
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 ||
strcmp(def->defname, "sslkey") == 0)
@ -203,7 +203,7 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
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),
errmsg("cannot use publication column list for relation \"%s\"",
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")));
}
}

View File

@ -17790,7 +17790,7 @@ ATExecAttachPartition(List **wqueue, Relation rel, PartitionCmd *cmd,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("trigger \"%s\" prevents table \"%s\" from becoming a partition",
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

View File

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

View File

@ -141,7 +141,7 @@ registerJsonTableColumn(JsonTableContext *cxt, char *colname)
ereport(ERROR,
(errcode(ERRCODE_DUPLICATE_ALIAS),
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);
}
@ -258,7 +258,7 @@ validateJsonTableChildPlan(ParseState *pstate, JsonTablePlan *plan,
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
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)));
nchildren++;
@ -269,7 +269,7 @@ validateJsonTableChildPlan(ParseState *pstate, JsonTablePlan *plan,
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
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)));
}
@ -385,7 +385,7 @@ transformJsonTableChildPlan(JsonTableContext *cxt, JsonTablePlan *plan,
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
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),
parser_errposition(cxt->pstate, plan->location)));
@ -586,7 +586,7 @@ transformJsonTableColumns(JsonTableContext *cxt, JsonTablePlan *plan,
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
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)));
parentPlan = plan->plan1;
@ -605,7 +605,7 @@ transformJsonTableColumns(JsonTableContext *cxt, JsonTablePlan *plan,
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
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),
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),
errmsg("JSON path expression in JSON_QUERY should return "
"singleton item without wrapper"),
errhint("use WITH WRAPPER clause to wrap SQL/JSON item "
"sequence into array")));
errhint("Use WITH WRAPPER clause to wrap SQL/JSON item "
"sequence into array.")));
}
if (first)

View File

@ -526,7 +526,7 @@ makeItemLikeRegex(JsonPathParseItem *expr, JsonPathString *pattern,
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
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)));
break;
}

View File

@ -12551,7 +12551,7 @@ check_client_connection_check_interval(int *newval, void **extra, GucSource sour
{
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 true;

View File

@ -716,7 +716,7 @@ SELECT JSON_QUERY(jsonb '[]', '$[*]' 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
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);
json_query
------------
@ -1378,7 +1378,7 @@ SELECT * FROM JSON_TABLE(
)
) jt;
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(
jsonb '[]', '$' AS a
COLUMNS (
@ -1390,7 +1390,7 @@ SELECT * FROM JSON_TABLE(
)
) jt;
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(
jsonb '[]', '$'
COLUMNS (
@ -1402,7 +1402,7 @@ SELECT * FROM JSON_TABLE(
)
) jt;
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(
jsonb '[]', '$'
COLUMNS (
@ -1420,7 +1420,7 @@ SELECT * FROM JSON_TABLE(
)
) jt;
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
SELECT * FROM JSON_TABLE(
jsonb 'null', '$[*]' AS p0
@ -1438,7 +1438,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1455,7 +1455,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1472,7 +1472,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1489,7 +1489,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1506,7 +1506,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1523,7 +1523,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1540,7 +1540,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1557,7 +1557,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', '$[*]' AS p0
COLUMNS (
@ -1574,7 +1574,7 @@ SELECT * FROM JSON_TABLE(
ERROR: invalid JSON_TABLE plan
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(
jsonb 'null', 'strict $[*]' AS p0
COLUMNS (

View File

@ -477,7 +477,7 @@ select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
ERROR: invalid input syntax for type 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;
jsonpath
----------

View File

@ -940,7 +940,7 @@ ALTER PUBLICATION testpub6 SET (PUBLISH_VIA_PARTITION_ROOT=0);
-- fail - cannot use column list for partitioned table
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk (a);
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
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk_1 (a);
-- ok - "a" is a PK col

View File

@ -317,7 +317,7 @@ SELECT pg_typeof(JSON_SERIALIZE(NULL));
-- only string types or bytea allowed
SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb);
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('{}');
QUERY PLAN
-----------------------------------------------------
@ -403,12 +403,12 @@ SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF16);
ERROR: unsupported JSON encoding
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);
ERROR: unsupported JSON encoding
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);
ERROR: cannot use non-string types with explicit FORMAT JSON clause
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
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);
ERROR: unsupported JSON encoding
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]');
json_array
-----------------------------------------------------

View File

@ -2951,7 +2951,7 @@ create trigger child_row_trig
-- but now we're not allowed to reattach it
alter table parent attach partition child for values in ('AAA');
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 trigger child_row_trig on child;
alter table parent attach partition child for values in ('AAA');