|
1 | 1 | /* |
2 | 2 | * conversion functions between pg_wchar and multibyte streams. |
3 | 3 | * Tatsuo Ishii |
4 | | - * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.69 2009/01/29 19:23:42 tgl Exp $ |
| 4 | + * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.70 2009/02/10 16:44:44 petere Exp $ |
5 | 5 | * |
6 | 6 | */ |
7 | 7 | /* can be used in either frontend or backend */ |
@@ -1339,47 +1339,47 @@ pg_utf8_islegal(const unsigned char *source, int length) |
1339 | 1339 | *------------------------------------------------------------------- |
1340 | 1340 | */ |
1341 | 1341 | pg_wchar_tblpg_wchar_table[]= { |
1342 | | -{pg_ascii2wchar_with_len,pg_ascii_mblen,pg_ascii_dsplen,pg_ascii_verifier,1},/*0;PG_SQL_ASCII*/ |
1343 | | -{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/*1;PG_EUC_JP */ |
1344 | | -{pg_euccn2wchar_with_len,pg_euccn_mblen,pg_euccn_dsplen,pg_euccn_verifier,2},/*2;PG_EUC_CN */ |
1345 | | -{pg_euckr2wchar_with_len,pg_euckr_mblen,pg_euckr_dsplen,pg_euckr_verifier,3},/*3;PG_EUC_KR */ |
1346 | | -{pg_euctw2wchar_with_len,pg_euctw_mblen,pg_euctw_dsplen,pg_euctw_verifier,4},/*4;PG_EUC_TW */ |
1347 | | -{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/*5;PG_EUC_JIS_2004 */ |
1348 | | -{pg_utf2wchar_with_len,pg_utf_mblen,pg_utf_dsplen,pg_utf8_verifier,4},/*6;PG_UTF8 */ |
1349 | | -{pg_mule2wchar_with_len,pg_mule_mblen,pg_mule_dsplen,pg_mule_verifier,4},/*7;PG_MULE_INTERNAL */ |
1350 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*8;PG_LATIN1 */ |
1351 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*9;PG_LATIN2 */ |
1352 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*10;PG_LATIN3 */ |
1353 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*11;PG_LATIN4 */ |
1354 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*12;PG_LATIN5 */ |
1355 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*13;PG_LATIN6 */ |
1356 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*14;PG_LATIN7 */ |
1357 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*15;PG_LATIN8 */ |
1358 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*16;PG_LATIN9 */ |
1359 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*17;PG_LATIN10 */ |
1360 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*18;PG_WIN1256 */ |
1361 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*19;PG_WIN1258 */ |
1362 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*20;PG_WIN866 */ |
1363 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*21;PG_WIN874 */ |
1364 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*22;PG_KOI8R */ |
1365 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*23;PG_WIN1251 */ |
1366 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*24;PG_WIN1252 */ |
1367 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*25;ISO-8859-5 */ |
1368 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*26;ISO-8859-6 */ |
1369 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*27;ISO-8859-7 */ |
1370 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*28;ISO-8859-8 */ |
1371 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*29;PG_WIN1250 */ |
1372 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*30;PG_WIN1253 */ |
1373 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*31;PG_WIN1254 */ |
1374 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*32;PG_WIN1255 */ |
1375 | | -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*33;PG_WIN1257 */ |
1376 | | -{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2},/*34;PG_SJIS */ |
1377 | | -{0,pg_big5_mblen,pg_big5_dsplen,pg_big5_verifier,2},/*35;PG_BIG5 */ |
1378 | | -{0,pg_gbk_mblen,pg_gbk_dsplen,pg_gbk_verifier,2},/*36;PG_GBK */ |
1379 | | -{0,pg_uhc_mblen,pg_uhc_dsplen,pg_uhc_verifier,2},/*37;PG_UHC */ |
1380 | | -{0,pg_gb18030_mblen,pg_gb18030_dsplen,pg_gb18030_verifier,4},/*38;PG_GB18030 */ |
1381 | | -{0,pg_johab_mblen,pg_johab_dsplen,pg_johab_verifier,3},/*39;PG_JOHAB */ |
1382 | | -{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2}/*40;PG_SHIFT_JIS_2004 */ |
| 1342 | +{pg_ascii2wchar_with_len,pg_ascii_mblen,pg_ascii_dsplen,pg_ascii_verifier,1},/* PG_SQL_ASCII*/ |
| 1343 | +{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/* PG_EUC_JP */ |
| 1344 | +{pg_euccn2wchar_with_len,pg_euccn_mblen,pg_euccn_dsplen,pg_euccn_verifier,2},/* PG_EUC_CN */ |
| 1345 | +{pg_euckr2wchar_with_len,pg_euckr_mblen,pg_euckr_dsplen,pg_euckr_verifier,3},/* PG_EUC_KR */ |
| 1346 | +{pg_euctw2wchar_with_len,pg_euctw_mblen,pg_euctw_dsplen,pg_euctw_verifier,4},/* PG_EUC_TW */ |
| 1347 | +{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/* PG_EUC_JIS_2004 */ |
| 1348 | +{pg_utf2wchar_with_len,pg_utf_mblen,pg_utf_dsplen,pg_utf8_verifier,4},/* PG_UTF8 */ |
| 1349 | +{pg_mule2wchar_with_len,pg_mule_mblen,pg_mule_dsplen,pg_mule_verifier,4},/* PG_MULE_INTERNAL */ |
| 1350 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN1 */ |
| 1351 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN2 */ |
| 1352 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN3 */ |
| 1353 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN4 */ |
| 1354 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN5 */ |
| 1355 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN6 */ |
| 1356 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN7 */ |
| 1357 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN8 */ |
| 1358 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN9 */ |
| 1359 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN10 */ |
| 1360 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1256 */ |
| 1361 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1258 */ |
| 1362 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN866 */ |
| 1363 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN874 */ |
| 1364 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_KOI8R */ |
| 1365 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1251 */ |
| 1366 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1252 */ |
| 1367 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-5 */ |
| 1368 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-6 */ |
| 1369 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-7 */ |
| 1370 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-8 */ |
| 1371 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1250 */ |
| 1372 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1253 */ |
| 1373 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1254 */ |
| 1374 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1255 */ |
| 1375 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1257 */ |
| 1376 | +{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2},/* PG_SJIS */ |
| 1377 | +{0,pg_big5_mblen,pg_big5_dsplen,pg_big5_verifier,2},/* PG_BIG5 */ |
| 1378 | +{0,pg_gbk_mblen,pg_gbk_dsplen,pg_gbk_verifier,2},/* PG_GBK */ |
| 1379 | +{0,pg_uhc_mblen,pg_uhc_dsplen,pg_uhc_verifier,2},/* PG_UHC */ |
| 1380 | +{0,pg_gb18030_mblen,pg_gb18030_dsplen,pg_gb18030_verifier,4},/* PG_GB18030 */ |
| 1381 | +{0,pg_johab_mblen,pg_johab_dsplen,pg_johab_verifier,3},/* PG_JOHAB */ |
| 1382 | +{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2}/* PG_SHIFT_JIS_2004 */ |
1383 | 1383 | }; |
1384 | 1384 |
|
1385 | 1385 | /* returns the byte length of a word for mule internal code */ |
|