]> granicus.if.org Git - postgresql/commitdiff
Remove wchar.c Asserts that were stricter than the main code
authorBruce Momjian <bruce@momjian.us>
Mon, 24 Mar 2014 19:59:38 +0000 (15:59 -0400)
committerBruce Momjian <bruce@momjian.us>
Mon, 24 Mar 2014 19:59:38 +0000 (15:59 -0400)
Assert errors were thrown for functions being passed invalid encodings,
while the main code handled it just fine.

Also document that libpq's PQclientEncoding() returns -1 for an encoding
lookup failure.

Per report from Peter Geoghegan

doc/src/sgml/libpq.sgml
src/backend/utils/mb/wchar.c

index 22815bc9ad8e54f09d3ed120d58f24d2c5fe8fd2..be0d602508df122b166531032578b6d6aa5cfbd7 100644 (file)
@@ -5377,7 +5377,8 @@ int PQclientEncoding(const PGconn *<replaceable>conn</replaceable>);
 </synopsis>
 
       Note that it returns the encoding ID, not a symbolic string
-      such as <literal>EUC_JP</literal>. To convert an encoding ID to an encoding name, you
+      such as <literal>EUC_JP</literal>. If unsuccessful, it returns -1.
+      To convert an encoding ID to an encoding name, you
       can use:
 
 <synopsis>
index 6d03a10854e3efc877970d135fcbf3406c935f9c..5f65f1bc89987ad7c34c9b2da5e473afe4ba1974 100644 (file)
@@ -1778,10 +1778,7 @@ pg_mic_mblen(const unsigned char *mbstr)
 int
 pg_encoding_mblen(int encoding, const char *mbstr)
 {
-       Assert(PG_VALID_ENCODING(encoding));
-
-       return ((encoding >= 0 &&
-                        encoding < sizeof(pg_wchar_table) / sizeof(pg_wchar_tbl)) ?
+       return (PG_VALID_ENCODING(encoding) ?
                ((*pg_wchar_table[encoding].mblen) ((const unsigned char *) mbstr)) :
        ((*pg_wchar_table[PG_SQL_ASCII].mblen) ((const unsigned char *) mbstr)));
 }
@@ -1792,10 +1789,7 @@ pg_encoding_mblen(int encoding, const char *mbstr)
 int
 pg_encoding_dsplen(int encoding, const char *mbstr)
 {
-       Assert(PG_VALID_ENCODING(encoding));
-
-       return ((encoding >= 0 &&
-                        encoding < sizeof(pg_wchar_table) / sizeof(pg_wchar_tbl)) ?
+       return (PG_VALID_ENCODING(encoding) ?
           ((*pg_wchar_table[encoding].dsplen) ((const unsigned char *) mbstr)) :
        ((*pg_wchar_table[PG_SQL_ASCII].dsplen) ((const unsigned char *) mbstr)));
 }
@@ -1808,12 +1802,9 @@ pg_encoding_dsplen(int encoding, const char *mbstr)
 int
 pg_encoding_verifymb(int encoding, const char *mbstr, int len)
 {
-       Assert(PG_VALID_ENCODING(encoding));
-
-       return ((encoding >= 0 &&
-                        encoding < sizeof(pg_wchar_table) / sizeof(pg_wchar_tbl)) ?
-                       ((*pg_wchar_table[encoding].mbverify) ((const unsigned char *) mbstr, len)) :
-                       ((*pg_wchar_table[PG_SQL_ASCII].mbverify) ((const unsigned char *) mbstr, len)));
+       return (PG_VALID_ENCODING(encoding) ?
+               ((*pg_wchar_table[encoding].mbverify) ((const unsigned char *) mbstr, len)) :
+       ((*pg_wchar_table[PG_SQL_ASCII].mbverify) ((const unsigned char *) mbstr, len)));
 }
 
 /*