Skip to content

Commit 69e31d0

Browse files
committed
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
1 parent 2e4eae8 commit 69e31d0

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/backend/commands/collationcmds.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
576576

577577
if (len == 0 || localebuf[len - 1] != '\n')
578578
{
579-
elog(DEBUG1, "locale name too long, skipped: \"%s\"", localebuf);
579+
elog(DEBUG1, "skipping locale with too-long name: \"%s\"", localebuf);
580580
continue;
581581
}
582582
localebuf[len - 1] = '\0';
@@ -590,18 +590,22 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
590590
*/
591591
if (!pg_is_ascii(localebuf))
592592
{
593-
elog(DEBUG1, "locale name has non-ASCII characters, skipped: \"%s\"", localebuf);
593+
elog(DEBUG1, "skipping locale with non-ASCII name: \"%s\"", localebuf);
594594
continue;
595595
}
596596

597597
enc = pg_get_encoding_from_locale(localebuf, false);
598598
if (enc < 0)
599599
{
600-
/* error message printed by pg_get_encoding_from_locale() */
600+
elog(DEBUG1, "skipping locale with unrecognized encoding: \"%s\"",
601+
localebuf);
601602
continue;
602603
}
603604
if (!PG_VALID_BE_ENCODING(enc))
604-
continue; /* ignore locales for client-only encodings */
605+
{
606+
elog(DEBUG1, "skipping locale with client-only encoding: \"%s\"", localebuf);
607+
continue;
608+
}
605609
if (enc == PG_SQL_ASCII)
606610
continue; /* C/POSIX are already in the catalog */
607611

0 commit comments

Comments
 (0)