From: Tom Lane Date: Tue, 14 Sep 2021 22:55:15 +0000 (-0400) Subject: Improve log messages from pg_import_system_collations(). X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=69e31d05b0a33f55aa5d9540917540f5fccb93a7;p=users%2Frhaas%2Fpostgres.git Improve log messages from pg_import_system_collations(). pg_import_system_collations() was a bit inconsistent about how it reported locales (names output by "locale -a") that it didn't make pg_collation entries for. IMV we should print some suitable message for every locale that we reject, except when it matches a pre-existing pg_collation entry. (This is all at DEBUG1 log level, though, so as not to create noise during initdb.) Add messages for the two cases that were previously not logged, namely unrecognized encoding and client-only encoding. Re-word the existing messages to have a consistent style. Anton Voloshin and Tom Lane Discussion: https://postgr.es/m/429d64ee-188d-3ce1-106a-53a8b45c4fce@postgrespro.ru --- diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c index 4075f991a0..53fc579f37 100644 --- a/src/backend/commands/collationcmds.c +++ b/src/backend/commands/collationcmds.c @@ -576,7 +576,7 @@ pg_import_system_collations(PG_FUNCTION_ARGS) if (len == 0 || localebuf[len - 1] != '\n') { - elog(DEBUG1, "locale name too long, skipped: \"%s\"", localebuf); + elog(DEBUG1, "skipping locale with too-long name: \"%s\"", localebuf); continue; } localebuf[len - 1] = '\0'; @@ -590,18 +590,22 @@ pg_import_system_collations(PG_FUNCTION_ARGS) */ if (!pg_is_ascii(localebuf)) { - elog(DEBUG1, "locale name has non-ASCII characters, skipped: \"%s\"", localebuf); + elog(DEBUG1, "skipping locale with non-ASCII name: \"%s\"", localebuf); continue; } enc = pg_get_encoding_from_locale(localebuf, false); if (enc < 0) { - /* error message printed by pg_get_encoding_from_locale() */ + elog(DEBUG1, "skipping locale with unrecognized encoding: \"%s\"", + localebuf); continue; } if (!PG_VALID_BE_ENCODING(enc)) - continue; /* ignore locales for client-only encodings */ + { + elog(DEBUG1, "skipping locale with client-only encoding: \"%s\"", localebuf); + continue; + } if (enc == PG_SQL_ASCII) continue; /* C/POSIX are already in the catalog */