diff --git a/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c b/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c index 7bddc9ee60308cc50a0825129bd814701a148e83..afd09e0171dd35de16d7a6643885feeb779336c1 100644 --- a/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c +++ b/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c,v 1.15 2009/01/01 17:23:51 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c,v 1.16 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -41,9 +41,7 @@ ascii_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_SQL_ASCII); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_SQL_ASCII, PG_MULE_INTERNAL); pg_ascii2mic(src, dest, len); @@ -57,9 +55,7 @@ mic_to_ascii(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_SQL_ASCII); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_SQL_ASCII); pg_mic2ascii(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c b/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c index 551921daa4deaa52c8674d3850419b6869ec2ac8..dd2804d5ddcb636cd315d1b5b71489dd926b019c 100644 --- a/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c +++ b/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c,v 1.18 2009/01/01 17:23:51 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c,v 1.19 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -88,9 +88,7 @@ koi8r_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_KOI8R); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_KOI8R, PG_MULE_INTERNAL); koi8r2mic(src, dest, len); @@ -104,9 +102,7 @@ mic_to_koi8r(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_KOI8R); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_KOI8R); mic2koi8r(src, dest, len); @@ -120,9 +116,7 @@ iso_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_ISO_8859_5); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_ISO_8859_5, PG_MULE_INTERNAL); iso2mic(src, dest, len); @@ -136,9 +130,7 @@ mic_to_iso(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_ISO_8859_5); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_ISO_8859_5); mic2iso(src, dest, len); @@ -152,9 +144,7 @@ win1251_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_WIN1251); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN1251, PG_MULE_INTERNAL); win12512mic(src, dest, len); @@ -168,9 +158,7 @@ mic_to_win1251(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_WIN1251); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_WIN1251); mic2win1251(src, dest, len); @@ -184,9 +172,7 @@ win866_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_WIN866); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN866, PG_MULE_INTERNAL); win8662mic(src, dest, len); @@ -200,9 +186,7 @@ mic_to_win866(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_WIN866); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_WIN866); mic2win866(src, dest, len); @@ -217,9 +201,7 @@ koi8r_to_win1251(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_KOI8R); - Assert(PG_GETARG_INT32(1) == PG_WIN1251); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_KOI8R, PG_WIN1251); buf = palloc(len * ENCODING_GROWTH_RATE); koi8r2mic(src, buf, len); @@ -237,9 +219,7 @@ win1251_to_koi8r(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_WIN1251); - Assert(PG_GETARG_INT32(1) == PG_KOI8R); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN1251, PG_KOI8R); buf = palloc(len * ENCODING_GROWTH_RATE); win12512mic(src, buf, len); @@ -257,9 +237,7 @@ koi8r_to_win866(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_KOI8R); - Assert(PG_GETARG_INT32(1) == PG_WIN866); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_KOI8R, PG_WIN866); buf = palloc(len * ENCODING_GROWTH_RATE); koi8r2mic(src, buf, len); @@ -277,9 +255,7 @@ win866_to_koi8r(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_WIN866); - Assert(PG_GETARG_INT32(1) == PG_KOI8R); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN866, PG_KOI8R); buf = palloc(len * ENCODING_GROWTH_RATE); win8662mic(src, buf, len); @@ -297,9 +273,7 @@ win866_to_win1251(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_WIN866); - Assert(PG_GETARG_INT32(1) == PG_WIN1251); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN866, PG_WIN1251); /* * Note: There are a few characters like the "Numero" sign that exist in @@ -323,9 +297,7 @@ win1251_to_win866(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_WIN1251); - Assert(PG_GETARG_INT32(1) == PG_WIN866); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN1251, PG_WIN866); /* Use mic/KOI8R as intermediary, see comment in win866_to_win1251() */ buf = palloc(len * ENCODING_GROWTH_RATE); @@ -344,9 +316,7 @@ iso_to_koi8r(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_ISO_8859_5); - Assert(PG_GETARG_INT32(1) == PG_KOI8R); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_ISO_8859_5, PG_KOI8R); buf = palloc(len * ENCODING_GROWTH_RATE); iso2mic(src, buf, len); @@ -364,9 +334,7 @@ koi8r_to_iso(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_KOI8R); - Assert(PG_GETARG_INT32(1) == PG_ISO_8859_5); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_KOI8R, PG_ISO_8859_5); buf = palloc(len * ENCODING_GROWTH_RATE); koi8r2mic(src, buf, len); @@ -384,9 +352,7 @@ iso_to_win1251(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_ISO_8859_5); - Assert(PG_GETARG_INT32(1) == PG_WIN1251); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_ISO_8859_5, PG_WIN1251); /* Use mic/KOI8R as intermediary, see comment in win866_to_win1251() */ buf = palloc(len * ENCODING_GROWTH_RATE); @@ -405,9 +371,7 @@ win1251_to_iso(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_WIN1251); - Assert(PG_GETARG_INT32(1) == PG_ISO_8859_5); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN1251, PG_ISO_8859_5); /* Use mic/KOI8R as intermediary, see comment in win866_to_win1251() */ buf = palloc(len * ENCODING_GROWTH_RATE); @@ -426,9 +390,7 @@ iso_to_win866(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_ISO_8859_5); - Assert(PG_GETARG_INT32(1) == PG_WIN866); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_ISO_8859_5, PG_WIN866); /* Use mic/KOI8R as intermediary, see comment in win866_to_win1251() */ buf = palloc(len * ENCODING_GROWTH_RATE); @@ -447,9 +409,7 @@ win866_to_iso(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_WIN866); - Assert(PG_GETARG_INT32(1) == PG_ISO_8859_5); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN866, PG_ISO_8859_5); /* Use mic/KOI8R as intermediary, see comment in win866_to_win1251() */ buf = palloc(len * ENCODING_GROWTH_RATE); diff --git a/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c b/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c index 5921e8ab25633e22e7de2bf370bcc3e109eeeb4a..c9dd40407e2f79cdeb21335511532644bde1a231 100644 --- a/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c +++ b/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c,v 1.18 2009/01/01 17:23:51 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c,v 1.19 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -44,9 +44,7 @@ euc_cn_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_CN); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_CN, PG_MULE_INTERNAL); euc_cn2mic(src, dest, len); @@ -60,9 +58,7 @@ mic_to_euc_cn(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_EUC_CN); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_EUC_CN); mic2euc_cn(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c b/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c index ba10a56cdb85bd9a08fc58bc2b29deca7453850f..e65d755368fc81388af7fd1ac5dd72bd4e435feb 100644 --- a/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c +++ b/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c @@ -5,7 +5,7 @@ * Copyright (c) 2007-2009, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c,v 1.5 2009/01/01 17:23:51 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c,v 1.6 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -43,9 +43,7 @@ euc_jis_2004_to_shift_jis_2004(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_JIS_2004); - Assert(PG_GETARG_INT32(1) == PG_SHIFT_JIS_2004); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_JIS_2004, PG_SHIFT_JIS_2004); euc_jis_20042shift_jis_2004(src, dest, len); @@ -59,9 +57,7 @@ shift_jis_2004_to_euc_jis_2004(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_SHIFT_JIS_2004); - Assert(PG_GETARG_INT32(1) == PG_EUC_JIS_2004); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_SHIFT_JIS_2004, PG_EUC_JIS_2004); shift_jis_20042euc_jis_2004(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c b/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c index 985d00b0d0c5b0c46253abd696f0eea3d3956d37..4ad71328ff6aee6f3a56a526192aae042ccad902 100644 --- a/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c +++ b/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c,v 1.20 2009/01/01 17:23:51 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c,v 1.21 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -70,9 +70,7 @@ euc_jp_to_sjis(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_JP); - Assert(PG_GETARG_INT32(1) == PG_SJIS); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_JP, PG_SJIS); euc_jp2sjis(src, dest, len); @@ -86,9 +84,7 @@ sjis_to_euc_jp(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_SJIS); - Assert(PG_GETARG_INT32(1) == PG_EUC_JP); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_SJIS, PG_EUC_JP); sjis2euc_jp(src, dest, len); @@ -102,9 +98,7 @@ euc_jp_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_JP); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_JP, PG_MULE_INTERNAL); euc_jp2mic(src, dest, len); @@ -118,9 +112,7 @@ mic_to_euc_jp(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_EUC_JP); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_EUC_JP); mic2euc_jp(src, dest, len); @@ -134,9 +126,7 @@ sjis_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_SJIS); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_SJIS, PG_MULE_INTERNAL); sjis2mic(src, dest, len); @@ -150,9 +140,7 @@ mic_to_sjis(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_SJIS); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_SJIS); mic2sjis(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c b/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c index 1d14ef6b316a647c4f76f28cfa122b5b70f47c26..878ab9d603a946b5c3c91faeb5402835e29d2933 100644 --- a/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c +++ b/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c,v 1.18 2009/01/01 17:23:51 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c,v 1.19 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -44,9 +44,7 @@ euc_kr_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_KR); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_KR, PG_MULE_INTERNAL); euc_kr2mic(src, dest, len); @@ -60,9 +58,7 @@ mic_to_euc_kr(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_EUC_KR); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_EUC_KR); mic2euc_kr(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c index 3bc6e1d6df82c05e2cef898af1ea1e24deba9c94..474432571c135700791c74fe49b3acea4ccd2544 100644 --- a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c +++ b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c,v 1.19 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c,v 1.20 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -57,9 +57,7 @@ euc_tw_to_big5(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_EUC_TW); - Assert(PG_GETARG_INT32(1) == PG_BIG5); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_TW, PG_BIG5); buf = palloc(len * ENCODING_GROWTH_RATE); euc_tw2mic(src, buf, len); @@ -77,9 +75,7 @@ big5_to_euc_tw(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_BIG5); - Assert(PG_GETARG_INT32(1) == PG_EUC_TW); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_BIG5, PG_EUC_TW); buf = palloc(len * ENCODING_GROWTH_RATE); big52mic(src, buf, len); @@ -96,9 +92,7 @@ euc_tw_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_TW); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_TW, PG_MULE_INTERNAL); euc_tw2mic(src, dest, len); @@ -112,9 +106,7 @@ mic_to_euc_tw(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_EUC_TW); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_EUC_TW); mic2euc_tw(src, dest, len); @@ -128,9 +120,7 @@ big5_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_BIG5); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_BIG5, PG_MULE_INTERNAL); big52mic(src, dest, len); @@ -144,9 +134,7 @@ mic_to_big5(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_BIG5); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_BIG5); mic2big5(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c b/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c index e30fe23c0bf435c5eed4c80921141ab0b2bd9f43..0d7d8a9375a23f72f5bf0fbf6e598aa147cb058e 100644 --- a/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c +++ b/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c,v 1.16 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c,v 1.17 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -56,9 +56,7 @@ latin2_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_LATIN2); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_LATIN2, PG_MULE_INTERNAL); latin22mic(src, dest, len); @@ -72,9 +70,7 @@ mic_to_latin2(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_LATIN2); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_LATIN2); mic2latin2(src, dest, len); @@ -88,9 +84,7 @@ win1250_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_WIN1250); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN1250, PG_MULE_INTERNAL); win12502mic(src, dest, len); @@ -104,9 +98,7 @@ mic_to_win1250(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_WIN1250); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_WIN1250); mic2win1250(src, dest, len); @@ -121,9 +113,7 @@ latin2_to_win1250(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_LATIN2); - Assert(PG_GETARG_INT32(1) == PG_WIN1250); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_LATIN2, PG_WIN1250); buf = palloc(len * ENCODING_GROWTH_RATE); latin22mic(src, buf, len); @@ -141,9 +131,7 @@ win1250_to_latin2(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned char *buf; - Assert(PG_GETARG_INT32(0) == PG_WIN1250); - Assert(PG_GETARG_INT32(1) == PG_LATIN2); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_WIN1250, PG_LATIN2); buf = palloc(len * ENCODING_GROWTH_RATE); win12502mic(src, buf, len); diff --git a/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c b/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c index ccf479ea3d3ef04870ce23ea6a796cd5f37f8f74..251d8b4f2eb9c2580f2a9767b9bc61aacec3445d 100644 --- a/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c +++ b/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c,v 1.16 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c,v 1.17 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -56,9 +56,7 @@ latin1_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_LATIN1); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_LATIN1, PG_MULE_INTERNAL); latin12mic(src, dest, len); @@ -72,9 +70,7 @@ mic_to_latin1(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_LATIN1); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_LATIN1); mic2latin1(src, dest, len); @@ -88,9 +84,7 @@ latin3_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_LATIN3); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_LATIN3, PG_MULE_INTERNAL); latin32mic(src, dest, len); @@ -104,9 +98,7 @@ mic_to_latin3(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_LATIN3); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_LATIN3); mic2latin3(src, dest, len); @@ -120,9 +112,7 @@ latin4_to_mic(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_LATIN4); - Assert(PG_GETARG_INT32(1) == PG_MULE_INTERNAL); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_LATIN4, PG_MULE_INTERNAL); latin42mic(src, dest, len); @@ -136,9 +126,7 @@ mic_to_latin4(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_MULE_INTERNAL); - Assert(PG_GETARG_INT32(1) == PG_LATIN4); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_MULE_INTERNAL, PG_LATIN4); mic2latin4(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c b/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c index 643152bfc2e1c61d631234646b28c2d2bd0a7c06..783fa2a3de6d76e86dbaebabd2ae64dd30c3f30c 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c,v 1.17 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c,v 1.18 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -41,9 +41,7 @@ ascii_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_SQL_ASCII); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_SQL_ASCII, PG_UTF8); /* this looks wrong, but basically we're just rejecting high-bit-set */ pg_ascii2mic(src, dest, len); @@ -58,9 +56,7 @@ utf8_to_ascii(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_SQL_ASCII); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_SQL_ASCII); /* this looks wrong, but basically we're just rejecting high-bit-set */ pg_mic2ascii(src, dest, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c b/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c index 6b115da92f6e187d05667abcbb612d65540d7245..5d8b27967a09c3a083bb1a933a2a6fdaf48a0427 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c,v 1.19 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c,v 1.20 2009/01/29 19:23:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ big5_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_BIG5); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_BIG5, PG_UTF8); LocalToUtf(src, dest, LUmapBIG5, NULL, sizeof(LUmapBIG5) / sizeof(pg_local_to_utf), 0, PG_BIG5, len); @@ -59,9 +57,7 @@ utf8_to_big5(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_BIG5); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_BIG5); UtfToLocal(src, dest, ULmapBIG5, NULL, sizeof(ULmapBIG5) / sizeof(pg_utf_to_local), 0, PG_BIG5, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c index f42e8f128f48c638414469e526021ab78dffabeb..0f22256a43f727f4df388301daf3a30eda79b615 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c,v 1.22 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c,v 1.23 2009/01/29 19:23:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -43,9 +43,7 @@ utf8_to_koi8r(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_KOI8R); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_KOI8R); UtfToLocal(src, dest, ULmapKOI8R, NULL, sizeof(ULmapKOI8R) / sizeof(pg_utf_to_local), 0, PG_KOI8R, len); @@ -60,9 +58,7 @@ koi8r_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_KOI8R); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_KOI8R, PG_UTF8); LocalToUtf(src, dest, LUmapKOI8R, NULL, sizeof(LUmapKOI8R) / sizeof(pg_local_to_utf), 0, PG_KOI8R, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c index 8e07d0ed64095e025cee678b7dc3f15f7f3934c1..92f76e3cd99c451d4410169aa68b3d7ab241c451 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c,v 1.20 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c,v 1.21 2009/01/29 19:23:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ euc_cn_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_CN); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_CN, PG_UTF8); LocalToUtf(src, dest, LUmapEUC_CN, NULL, sizeof(LUmapEUC_CN) / sizeof(pg_local_to_utf), 0, PG_EUC_CN, len); @@ -59,9 +57,7 @@ utf8_to_euc_cn(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_EUC_CN); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_CN); UtfToLocal(src, dest, ULmapEUC_CN, NULL, sizeof(ULmapEUC_CN) / sizeof(pg_utf_to_local), 0, PG_EUC_CN, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c index c44b2f3d8bb1db5156db392e5cb38d3857052b3a..efc01536320247722a59a6459f16ca01d975f17d 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c,v 1.4 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c,v 1.5 2009/01/29 19:23:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -44,9 +44,7 @@ euc_jis_2004_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_JIS_2004); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_JIS_2004, PG_UTF8); LocalToUtf(src, dest, LUmapEUC_JIS_2004, LUmapEUC_JIS_2004_combined, sizeof(LUmapEUC_JIS_2004) / sizeof(pg_local_to_utf), @@ -63,9 +61,7 @@ utf8_to_euc_jis_2004(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_EUC_JIS_2004); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_JIS_2004); UtfToLocal(src, dest, ULmapEUC_JIS_2004, ULmapEUC_JIS_2004_combined, sizeof(ULmapEUC_JIS_2004) / sizeof(pg_utf_to_local), diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c index 83abf81b38695c1196e1f25eecbc143641119188..d84a19bc22f47567025bbb086e1fe629fd8a4d1e 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c,v 1.20 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c,v 1.21 2009/01/29 19:23:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ euc_jp_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_JP); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_JP, PG_UTF8); LocalToUtf(src, dest, LUmapEUC_JP, NULL, sizeof(LUmapEUC_JP) / sizeof(pg_local_to_utf), 0, PG_EUC_JP, len); @@ -59,9 +57,7 @@ utf8_to_euc_jp(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_EUC_JP); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_JP); UtfToLocal(src, dest, ULmapEUC_JP, NULL, sizeof(ULmapEUC_JP) / sizeof(pg_utf_to_local), 0, PG_EUC_JP, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c index 9e3f43dd7b3147b647534b8010d06b581fb106e2..cfbc554e4d1f0ba9fa032b9c2f575a2aad8d5e1a 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c,v 1.20 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c,v 1.21 2009/01/29 19:23:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ euc_kr_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_KR); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_KR, PG_UTF8); LocalToUtf(src, dest, LUmapEUC_KR, NULL, sizeof(LUmapEUC_KR) / sizeof(pg_local_to_utf), 0, PG_EUC_KR, len); @@ -59,9 +57,7 @@ utf8_to_euc_kr(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_EUC_KR); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_KR); UtfToLocal(src, dest, ULmapEUC_KR, NULL, sizeof(ULmapEUC_KR) / sizeof(pg_utf_to_local), 0, PG_EUC_KR, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c b/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c index b10b29d17dd0ce36bdcd7f009613fa3888fd47f2..e18c3ff6b177fac0549cb02688ec63e8ffc89a0d 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c,v 1.20 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c,v 1.21 2009/01/29 19:23:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ euc_tw_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_EUC_TW); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_TW, PG_UTF8); LocalToUtf(src, dest, LUmapEUC_TW, NULL, sizeof(LUmapEUC_TW) / sizeof(pg_local_to_utf), 0, PG_EUC_TW, len); @@ -59,9 +57,7 @@ utf8_to_euc_tw(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_EUC_TW); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_TW); UtfToLocal(src, dest, ULmapEUC_TW, NULL, sizeof(ULmapEUC_TW) / sizeof(pg_utf_to_local), 0, PG_EUC_TW, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c index 4be3489b6442bad0052cb389d556c063611051d4..25ecee6b58f2e76755826db3d67e9c64114c70f1 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c,v 1.21 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c,v 1.22 2009/01/29 19:23:40 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ gb18030_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_GB18030); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_GB18030, PG_UTF8); LocalToUtf(src, dest, LUmapGB18030, NULL, sizeof(LUmapGB18030) / sizeof(pg_local_to_utf), 0, PG_GB18030, len); @@ -59,9 +57,7 @@ utf8_to_gb18030(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_GB18030); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_GB18030); UtfToLocal(src, dest, ULmapGB18030, NULL, sizeof(ULmapGB18030) / sizeof(pg_utf_to_local), 0, PG_GB18030, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c b/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c index b6b5a5a826c79e45a55b9cbbb0cd444ec06ea84d..f33a22b4fbeaeee590ad510b36f34e4d304cf671 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c,v 1.18 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c,v 1.19 2009/01/29 19:23:41 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ gbk_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_GBK); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_GBK, PG_UTF8); LocalToUtf(src, dest, LUmapGBK, NULL, sizeof(LUmapGBK) / sizeof(pg_local_to_utf), 0, PG_GBK, len); @@ -59,9 +57,7 @@ utf8_to_gbk(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_GBK); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_GBK); UtfToLocal(src, dest, ULmapGBK, NULL, sizeof(ULmapGBK) / sizeof(pg_utf_to_local), 0, PG_GBK, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c index 8996a8723d5ba0f087bb0237afd92d15cd4e44c7..539a8d2593ae8d57f75dde2007984896e00263b4 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c,v 1.29 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c,v 1.30 2009/01/29 19:23:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -120,8 +120,7 @@ iso8859_to_utf8(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); int i; - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(-1, PG_UTF8); for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++) { @@ -148,8 +147,7 @@ utf8_to_iso8859(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); int i; - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, -1); for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++) { diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c index 649438007628d0e93b6cd77c3012f0e5ef3ce08a..cd34b0f05cf24404206fb14e2dbbd3000b562bef 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c,v 1.21 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c,v 1.22 2009/01/29 19:23:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ iso8859_1_to_utf8(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); unsigned short c; - Assert(PG_GETARG_INT32(0) == PG_LATIN1); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_LATIN1, PG_UTF8); while (len > 0) { @@ -75,9 +73,7 @@ utf8_to_iso8859_1(PG_FUNCTION_ARGS) unsigned short c, c1; - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_LATIN1); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_LATIN1); while (len > 0) { diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c b/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c index 9bed1f75040f040c48ae597e13e23955d432eaed..4df9d64ce226ffc725c4dcb51fd617dba5afa9a1 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c,v 1.20 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c,v 1.21 2009/01/29 19:23:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ johab_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_JOHAB); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_JOHAB, PG_UTF8); LocalToUtf(src, dest, LUmapJOHAB, NULL, sizeof(LUmapJOHAB) / sizeof(pg_local_to_utf), 0, PG_JOHAB, len); @@ -59,9 +57,7 @@ utf8_to_johab(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_JOHAB); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_JOHAB); UtfToLocal(src, dest, ULmapJOHAB, NULL, sizeof(ULmapJOHAB) / sizeof(pg_utf_to_local), 0, PG_JOHAB, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c b/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c index f3d35e70d946d43da93f457ff8fc36799da75370..c006a11e9d13152fb14275d9e6e7609589690ebf 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c,v 1.4 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c,v 1.5 2009/01/29 19:23:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -44,9 +44,7 @@ shift_jis_2004_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_SHIFT_JIS_2004); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_SHIFT_JIS_2004, PG_UTF8); LocalToUtf(src, dest, LUmapSHIFT_JIS_2004, LUmapSHIFT_JIS_2004_combined, sizeof(LUmapSHIFT_JIS_2004) / sizeof(pg_local_to_utf), @@ -63,9 +61,7 @@ utf8_to_shift_jis_2004(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_SHIFT_JIS_2004); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_SHIFT_JIS_2004); UtfToLocal(src, dest, ULmapSHIFT_JIS_2004, ULmapSHIFT_JIS_2004_combined, sizeof(ULmapSHIFT_JIS_2004) / sizeof(pg_utf_to_local), diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c b/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c index 62b76834b6514e1cad99d869b6127b79cfe7809f..2ed8964b57855b050f468f046233ffd8066d2c94 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c,v 1.18 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c,v 1.19 2009/01/29 19:23:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ sjis_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_SJIS); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_SJIS, PG_UTF8); LocalToUtf(src, dest, LUmapSJIS, NULL, sizeof(LUmapSJIS) / sizeof(pg_local_to_utf), 0, PG_SJIS, len); @@ -59,9 +57,7 @@ utf8_to_sjis(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_SJIS); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_SJIS); UtfToLocal(src, dest, ULmapSJIS, NULL, sizeof(ULmapSJIS) / sizeof(pg_utf_to_local), 0, PG_SJIS, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c b/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c index 77fa7a46de3e1cdbb373bfd58b0020a1b9037939..5d9c61076a59ff3efc086a299fc0b7b5672d7a68 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c,v 1.18 2009/01/01 17:23:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c,v 1.19 2009/01/29 19:23:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,9 +42,7 @@ uhc_to_utf8(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UHC); - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UHC, PG_UTF8); LocalToUtf(src, dest, LUmapUHC, NULL, sizeof(LUmapUHC) / sizeof(pg_local_to_utf), 0, PG_UHC, len); @@ -59,9 +57,7 @@ utf8_to_uhc(PG_FUNCTION_ARGS) unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(PG_GETARG_INT32(1) == PG_UHC); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_UHC); UtfToLocal(src, dest, ULmapUHC, NULL, sizeof(ULmapUHC) / sizeof(pg_utf_to_local), 0, PG_UHC, len); diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c b/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c index 67b4a6cbe616939eae4061ca63775a599faecf74..e39d814e87cc63a676cdabb7dee22b2fdc9fb3a3 100644 --- a/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c +++ b/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c,v 1.13 2009/01/01 17:23:53 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c,v 1.14 2009/01/29 19:23:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -110,8 +110,7 @@ win_to_utf8(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); int i; - Assert(PG_GETARG_INT32(1) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(-1, PG_UTF8); for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++) { @@ -138,8 +137,7 @@ utf8_to_win(PG_FUNCTION_ARGS) int len = PG_GETARG_INT32(4); int i; - Assert(PG_GETARG_INT32(0) == PG_UTF8); - Assert(len >= 0); + CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, -1); for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++) { diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c index 2c6c3f3ff1cd30fba5fccf660b581f8ea82f8ee1..4fb1ca8035a5d63b9d23dd10e5d43be38ae1f855 100644 --- a/src/backend/utils/mb/wchar.c +++ b/src/backend/utils/mb/wchar.c @@ -1,7 +1,7 @@ /* * conversion functions between pg_wchar and multibyte streams. * Tatsuo Ishii - * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.68 2008/10/29 08:04:53 petere Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.69 2009/01/29 19:23:42 tgl Exp $ * */ /* can be used in either frontend or backend */ @@ -1549,6 +1549,39 @@ pg_verify_mbstr_len(int encoding, const char *mbstr, int len, bool noError) return mb_len; } +/* + * check_encoding_conversion_args: check arguments of a conversion function + * + * "expected" arguments can be either an encoding ID or -1 to indicate that + * the caller will check whether it accepts the ID. + * + * Note: the errors here are not really user-facing, so elog instead of + * ereport seems sufficient. Also, we trust that the "expected" encoding + * arguments are valid encoding IDs, but we don't trust the actuals. + */ +void +check_encoding_conversion_args(int src_encoding, + int dest_encoding, + int len, + int expected_src_encoding, + int expected_dest_encoding) +{ + if (!PG_VALID_ENCODING(src_encoding)) + elog(ERROR, "invalid source encoding ID: %d", src_encoding); + if (src_encoding != expected_src_encoding && expected_src_encoding >= 0) + elog(ERROR, "expected source encoding \"%s\", but got \"%s\"", + pg_enc2name_tbl[expected_src_encoding].name, + pg_enc2name_tbl[src_encoding].name); + if (!PG_VALID_ENCODING(dest_encoding)) + elog(ERROR, "invalid destination encoding ID: %d", dest_encoding); + if (dest_encoding != expected_dest_encoding && expected_dest_encoding >= 0) + elog(ERROR, "expected destination encoding \"%s\", but got \"%s\"", + pg_enc2name_tbl[expected_dest_encoding].name, + pg_enc2name_tbl[dest_encoding].name); + if (len < 0) + elog(ERROR, "encoding conversion length must not be negative"); +} + /* * report_invalid_encoding: complain about invalid multibyte character * diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index dc89af9d5076a2e232ae1b5fc0b8a49f4627705c..65c99a2797fc4bc3274ee23d1e1895dcc9641fa9 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/mb/pg_wchar.h,v 1.82 2009/01/04 18:37:36 tgl Exp $ + * $PostgreSQL: pgsql/src/include/mb/pg_wchar.h,v 1.83 2009/01/29 19:23:42 tgl Exp $ * * NOTES * This is used both by the backend and by libpq, but should not be @@ -325,6 +325,19 @@ typedef struct uint32 utf2; /* UTF-8 code 2 */ } pg_local_to_utf_combined; +/* + * Support macro for encoding conversion functions to validate their + * arguments. (This could be made more compact if we included fmgr.h + * here, but we don't want to do that because this header file is also + * used by frontends.) + */ +#define CHECK_ENCODING_CONVERSION_ARGS(srcencoding,destencoding) \ + check_encoding_conversion_args(PG_GETARG_INT32(0), \ + PG_GETARG_INT32(1), \ + PG_GETARG_INT32(4), \ + (srcencoding), \ + (destencoding)) + /* * These functions are considered part of libpq's exported API and @@ -408,6 +421,12 @@ extern bool pg_verify_mbstr(int encoding, const char *mbstr, int len, extern int pg_verify_mbstr_len(int encoding, const char *mbstr, int len, bool noError); +extern void check_encoding_conversion_args(int src_encoding, + int dest_encoding, + int len, + int expected_src_encoding, + int expected_dest_encoding); + extern void report_invalid_encoding(int encoding, const char *mbstr, int len); extern void report_untranslatable_char(int src_encoding, int dest_encoding, const char *mbstr, int len);