Remove unnecessary #ifdef USE_ICU and branch.
authorJeff Davis <jdavis@postgresql.org>
Thu, 23 Feb 2023 19:20:00 +0000 (11:20 -0800)
committerJeff Davis <jdavis@postgresql.org>
Thu, 23 Feb 2023 19:20:00 +0000 (11:20 -0800)
Now that the provider-independent API pg_strnxfrm() is available, we
no longer need the special cases for ICU in hashfunc.c and varchar.c.

Reviewed-by: Peter Eisentraut, Peter Geoghegan
Discussion: https://postgr.es/m/a581136455c940d7bd0ff482d3a2bd51af25a94f.camel%40j-davis.com

src/backend/access/hash/hashfunc.c
src/backend/utils/adt/varchar.c

index 2e2fd5566e70d0864e60500c4f54921d5423ca7f..d850edd1d51c99ee9f3b4a05cc3c4d5426fbc2ff 100644 (file)
@@ -289,34 +289,27 @@ hashtext(PG_FUNCTION_ARGS)
    }
    else
    {
-#ifdef USE_ICU
-       if (mylocale->provider == COLLPROVIDER_ICU)
-       {
-           Size        bsize, rsize;
-           char       *buf;
-           const char *keydata = VARDATA_ANY(key);
-           size_t      keylen = VARSIZE_ANY_EXHDR(key);
-
-           bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
-           buf = palloc(bsize + 1);
-
-           rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
-           if (rsize != bsize)
-               elog(ERROR, "pg_strnxfrm() returned unexpected result");
-
-           /*
-            * In principle, there's no reason to include the terminating NUL
-            * character in the hash, but it was done before and the behavior
-            * must be preserved.
-            */
-           result = hash_any((uint8_t *) buf, bsize + 1);
-
-           pfree(buf);
-       }
-       else
-#endif
-           /* shouldn't happen */
-           elog(ERROR, "unsupported collprovider: %c", mylocale->provider);
+       Size        bsize, rsize;
+       char       *buf;
+       const char *keydata = VARDATA_ANY(key);
+       size_t      keylen = VARSIZE_ANY_EXHDR(key);
+
+
+       bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
+       buf = palloc(bsize + 1);
+
+       rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
+       if (rsize != bsize)
+           elog(ERROR, "pg_strnxfrm() returned unexpected result");
+
+       /*
+        * In principle, there's no reason to include the terminating NUL
+        * character in the hash, but it was done before and the behavior
+        * must be preserved.
+        */
+       result = hash_any((uint8_t *) buf, bsize + 1);
+
+       pfree(buf);
    }
 
    /* Avoid leaking memory for toasted inputs */
@@ -350,35 +343,27 @@ hashtextextended(PG_FUNCTION_ARGS)
    }
    else
    {
-#ifdef USE_ICU
-       if (mylocale->provider == COLLPROVIDER_ICU)
-       {
-           Size        bsize, rsize;
-           char       *buf;
-           const char *keydata = VARDATA_ANY(key);
-           size_t      keylen = VARSIZE_ANY_EXHDR(key);
-
-           bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
-           buf = palloc(bsize + 1);
-
-           rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
-           if (rsize != bsize)
-               elog(ERROR, "pg_strnxfrm() returned unexpected result");
-
-           /*
-            * In principle, there's no reason to include the terminating NUL
-            * character in the hash, but it was done before and the behavior
-            * must be preserved.
-            */
-           result = hash_any_extended((uint8_t *) buf, bsize + 1,
-                                      PG_GETARG_INT64(1));
-
-           pfree(buf);
-       }
-       else
-#endif
-           /* shouldn't happen */
-           elog(ERROR, "unsupported collprovider: %c", mylocale->provider);
+       Size        bsize, rsize;
+       char       *buf;
+       const char *keydata = VARDATA_ANY(key);
+       size_t      keylen = VARSIZE_ANY_EXHDR(key);
+
+       bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
+       buf = palloc(bsize + 1);
+
+       rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
+       if (rsize != bsize)
+           elog(ERROR, "pg_strnxfrm() returned unexpected result");
+
+       /*
+        * In principle, there's no reason to include the terminating NUL
+        * character in the hash, but it was done before and the behavior
+        * must be preserved.
+        */
+       result = hash_any_extended((uint8_t *) buf, bsize + 1,
+                                  PG_GETARG_INT64(1));
+
+       pfree(buf);
    }
 
    PG_FREE_IF_COPY(key, 0);
index 99a4ca7cd00f6f46fc8169f10ddf1622cead135f..592afc18ecc758357dedd92bd637b123a0e91530 100644 (file)
@@ -1021,32 +1021,24 @@ hashbpchar(PG_FUNCTION_ARGS)
    }
    else
    {
-#ifdef USE_ICU
-       if (mylocale->provider == COLLPROVIDER_ICU)
-       {
-           Size        bsize, rsize;
-           char       *buf;
+       Size        bsize, rsize;
+       char       *buf;
 
-           bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
-           buf = palloc(bsize + 1);
+       bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
+       buf = palloc(bsize + 1);
 
-           rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
-           if (rsize != bsize)
-               elog(ERROR, "pg_strnxfrm() returned unexpected result");
+       rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
+       if (rsize != bsize)
+           elog(ERROR, "pg_strnxfrm() returned unexpected result");
 
-           /*
-            * In principle, there's no reason to include the terminating NUL
-            * character in the hash, but it was done before and the behavior
-            * must be preserved.
-            */
-           result = hash_any((uint8_t *) buf, bsize + 1);
+       /*
+        * In principle, there's no reason to include the terminating NUL
+        * character in the hash, but it was done before and the behavior
+        * must be preserved.
+        */
+       result = hash_any((uint8_t *) buf, bsize + 1);
 
-           pfree(buf);
-       }
-       else
-#endif
-           /* shouldn't happen */
-           elog(ERROR, "unsupported collprovider: %c", mylocale->provider);
+       pfree(buf);
    }
 
    /* Avoid leaking memory for toasted inputs */
@@ -1084,33 +1076,25 @@ hashbpcharextended(PG_FUNCTION_ARGS)
    }
    else
    {
-#ifdef USE_ICU
-       if (mylocale->provider == COLLPROVIDER_ICU)
-       {
-           Size        bsize, rsize;
-           char       *buf;
+       Size        bsize, rsize;
+       char       *buf;
 
-           bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
-           buf = palloc(bsize + 1);
+       bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale);
+       buf = palloc(bsize + 1);
 
-           rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
-           if (rsize != bsize)
-               elog(ERROR, "pg_strnxfrm() returned unexpected result");
+       rsize = pg_strnxfrm(buf, bsize + 1, keydata, keylen, mylocale);
+       if (rsize != bsize)
+           elog(ERROR, "pg_strnxfrm() returned unexpected result");
 
-           /*
-            * In principle, there's no reason to include the terminating NUL
-            * character in the hash, but it was done before and the behavior
-            * must be preserved.
-            */
-           result = hash_any_extended((uint8_t *) buf, bsize + 1,
-                                      PG_GETARG_INT64(1));
+       /*
+        * In principle, there's no reason to include the terminating NUL
+        * character in the hash, but it was done before and the behavior
+        * must be preserved.
+        */
+       result = hash_any_extended((uint8_t *) buf, bsize + 1,
+                                  PG_GETARG_INT64(1));
 
-           pfree(buf);
-       }
-       else
-#endif
-           /* shouldn't happen */
-           elog(ERROR, "unsupported collprovider: %c", mylocale->provider);
+       pfree(buf);
    }
 
    PG_FREE_IF_COPY(key, 0);