]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Remove provider field from pg_locale_t.
authorJeff Davis <jdavis@postgresql.org>
Tue, 1 Jul 2025 14:42:44 +0000 (07:42 -0700)
committerJeff Davis <jdavis@postgresql.org>
Tue, 1 Jul 2025 14:50:46 +0000 (07:50 -0700)
The behavior of pg_locale_t is specified by methods, so a separate
provider field is no longer necessary.

Reviewed-by: Andreas Karlsson <andreas@proxel.se>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/2830211e1b6e6a2e26d845780b03e125281ea17b.camel%40j-davis.com

src/backend/utils/adt/pg_locale_builtin.c
src/backend/utils/adt/pg_locale_icu.c
src/backend/utils/adt/pg_locale_libc.c
src/include/utils/pg_locale.h

index 0b275d0836b0eebf9743d390f86cf704af7779e1..0c9fbdb40f2a9f2654f76627c295f313ca90496f 100644 (file)
@@ -240,7 +240,6 @@ create_pg_locale_builtin(Oid collid, MemoryContext context)
 
        result->info.builtin.locale = MemoryContextStrdup(context, locstr);
        result->info.builtin.casemap_full = (strcmp(locstr, "PG_UNICODE_FAST") == 0);
-       result->provider = COLLPROVIDER_BUILTIN;
        result->deterministic = true;
        result->collate_is_c = true;
        result->ctype_is_c = (strcmp(locstr, "C") == 0);
index 1f4ee2d19901d83e23064c62e5a76a633dd9f9b1..96741e08269a4b3b559a237884a418b9859a9231 100644 (file)
@@ -292,7 +292,6 @@ create_pg_locale_icu(Oid collid, MemoryContext context)
        result = MemoryContextAllocZero(context, sizeof(struct pg_locale_struct));
        result->info.icu.locale = MemoryContextStrdup(context, iculocstr);
        result->info.icu.ucol = collator;
-       result->provider = COLLPROVIDER_ICU;
        result->deterministic = deterministic;
        result->collate_is_c = false;
        result->ctype_is_c = false;
@@ -569,8 +568,6 @@ strncoll_icu_utf8(const char *arg1, ssize_t len1, const char *arg2, ssize_t len2
        int                     result;
        UErrorCode      status;
 
-       Assert(locale->provider == COLLPROVIDER_ICU);
-
        Assert(GetDatabaseEncoding() == PG_UTF8);
 
        status = U_ZERO_ERROR;
@@ -598,8 +595,6 @@ strnxfrm_icu(char *dest, size_t destsize, const char *src, ssize_t srclen,
        size_t          uchar_bsize;
        Size            result_bsize;
 
-       Assert(locale->provider == COLLPROVIDER_ICU);
-
        init_icu_converter();
 
        ulen = uchar_length(icu_converter, src, srclen);
@@ -644,8 +639,6 @@ strnxfrm_prefix_icu_utf8(char *dest, size_t destsize,
        uint32_t        state[2];
        UErrorCode      status;
 
-       Assert(locale->provider == COLLPROVIDER_ICU);
-
        Assert(GetDatabaseEncoding() == PG_UTF8);
 
        uiter_setUTF8(&iter, src, srclen);
@@ -844,8 +837,6 @@ strncoll_icu(const char *arg1, ssize_t len1,
                           *uchar2;
        int                     result;
 
-       Assert(locale->provider == COLLPROVIDER_ICU);
-
        /* if encoding is UTF8, use more efficient strncoll_icu_utf8 */
 #ifdef HAVE_UCOL_STRCOLLUTF8
        Assert(GetDatabaseEncoding() != PG_UTF8);
@@ -894,8 +885,6 @@ strnxfrm_prefix_icu(char *dest, size_t destsize,
        size_t          uchar_bsize;
        Size            result_bsize;
 
-       Assert(locale->provider == COLLPROVIDER_ICU);
-
        /* if encoding is UTF8, use more efficient strnxfrm_prefix_icu_utf8 */
        Assert(GetDatabaseEncoding() != PG_UTF8);
 
index be714db528356863880023f45f83689e79375da6..e9f9fc1e3695fc0f58eaa4c08b331c4bffe4e9da 100644 (file)
@@ -713,7 +713,6 @@ create_pg_locale_libc(Oid collid, MemoryContext context)
        loc = make_libc_collator(collate, ctype);
 
        result = MemoryContextAllocZero(context, sizeof(struct pg_locale_struct));
-       result->provider = COLLPROVIDER_LIBC;
        result->deterministic = true;
        result->collate_is_c = (strcmp(collate, "C") == 0) ||
                (strcmp(collate, "POSIX") == 0);
@@ -833,8 +832,6 @@ strncoll_libc(const char *arg1, ssize_t len1, const char *arg2, ssize_t len2,
        const char *arg2n;
        int                     result;
 
-       Assert(locale->provider == COLLPROVIDER_LIBC);
-
        if (bufsize1 + bufsize2 > TEXTBUFLEN)
                buf = palloc(bufsize1 + bufsize2);
 
@@ -889,8 +886,6 @@ strnxfrm_libc(char *dest, size_t destsize, const char *src, ssize_t srclen,
        size_t          bufsize = srclen + 1;
        size_t          result;
 
-       Assert(locale->provider == COLLPROVIDER_LIBC);
-
        if (srclen == -1)
                return strxfrm_l(dest, src, destsize, locale->info.lt);
 
@@ -999,7 +994,6 @@ strncoll_libc_win32_utf8(const char *arg1, ssize_t len1, const char *arg2,
        int                     r;
        int                     result;
 
-       Assert(locale->provider == COLLPROVIDER_LIBC);
        Assert(GetDatabaseEncoding() == PG_UTF8);
 
        if (len1 == -1)
index 0f497fa8ce2c65163000b691a5dd2a9c9d1693f9..44ff60a25b4ce0110d82a33a52e428ff30fd6722 100644 (file)
@@ -143,7 +143,6 @@ struct ctype_methods
  */
 struct pg_locale_struct
 {
-       char            provider;
        bool            deterministic;
        bool            collate_is_c;
        bool            ctype_is_c;