Message punctuation and pluralization fixes
This commit is contained in:
parent
9d775d8894
commit
072457b360
|
@ -940,14 +940,18 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset)
|
||||||
/* complain even if that DB has disappeared */
|
/* complain even if that DB has disappeared */
|
||||||
if (oldest_datname)
|
if (oldest_datname)
|
||||||
ereport(WARNING,
|
ereport(WARNING,
|
||||||
(errmsg("database \"%s\" must be vacuumed before %u more MultiXactIds are used",
|
(errmsg_plural("database \"%s\" must be vacuumed before %u more MultiXactId is used",
|
||||||
|
"database \"%s\" must be vacuumed before %u more MultiXactIds are used",
|
||||||
|
multiWrapLimit - result,
|
||||||
oldest_datname,
|
oldest_datname,
|
||||||
multiWrapLimit - result),
|
multiWrapLimit - result),
|
||||||
errhint("Execute a database-wide VACUUM in that database.\n"
|
errhint("Execute a database-wide VACUUM in that database.\n"
|
||||||
"You might also need to commit or roll back old prepared transactions.")));
|
"You might also need to commit or roll back old prepared transactions.")));
|
||||||
else
|
else
|
||||||
ereport(WARNING,
|
ereport(WARNING,
|
||||||
(errmsg("database with OID %u must be vacuumed before %u more MultiXactIds are used",
|
(errmsg_plural("database with OID %u must be vacuumed before %u more MultiXactId is used",
|
||||||
|
"database with OID %u must be vacuumed before %u more MultiXactIds are used",
|
||||||
|
multiWrapLimit - result,
|
||||||
oldest_datoid,
|
oldest_datoid,
|
||||||
multiWrapLimit - result),
|
multiWrapLimit - result),
|
||||||
errhint("Execute a database-wide VACUUM in that database.\n"
|
errhint("Execute a database-wide VACUUM in that database.\n"
|
||||||
|
@ -1982,14 +1986,18 @@ SetMultiXactIdLimit(MultiXactId oldest_datminmxid, Oid oldest_datoid)
|
||||||
|
|
||||||
if (oldest_datname)
|
if (oldest_datname)
|
||||||
ereport(WARNING,
|
ereport(WARNING,
|
||||||
(errmsg("database \"%s\" must be vacuumed before %u more MultiXactIds are used",
|
(errmsg_plural("database \"%s\" must be vacuumed before %u more MultiXactId is used",
|
||||||
|
"database \"%s\" must be vacuumed before %u more MultiXactIds are used",
|
||||||
|
multiWrapLimit - curMulti,
|
||||||
oldest_datname,
|
oldest_datname,
|
||||||
multiWrapLimit - curMulti),
|
multiWrapLimit - curMulti),
|
||||||
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
|
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
|
||||||
"You might also need to commit or roll back old prepared transactions.")));
|
"You might also need to commit or roll back old prepared transactions.")));
|
||||||
else
|
else
|
||||||
ereport(WARNING,
|
ereport(WARNING,
|
||||||
(errmsg("database with OID %u must be vacuumed before %u more MultiXactIds are used",
|
(errmsg_plural("database with OID %u must be vacuumed before %u more MultiXactId is used",
|
||||||
|
"database with OID %u must be vacuumed before %u more MultiXactIds are used",
|
||||||
|
multiWrapLimit - curMulti,
|
||||||
oldest_datoid,
|
oldest_datoid,
|
||||||
multiWrapLimit - curMulti),
|
multiWrapLimit - curMulti),
|
||||||
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
|
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
|
||||||
|
|
|
@ -6138,7 +6138,7 @@ StartupXLOG(void)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_OUT_OF_MEMORY),
|
(errcode(ERRCODE_OUT_OF_MEMORY),
|
||||||
errmsg("out of memory"),
|
errmsg("out of memory"),
|
||||||
errdetail("Failed while allocating an XLog reading processor")));
|
errdetail("Failed while allocating an XLog reading processor.")));
|
||||||
xlogreader->system_identifier = ControlFile->system_identifier;
|
xlogreader->system_identifier = ControlFile->system_identifier;
|
||||||
|
|
||||||
if (read_backup_label(&checkPointLoc, &backupEndRequired,
|
if (read_backup_label(&checkPointLoc, &backupEndRequired,
|
||||||
|
|
|
@ -728,7 +728,7 @@ json_lex_string(JsonLexContext *lex)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
errmsg("invalid input syntax for type json"),
|
errmsg("invalid input syntax for type json"),
|
||||||
errdetail("high order surrogate must not follow a high order surrogate."),
|
errdetail("Unicode high surrogate must not follow a high surrogate."),
|
||||||
report_json_context(lex)));
|
report_json_context(lex)));
|
||||||
hi_surrogate = (ch & 0x3ff) << 10;
|
hi_surrogate = (ch & 0x3ff) << 10;
|
||||||
continue;
|
continue;
|
||||||
|
@ -739,7 +739,7 @@ json_lex_string(JsonLexContext *lex)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
errmsg("invalid input syntax for type json"),
|
errmsg("invalid input syntax for type json"),
|
||||||
errdetail("low order surrogate must follow a high order surrogate."),
|
errdetail("Unicode low surrogate must follow a high surrogate."),
|
||||||
report_json_context(lex)));
|
report_json_context(lex)));
|
||||||
ch = 0x10000 + hi_surrogate + (ch & 0x3ff);
|
ch = 0x10000 + hi_surrogate + (ch & 0x3ff);
|
||||||
hi_surrogate = -1;
|
hi_surrogate = -1;
|
||||||
|
@ -749,7 +749,7 @@ json_lex_string(JsonLexContext *lex)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
errmsg("invalid input syntax for type json"),
|
errmsg("invalid input syntax for type json"),
|
||||||
errdetail("low order surrogate must follow a high order surrogate."),
|
errdetail("Unicode low surrogate must follow a high surrogate."),
|
||||||
report_json_context(lex)));
|
report_json_context(lex)));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -783,7 +783,7 @@ json_lex_string(JsonLexContext *lex)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
errmsg("invalid input syntax for type json"),
|
errmsg("invalid input syntax for type json"),
|
||||||
errdetail("Unicode escape for code points higher than U+007F not permitted in non-UTF8 encoding"),
|
errdetail("Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8."),
|
||||||
report_json_context(lex)));
|
report_json_context(lex)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -795,7 +795,7 @@ json_lex_string(JsonLexContext *lex)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
errmsg("invalid input syntax for type json"),
|
errmsg("invalid input syntax for type json"),
|
||||||
errdetail("low order surrogate must follow a high order surrogate."),
|
errdetail("Unicode low surrogate must follow a high surrogate."),
|
||||||
report_json_context(lex)));
|
report_json_context(lex)));
|
||||||
|
|
||||||
switch (*s)
|
switch (*s)
|
||||||
|
@ -856,7 +856,7 @@ json_lex_string(JsonLexContext *lex)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
errmsg("invalid input syntax for type json"),
|
errmsg("invalid input syntax for type json"),
|
||||||
errdetail("low order surrogate must follow a high order surrogate."),
|
errdetail("Unicode low surrogate must follow a high surrogate."),
|
||||||
report_json_context(lex)));
|
report_json_context(lex)));
|
||||||
|
|
||||||
appendStringInfoChar(lex->strval, *s);
|
appendStringInfoChar(lex->strval, *s);
|
||||||
|
@ -868,7 +868,7 @@ json_lex_string(JsonLexContext *lex)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
errmsg("invalid input syntax for type json"),
|
errmsg("invalid input syntax for type json"),
|
||||||
errdetail("low order surrogate must follow a high order surrogate."),
|
errdetail("Unicode low surrogate must follow a high surrogate."),
|
||||||
report_json_context(lex)));
|
report_json_context(lex)));
|
||||||
|
|
||||||
/* Hooray, we found the end of the string! */
|
/* Hooray, we found the end of the string! */
|
||||||
|
|
|
@ -1239,7 +1239,7 @@ json_populate_record(PG_FUNCTION_ARGS)
|
||||||
if (!type_is_rowtype(argtype))
|
if (!type_is_rowtype(argtype))
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_DATATYPE_MISMATCH),
|
(errcode(ERRCODE_DATATYPE_MISMATCH),
|
||||||
errmsg("first argument must be a rowtype")));
|
errmsg("first argument of json_populate_record must be a row type")));
|
||||||
|
|
||||||
if (PG_ARGISNULL(0))
|
if (PG_ARGISNULL(0))
|
||||||
{
|
{
|
||||||
|
@ -1581,7 +1581,7 @@ json_populate_recordset(PG_FUNCTION_ARGS)
|
||||||
if (!type_is_rowtype(argtype))
|
if (!type_is_rowtype(argtype))
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_DATATYPE_MISMATCH),
|
(errcode(ERRCODE_DATATYPE_MISMATCH),
|
||||||
errmsg("first argument must be a rowtype")));
|
errmsg("first argument of json_populate_recordset must be a row type")));
|
||||||
|
|
||||||
rsi = (ReturnSetInfo *) fcinfo->resultinfo;
|
rsi = (ReturnSetInfo *) fcinfo->resultinfo;
|
||||||
|
|
||||||
|
|
|
@ -929,19 +929,19 @@ select json '{ "a": "\ud83d\ude04\ud83d\udc36" }' -> 'a' as correct_in_utf8;
|
||||||
|
|
||||||
select json '{ "a": "\ud83d\ud83d" }' -> 'a'; -- 2 high surrogates in a row
|
select json '{ "a": "\ud83d\ud83d" }' -> 'a'; -- 2 high surrogates in a row
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: high order surrogate must not follow a high order surrogate.
|
DETAIL: Unicode high surrogate must not follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "\ude04\ud83d" }' -> 'a'; -- surrogates in wrong order
|
select json '{ "a": "\ude04\ud83d" }' -> 'a'; -- surrogates in wrong order
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: low order surrogate must follow a high order surrogate.
|
DETAIL: Unicode low surrogate must follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "\ud83dX" }' -> 'a'; -- orphan high surrogate
|
select json '{ "a": "\ud83dX" }' -> 'a'; -- orphan high surrogate
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: low order surrogate must follow a high order surrogate.
|
DETAIL: Unicode low surrogate must follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "\ude04X" }' -> 'a'; -- orphan low surrogate
|
select json '{ "a": "\ude04X" }' -> 'a'; -- orphan low surrogate
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: low order surrogate must follow a high order surrogate.
|
DETAIL: Unicode low surrogate must follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
--handling of simple unicode escapes
|
--handling of simple unicode escapes
|
||||||
select json '{ "a": "the Copyright \u00a9 sign" }' ->> 'a' as correct_in_utf8;
|
select json '{ "a": "the Copyright \u00a9 sign" }' ->> 'a' as correct_in_utf8;
|
||||||
|
|
|
@ -923,28 +923,28 @@ ERROR: cannot call json_populate_recordset on a nested object
|
||||||
-- handling of unicode surrogate pairs
|
-- handling of unicode surrogate pairs
|
||||||
select json '{ "a": "\ud83d\ude04\ud83d\udc36" }' -> 'a' as correct_in_utf8;
|
select json '{ "a": "\ud83d\ude04\ud83d\udc36" }' -> 'a' as correct_in_utf8;
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: Unicode escape for code points higher than U+007F not permitted in non-UTF8 encoding
|
DETAIL: Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "\ud83d\ud83d" }' -> 'a'; -- 2 high surrogates in a row
|
select json '{ "a": "\ud83d\ud83d" }' -> 'a'; -- 2 high surrogates in a row
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: high order surrogate must not follow a high order surrogate.
|
DETAIL: Unicode high surrogate must not follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "\ude04\ud83d" }' -> 'a'; -- surrogates in wrong order
|
select json '{ "a": "\ude04\ud83d" }' -> 'a'; -- surrogates in wrong order
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: low order surrogate must follow a high order surrogate.
|
DETAIL: Unicode low surrogate must follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "\ud83dX" }' -> 'a'; -- orphan high surrogate
|
select json '{ "a": "\ud83dX" }' -> 'a'; -- orphan high surrogate
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: low order surrogate must follow a high order surrogate.
|
DETAIL: Unicode low surrogate must follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "\ude04X" }' -> 'a'; -- orphan low surrogate
|
select json '{ "a": "\ude04X" }' -> 'a'; -- orphan low surrogate
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: low order surrogate must follow a high order surrogate.
|
DETAIL: Unicode low surrogate must follow a high surrogate.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
--handling of simple unicode escapes
|
--handling of simple unicode escapes
|
||||||
select json '{ "a": "the Copyright \u00a9 sign" }' ->> 'a' as correct_in_utf8;
|
select json '{ "a": "the Copyright \u00a9 sign" }' ->> 'a' as correct_in_utf8;
|
||||||
ERROR: invalid input syntax for type json
|
ERROR: invalid input syntax for type json
|
||||||
DETAIL: Unicode escape for code points higher than U+007F not permitted in non-UTF8 encoding
|
DETAIL: Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8.
|
||||||
CONTEXT: JSON data, line 1: { "a":...
|
CONTEXT: JSON data, line 1: { "a":...
|
||||||
select json '{ "a": "dollar \u0024 character" }' ->> 'a' as correct_everywhere;
|
select json '{ "a": "dollar \u0024 character" }' ->> 'a' as correct_everywhere;
|
||||||
correct_everywhere
|
correct_everywhere
|
||||||
|
|
Loading…
Reference in New Issue