1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-21 12:05:57 +03:00

Use C99-designated initializer syntax for arrays related to encodings

This updates the following lookup arrays to use C99-designated
initializer syntax, indexed based on the enum pg_enc:
pg_enc2icu_tbl[]
pg_enc2name_tbl[]
pg_wchar_table[]

This is more readable, and removes problems with ordering mistakes as
this removes dependencies between the arrays and their lookup index in
the enum pg_enc.  So, adding new encodings becomes easier, even if this
does not happen often.

Author: Jelte Fennema-Nio
Reviewed-by: Jian He, Japin Li
Discussion: https://postgr.es/m/CAGECzQT3caUbcCcszNewCCmMbCuyP7XNAm60J3ybd6PN5kH2Dw@mail.gmail.com
This commit is contained in:
Michael Paquier 2024-02-29 09:54:25 +09:00
parent e8aecc5c2c
commit ada87a4d95
3 changed files with 122 additions and 126 deletions

View File

@ -297,7 +297,6 @@ static const pg_encname pg_encname_tbl[] =
/* ---------- /* ----------
* These are "official" encoding names. * These are "official" encoding names.
* XXX must be sorted by the same order as enum pg_enc (in mb/pg_wchar.h)
* ---------- * ----------
*/ */
#ifndef WIN32 #ifndef WIN32
@ -308,48 +307,48 @@ static const pg_encname pg_encname_tbl[] =
const pg_enc2name pg_enc2name_tbl[] = const pg_enc2name pg_enc2name_tbl[] =
{ {
DEF_ENC2NAME(SQL_ASCII, 0), [PG_SQL_ASCII] = DEF_ENC2NAME(SQL_ASCII, 0),
DEF_ENC2NAME(EUC_JP, 20932), [PG_EUC_JP] = DEF_ENC2NAME(EUC_JP, 20932),
DEF_ENC2NAME(EUC_CN, 20936), [PG_EUC_CN] = DEF_ENC2NAME(EUC_CN, 20936),
DEF_ENC2NAME(EUC_KR, 51949), [PG_EUC_KR] = DEF_ENC2NAME(EUC_KR, 51949),
DEF_ENC2NAME(EUC_TW, 0), [PG_EUC_TW] = DEF_ENC2NAME(EUC_TW, 0),
DEF_ENC2NAME(EUC_JIS_2004, 20932), [PG_EUC_JIS_2004] = DEF_ENC2NAME(EUC_JIS_2004, 20932),
DEF_ENC2NAME(UTF8, 65001), [PG_UTF8] = DEF_ENC2NAME(UTF8, 65001),
DEF_ENC2NAME(MULE_INTERNAL, 0), [PG_MULE_INTERNAL] = DEF_ENC2NAME(MULE_INTERNAL, 0),
DEF_ENC2NAME(LATIN1, 28591), [PG_LATIN1] = DEF_ENC2NAME(LATIN1, 28591),
DEF_ENC2NAME(LATIN2, 28592), [PG_LATIN2] = DEF_ENC2NAME(LATIN2, 28592),
DEF_ENC2NAME(LATIN3, 28593), [PG_LATIN3] = DEF_ENC2NAME(LATIN3, 28593),
DEF_ENC2NAME(LATIN4, 28594), [PG_LATIN4] = DEF_ENC2NAME(LATIN4, 28594),
DEF_ENC2NAME(LATIN5, 28599), [PG_LATIN5] = DEF_ENC2NAME(LATIN5, 28599),
DEF_ENC2NAME(LATIN6, 0), [PG_LATIN6] = DEF_ENC2NAME(LATIN6, 0),
DEF_ENC2NAME(LATIN7, 0), [PG_LATIN7] = DEF_ENC2NAME(LATIN7, 0),
DEF_ENC2NAME(LATIN8, 0), [PG_LATIN8] = DEF_ENC2NAME(LATIN8, 0),
DEF_ENC2NAME(LATIN9, 28605), [PG_LATIN9] = DEF_ENC2NAME(LATIN9, 28605),
DEF_ENC2NAME(LATIN10, 0), [PG_LATIN10] = DEF_ENC2NAME(LATIN10, 0),
DEF_ENC2NAME(WIN1256, 1256), [PG_WIN1256] = DEF_ENC2NAME(WIN1256, 1256),
DEF_ENC2NAME(WIN1258, 1258), [PG_WIN1258] = DEF_ENC2NAME(WIN1258, 1258),
DEF_ENC2NAME(WIN866, 866), [PG_WIN866] = DEF_ENC2NAME(WIN866, 866),
DEF_ENC2NAME(WIN874, 874), [PG_WIN874] = DEF_ENC2NAME(WIN874, 874),
DEF_ENC2NAME(KOI8R, 20866), [PG_KOI8R] = DEF_ENC2NAME(KOI8R, 20866),
DEF_ENC2NAME(WIN1251, 1251), [PG_WIN1251] = DEF_ENC2NAME(WIN1251, 1251),
DEF_ENC2NAME(WIN1252, 1252), [PG_WIN1252] = DEF_ENC2NAME(WIN1252, 1252),
DEF_ENC2NAME(ISO_8859_5, 28595), [PG_ISO_8859_5] = DEF_ENC2NAME(ISO_8859_5, 28595),
DEF_ENC2NAME(ISO_8859_6, 28596), [PG_ISO_8859_6] = DEF_ENC2NAME(ISO_8859_6, 28596),
DEF_ENC2NAME(ISO_8859_7, 28597), [PG_ISO_8859_7] = DEF_ENC2NAME(ISO_8859_7, 28597),
DEF_ENC2NAME(ISO_8859_8, 28598), [PG_ISO_8859_8] = DEF_ENC2NAME(ISO_8859_8, 28598),
DEF_ENC2NAME(WIN1250, 1250), [PG_WIN1250] = DEF_ENC2NAME(WIN1250, 1250),
DEF_ENC2NAME(WIN1253, 1253), [PG_WIN1253] = DEF_ENC2NAME(WIN1253, 1253),
DEF_ENC2NAME(WIN1254, 1254), [PG_WIN1254] = DEF_ENC2NAME(WIN1254, 1254),
DEF_ENC2NAME(WIN1255, 1255), [PG_WIN1255] = DEF_ENC2NAME(WIN1255, 1255),
DEF_ENC2NAME(WIN1257, 1257), [PG_WIN1257] = DEF_ENC2NAME(WIN1257, 1257),
DEF_ENC2NAME(KOI8U, 21866), [PG_KOI8U] = DEF_ENC2NAME(KOI8U, 21866),
DEF_ENC2NAME(SJIS, 932), [PG_SJIS] = DEF_ENC2NAME(SJIS, 932),
DEF_ENC2NAME(BIG5, 950), [PG_BIG5] = DEF_ENC2NAME(BIG5, 950),
DEF_ENC2NAME(GBK, 936), [PG_GBK] = DEF_ENC2NAME(GBK, 936),
DEF_ENC2NAME(UHC, 949), [PG_UHC] = DEF_ENC2NAME(UHC, 949),
DEF_ENC2NAME(GB18030, 54936), [PG_GB18030] = DEF_ENC2NAME(GB18030, 54936),
DEF_ENC2NAME(JOHAB, 0), [PG_JOHAB] = DEF_ENC2NAME(JOHAB, 0),
DEF_ENC2NAME(SHIFT_JIS_2004, 932) [PG_SHIFT_JIS_2004] = DEF_ENC2NAME(SHIFT_JIS_2004, 932),
}; };
/* ---------- /* ----------
@ -414,41 +413,41 @@ const pg_enc2gettext pg_enc2gettext_tbl[] =
*/ */
static const char *const pg_enc2icu_tbl[] = static const char *const pg_enc2icu_tbl[] =
{ {
NULL, /* PG_SQL_ASCII */ [PG_SQL_ASCII] = NULL,
"EUC-JP", /* PG_EUC_JP */ [PG_EUC_JP] = "EUC-JP",
"EUC-CN", /* PG_EUC_CN */ [PG_EUC_CN] = "EUC-CN",
"EUC-KR", /* PG_EUC_KR */ [PG_EUC_KR] = "EUC-KR",
"EUC-TW", /* PG_EUC_TW */ [PG_EUC_TW] = "EUC-TW",
NULL, /* PG_EUC_JIS_2004 */ [PG_EUC_JIS_2004] = NULL,
"UTF-8", /* PG_UTF8 */ [PG_UTF8] = "UTF-8",
NULL, /* PG_MULE_INTERNAL */ [PG_MULE_INTERNAL] = NULL,
"ISO-8859-1", /* PG_LATIN1 */ [PG_LATIN1] = "ISO-8859-1",
"ISO-8859-2", /* PG_LATIN2 */ [PG_LATIN2] = "ISO-8859-2",
"ISO-8859-3", /* PG_LATIN3 */ [PG_LATIN3] = "ISO-8859-3",
"ISO-8859-4", /* PG_LATIN4 */ [PG_LATIN4] = "ISO-8859-4",
"ISO-8859-9", /* PG_LATIN5 */ [PG_LATIN5] = "ISO-8859-9",
"ISO-8859-10", /* PG_LATIN6 */ [PG_LATIN6] = "ISO-8859-10",
"ISO-8859-13", /* PG_LATIN7 */ [PG_LATIN7] = "ISO-8859-13",
"ISO-8859-14", /* PG_LATIN8 */ [PG_LATIN8] = "ISO-8859-14",
"ISO-8859-15", /* PG_LATIN9 */ [PG_LATIN9] = "ISO-8859-15",
NULL, /* PG_LATIN10 */ [PG_LATIN10] = NULL,
"CP1256", /* PG_WIN1256 */ [PG_WIN1256] = "CP1256",
"CP1258", /* PG_WIN1258 */ [PG_WIN1258] = "CP1258",
"CP866", /* PG_WIN866 */ [PG_WIN866] = "CP866",
NULL, /* PG_WIN874 */ [PG_WIN874] = NULL,
"KOI8-R", /* PG_KOI8R */ [PG_KOI8R] = "KOI8-R",
"CP1251", /* PG_WIN1251 */ [PG_WIN1251] = "CP1251",
"CP1252", /* PG_WIN1252 */ [PG_WIN1252] = "CP1252",
"ISO-8859-5", /* PG_ISO_8859_5 */ [PG_ISO_8859_5] = "ISO-8859-5",
"ISO-8859-6", /* PG_ISO_8859_6 */ [PG_ISO_8859_6] = "ISO-8859-6",
"ISO-8859-7", /* PG_ISO_8859_7 */ [PG_ISO_8859_7] = "ISO-8859-7",
"ISO-8859-8", /* PG_ISO_8859_8 */ [PG_ISO_8859_8] = "ISO-8859-8",
"CP1250", /* PG_WIN1250 */ [PG_WIN1250] = "CP1250",
"CP1253", /* PG_WIN1253 */ [PG_WIN1253] = "CP1253",
"CP1254", /* PG_WIN1254 */ [PG_WIN1254] = "CP1254",
"CP1255", /* PG_WIN1255 */ [PG_WIN1255] = "CP1255",
"CP1257", /* PG_WIN1257 */ [PG_WIN1257] = "CP1257",
"KOI8-U", /* PG_KOI8U */ [PG_KOI8U] = "KOI8-U",
}; };
StaticAssertDecl(lengthof(pg_enc2icu_tbl) == PG_ENCODING_BE_LAST + 1, StaticAssertDecl(lengthof(pg_enc2icu_tbl) == PG_ENCODING_BE_LAST + 1,

View File

@ -2071,52 +2071,51 @@ pg_utf8_islegal(const unsigned char *source, int length)
/* /*
*------------------------------------------------------------------- *-------------------------------------------------------------------
* encoding info table * encoding info table
* XXX must be sorted by the same order as enum pg_enc (in mb/pg_wchar.h)
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
const pg_wchar_tbl pg_wchar_table[] = { const pg_wchar_tbl pg_wchar_table[] = {
{pg_ascii2wchar_with_len, pg_wchar2single_with_len, pg_ascii_mblen, pg_ascii_dsplen, pg_ascii_verifychar, pg_ascii_verifystr, 1}, /* PG_SQL_ASCII */ [PG_SQL_ASCII] = {pg_ascii2wchar_with_len, pg_wchar2single_with_len, pg_ascii_mblen, pg_ascii_dsplen, pg_ascii_verifychar, pg_ascii_verifystr, 1},
{pg_eucjp2wchar_with_len, pg_wchar2euc_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifychar, pg_eucjp_verifystr, 3}, /* PG_EUC_JP */ [PG_EUC_JP] = {pg_eucjp2wchar_with_len, pg_wchar2euc_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifychar, pg_eucjp_verifystr, 3},
{pg_euccn2wchar_with_len, pg_wchar2euc_with_len, pg_euccn_mblen, pg_euccn_dsplen, pg_euccn_verifychar, pg_euccn_verifystr, 2}, /* PG_EUC_CN */ [PG_EUC_CN] = {pg_euccn2wchar_with_len, pg_wchar2euc_with_len, pg_euccn_mblen, pg_euccn_dsplen, pg_euccn_verifychar, pg_euccn_verifystr, 2},
{pg_euckr2wchar_with_len, pg_wchar2euc_with_len, pg_euckr_mblen, pg_euckr_dsplen, pg_euckr_verifychar, pg_euckr_verifystr, 3}, /* PG_EUC_KR */ [PG_EUC_KR] = {pg_euckr2wchar_with_len, pg_wchar2euc_with_len, pg_euckr_mblen, pg_euckr_dsplen, pg_euckr_verifychar, pg_euckr_verifystr, 3},
{pg_euctw2wchar_with_len, pg_wchar2euc_with_len, pg_euctw_mblen, pg_euctw_dsplen, pg_euctw_verifychar, pg_euctw_verifystr, 4}, /* PG_EUC_TW */ [PG_EUC_TW] = {pg_euctw2wchar_with_len, pg_wchar2euc_with_len, pg_euctw_mblen, pg_euctw_dsplen, pg_euctw_verifychar, pg_euctw_verifystr, 4},
{pg_eucjp2wchar_with_len, pg_wchar2euc_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifychar, pg_eucjp_verifystr, 3}, /* PG_EUC_JIS_2004 */ [PG_EUC_JIS_2004] = {pg_eucjp2wchar_with_len, pg_wchar2euc_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifychar, pg_eucjp_verifystr, 3},
{pg_utf2wchar_with_len, pg_wchar2utf_with_len, pg_utf_mblen, pg_utf_dsplen, pg_utf8_verifychar, pg_utf8_verifystr, 4}, /* PG_UTF8 */ [PG_UTF8] = {pg_utf2wchar_with_len, pg_wchar2utf_with_len, pg_utf_mblen, pg_utf_dsplen, pg_utf8_verifychar, pg_utf8_verifystr, 4},
{pg_mule2wchar_with_len, pg_wchar2mule_with_len, pg_mule_mblen, pg_mule_dsplen, pg_mule_verifychar, pg_mule_verifystr, 4}, /* PG_MULE_INTERNAL */ [PG_MULE_INTERNAL] = {pg_mule2wchar_with_len, pg_wchar2mule_with_len, pg_mule_mblen, pg_mule_dsplen, pg_mule_verifychar, pg_mule_verifystr, 4},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN1 */ [PG_LATIN1] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN2 */ [PG_LATIN2] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN3 */ [PG_LATIN3] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN4 */ [PG_LATIN4] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN5 */ [PG_LATIN5] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN6 */ [PG_LATIN6] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN7 */ [PG_LATIN7] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN8 */ [PG_LATIN8] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN9 */ [PG_LATIN9] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_LATIN10 */ [PG_LATIN10] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1256 */ [PG_WIN1256] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1258 */ [PG_WIN1258] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN866 */ [PG_WIN866] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN874 */ [PG_WIN874] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_KOI8R */ [PG_KOI8R] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1251 */ [PG_WIN1251] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1252 */ [PG_WIN1252] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* ISO-8859-5 */ [PG_ISO_8859_5] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* ISO-8859-6 */ [PG_ISO_8859_6] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* ISO-8859-7 */ [PG_ISO_8859_7] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* ISO-8859-8 */ [PG_ISO_8859_8] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1250 */ [PG_WIN1250] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1253 */ [PG_WIN1253] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1254 */ [PG_WIN1254] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1255 */ [PG_WIN1255] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_WIN1257 */ [PG_WIN1257] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1}, /* PG_KOI8U */ [PG_KOI8U] = {pg_latin12wchar_with_len, pg_wchar2single_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifychar, pg_latin1_verifystr, 1},
{0, 0, pg_sjis_mblen, pg_sjis_dsplen, pg_sjis_verifychar, pg_sjis_verifystr, 2}, /* PG_SJIS */ [PG_SJIS] = {0, 0, pg_sjis_mblen, pg_sjis_dsplen, pg_sjis_verifychar, pg_sjis_verifystr, 2},
{0, 0, pg_big5_mblen, pg_big5_dsplen, pg_big5_verifychar, pg_big5_verifystr, 2}, /* PG_BIG5 */ [PG_BIG5] = {0, 0, pg_big5_mblen, pg_big5_dsplen, pg_big5_verifychar, pg_big5_verifystr, 2},
{0, 0, pg_gbk_mblen, pg_gbk_dsplen, pg_gbk_verifychar, pg_gbk_verifystr, 2}, /* PG_GBK */ [PG_GBK] = {0, 0, pg_gbk_mblen, pg_gbk_dsplen, pg_gbk_verifychar, pg_gbk_verifystr, 2},
{0, 0, pg_uhc_mblen, pg_uhc_dsplen, pg_uhc_verifychar, pg_uhc_verifystr, 2}, /* PG_UHC */ [PG_UHC] = {0, 0, pg_uhc_mblen, pg_uhc_dsplen, pg_uhc_verifychar, pg_uhc_verifystr, 2},
{0, 0, pg_gb18030_mblen, pg_gb18030_dsplen, pg_gb18030_verifychar, pg_gb18030_verifystr, 4}, /* PG_GB18030 */ [PG_GB18030] = {0, 0, pg_gb18030_mblen, pg_gb18030_dsplen, pg_gb18030_verifychar, pg_gb18030_verifystr, 4},
{0, 0, pg_johab_mblen, pg_johab_dsplen, pg_johab_verifychar, pg_johab_verifystr, 3}, /* PG_JOHAB */ [PG_JOHAB] = {0, 0, pg_johab_mblen, pg_johab_dsplen, pg_johab_verifychar, pg_johab_verifystr, 3},
{0, 0, pg_sjis_mblen, pg_sjis_dsplen, pg_sjis_verifychar, pg_sjis_verifystr, 2} /* PG_SHIFT_JIS_2004 */ [PG_SHIFT_JIS_2004] = {0, 0, pg_sjis_mblen, pg_sjis_dsplen, pg_sjis_verifychar, pg_sjis_verifystr, 2},
}; };
/* /*

View File

@ -224,11 +224,9 @@ typedef unsigned int pg_wchar;
/* /*
* PostgreSQL encoding identifiers * PostgreSQL encoding identifiers
* *
* WARNING: the order of this enum must be same as order of entries * WARNING: If you add some encoding don't forget to update
* in the pg_enc2name_tbl[] array (in src/common/encnames.c), and * the pg_enc2name_tbl[] array (in src/common/encnames.c) and
* in the pg_wchar_table[] array (in src/common/wchar.c)! * the pg_wchar_table[] array (in src/common/wchar.c) and to check
*
* If you add some encoding don't forget to check
* PG_ENCODING_BE_LAST macro. * PG_ENCODING_BE_LAST macro.
* *
* PG_SQL_ASCII is default encoding and must be = 0. * PG_SQL_ASCII is default encoding and must be = 0.