mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Rationalize code placement between wchar.c, encnames.c, and mbutils.c.
Move all the backend-only code that'd crept into wchar.c and encnames.c into mbutils.c. To remove the last few #ifdef dependencies from wchar.c and encnames.c, also make the following changes: * Adjust get_encoding_name_for_icu to return NULL, not throw an error, for unsupported encodings. Its sole caller can perfectly well throw an error instead. (While at it, I also made this function and its sibling is_encoding_supported_by_icu proof against out-of-range encoding IDs.) * Remove the overlength-name error condition from pg_char_to_encoding. It's completely silly not to treat that just like any other the-name-is-not-in-the-table case. Also, get rid of pg_mic_mblen --- there's no obvious reason why conv.c shouldn't call pg_mule_mblen instead. Other than that, this is just code movement and comment-polishing with no functional changes. Notably, I reordered declarations in pg_wchar.h to show which functions are frontend-accessible and which are not. Discussion: https://postgr.es/m/CA+TgmoYO8oq-iy8E02rD8eX25T-9SmyxKWqqks5OMHxKvGXpXQ@mail.gmail.com
This commit is contained in:
@ -1555,9 +1555,14 @@ init_icu_converter(void)
|
||||
UConverter *conv;
|
||||
|
||||
if (icu_converter)
|
||||
return;
|
||||
return; /* already done */
|
||||
|
||||
icu_encoding_name = get_encoding_name_for_icu(GetDatabaseEncoding());
|
||||
if (!icu_encoding_name)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("encoding \"%s\" not supported by ICU",
|
||||
pg_encoding_to_char(GetDatabaseEncoding()))));
|
||||
|
||||
status = U_ZERO_ERROR;
|
||||
conv = ucnv_open(icu_encoding_name, &status);
|
||||
|
Reference in New Issue
Block a user