We recently made corrections to the capitalization of DETAIL messages. For example;
- GUC_check_errdetail("invalid list syntax in parameter %s", + GUC_check_errdetail("Invalid list syntax in parameter %s", But still it is missing the period at the end. There are several patterns to this issue, but this time, I have only fixed the ones that are simple and obvious as follows: a. GUC_check_errdetail("LITERAL"), errdetail("LITERAL") without a period. b. psprintf()'ed string that is passed to errdetail_internal() I didn't touch the following patterns: c. errdetail_internal("%s") d. errdetail("Whatever: %s") e. errdetail("%s versus %s") and alikes f. errdetail_internal("%s", pchomp(PQerrorMessage())) g. complex message compilation The attached patch contains the following fix: - GUC_check_errdetail("timestamp out of range: \"%s\"", str); + GUC_check_errdetail("Timestamp out of range: \"%s\".", str); But I'm not quite confident about whether capitalizing the type name here is correct. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
diff --git a/contrib/cube/cubescan.l b/contrib/cube/cubescan.l index a30fbfc311..b45dc08f0c 100644 --- a/contrib/cube/cubescan.l +++ b/contrib/cube/cubescan.l @@ -82,7 +82,7 @@ cube_yyerror(NDBOX **result, Size scanbuflen, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for cube"), /* translator: %s is typically "syntax error" */ - errdetail("%s at end of input", message))); + errdetail("%s at end of input.", message))); } else { @@ -90,7 +90,7 @@ cube_yyerror(NDBOX **result, Size scanbuflen, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for cube"), /* translator: first %s is typically "syntax error" */ - errdetail("%s at or near \"%s\"", message, yytext))); + errdetail("%s at or near \"%s\".", message, yytext))); } } diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index 19a362526d..2720e91c14 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -2633,7 +2633,7 @@ dblink_security_check(PGconn *conn, remoteConn *rconn, const char *connstr) ereport(ERROR, (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED), errmsg("password or GSSAPI delegated credentials required"), - errdetail("Non-superusers may only connect using credentials they provide, eg: password in connection string or delegated GSSAPI credentials"), + errdetail("Non-superusers may only connect using credentials they provide, eg: password in connection string or delegated GSSAPI credentials."), errhint("Ensure provided credentials match target server's authentication method."))); } diff --git a/contrib/seg/segscan.l b/contrib/seg/segscan.l index 4ad529eccc..f5a72c2496 100644 --- a/contrib/seg/segscan.l +++ b/contrib/seg/segscan.l @@ -79,7 +79,7 @@ seg_yyerror(SEG *result, struct Node *escontext, const char *message) (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad seg representation"), /* translator: %s is typically "syntax error" */ - errdetail("%s at end of input", message))); + errdetail("%s at end of input.", message))); } else { @@ -87,7 +87,7 @@ seg_yyerror(SEG *result, struct Node *escontext, const char *message) (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad seg representation"), /* translator: first %s is typically "syntax error" */ - errdetail("%s at or near \"%s\"", message, yytext))); + errdetail("%s at or near \"%s\".", message, yytext))); } } diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index 1b48d7171a..2d90bbfee8 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -4882,7 +4882,7 @@ check_recovery_target_time(char **newval, void **extra, GucSource source) if (tm2timestamp(tm, fsec, &tz, ×tamp) != 0) { - GUC_check_errdetail("timestamp out of range: \"%s\"", str); + GUC_check_errdetail("Timestamp out of range: \"%s\".", str); return false; } } diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 226f85d0e3..564f79dab9 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -2946,7 +2946,7 @@ AlterExtensionNamespace(const char *extensionName, const char *newschema, Oid *o (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("extension \"%s\" does not support SET SCHEMA", NameStr(extForm->extname)), - errdetail("%s is not in the extension's schema \"%s\"", + errdetail("%s is not in the extension's schema \"%s\".", getObjectDescription(&dep, false), get_namespace_name(oldNspOid)))); } diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 2a56a4357c..b469d56ef0 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -13820,7 +13820,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype, ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot alter type of a column used by a view or rule"), - errdetail("%s depends on column \"%s\"", + errdetail("%s depends on column \"%s\".", getObjectDescription(&foundObject, false), colName))); break; @@ -13840,7 +13840,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype, ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot alter type of a column used in a trigger definition"), - errdetail("%s depends on column \"%s\"", + errdetail("%s depends on column \"%s\".", getObjectDescription(&foundObject, false), colName))); break; @@ -13859,7 +13859,7 @@ RememberAllDependentForRebuilding(AlteredTableInfo *tab, AlterTableType subtype, ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot alter type of a column used in a policy definition"), - errdetail("%s depends on column \"%s\"", + errdetail("%s depends on column \"%s\".", getObjectDescription(&foundObject, false), colName))); break; diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 64da848627..1ce232f91a 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -134,7 +134,7 @@ check_vacuum_buffer_usage_limit(int *newval, void **extra, return true; /* Value does not fall within any allowable range */ - GUC_check_errdetail("vacuum_buffer_usage_limit must be 0 or between %d kB and %d kB", + GUC_check_errdetail("vacuum_buffer_usage_limit must be 0 or between %d kB and %d kB.", MIN_BAS_VAC_RING_SIZE_KB, MAX_BAS_VAC_RING_SIZE_KB); return false; diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c index e12b1cc9e3..6cc77214df 100644 --- a/src/backend/libpq/be-secure-openssl.c +++ b/src/backend/libpq/be-secure-openssl.c @@ -245,7 +245,7 @@ be_tls_init(bool isServerStart) { ereport(isServerStart ? FATAL : LOG, (errmsg("could not set SSL protocol version range"), - errdetail("%s cannot be higher than %s", + errdetail("%s cannot be higher than %s.", "ssl_min_protocol_version", "ssl_max_protocol_version"))); goto error; diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index ca6490a9ae..7fce55296c 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -2895,7 +2895,7 @@ check_valid_polymorphic_signature(Oid ret_type, return NULL; /* OK */ } /* Keep this list in sync with IsPolymorphicTypeFamily2! */ - return psprintf(_("A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultirange."), + return psprintf(_("A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultog)irange."), format_type_be(ret_type)); } else diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index a0b7947d2f..c9e03c5247 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -1353,7 +1353,7 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn ereport(DEBUG1, (errmsg_internal("skipping snapshot at %X/%X while building logical decoding snapshot, xmin horizon too low", LSN_FORMAT_ARGS(lsn)), - errdetail_internal("initial xmin horizon of %u vs the snapshot's %u", + errdetail_internal("Initial xmin horizon of %u vs the snapshot's %u.", builder->initial_xmin_horizon, running->oldestRunningXid))); diff --git a/src/backend/replication/syncrep.c b/src/backend/replication/syncrep.c index 2e6493aaaa..6cbec236e7 100644 --- a/src/backend/replication/syncrep.c +++ b/src/backend/replication/syncrep.c @@ -1016,7 +1016,7 @@ check_synchronous_standby_names(char **newval, void **extra, GucSource source) if (syncrep_parse_error_msg) GUC_check_errdetail("%s", syncrep_parse_error_msg); else - GUC_check_errdetail("synchronous_standby_names parser failed"); + GUC_check_errdetail("synchronous_standby_names parser failed."); return false; } diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index d298e4842c..d6c43e0b61 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -3961,7 +3961,7 @@ check_debug_io_direct(char **newval, void **extra, GucSource source) if (!SplitGUCList(rawstring, ',', &elemlist)) { - GUC_check_errdetail("Invalid list syntax in parameter %s", + GUC_check_errdetail("Invalid list syntax in parameter %s.", "debug_io_direct"); pfree(rawstring); list_free(elemlist); @@ -3981,7 +3981,7 @@ check_debug_io_direct(char **newval, void **extra, GucSource source) flags |= IO_DIRECT_WAL_INIT; else { - GUC_check_errdetail("Invalid option \"%s\"", item); + GUC_check_errdetail("Invalid option \"%s\".", item); result = false; break; } @@ -3994,14 +3994,14 @@ check_debug_io_direct(char **newval, void **extra, GucSource source) #if XLOG_BLCKSZ < PG_IO_ALIGN_SIZE if (result && (flags & (IO_DIRECT_WAL | IO_DIRECT_WAL_INIT))) { - GUC_check_errdetail("debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small"); + GUC_check_errdetail("debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small."); result = false; } #endif #if BLCKSZ < PG_IO_ALIGN_SIZE if (result && (flags & IO_DIRECT_DATA)) { - GUC_check_errdetail("debug_io_direct is not supported for data because BLCKSZ is too small"); + GUC_check_errdetail("debug_io_direct is not supported for data because BLCKSZ is too small."); result = false; } #endif diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 2c7a20e3d3..3dde86699d 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -2140,7 +2140,7 @@ check_backtrace_functions(char **newval, void **extra, GucSource source) ", \n\t"); if (validlen != newvallen) { - GUC_check_errdetail("Invalid character"); + GUC_check_errdetail("Invalid character."); return false; }