diff options
Diffstat (limited to 'src/backend/regex/regc_pg_locale.c')
| -rw-r--r-- | src/backend/regex/regc_pg_locale.c | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/src/backend/regex/regc_pg_locale.c b/src/backend/regex/regc_pg_locale.c index e0c892db713..4698f110a0c 100644 --- a/src/backend/regex/regc_pg_locale.c +++ b/src/backend/regex/regc_pg_locale.c @@ -23,11 +23,6 @@ static pg_locale_t pg_regex_locale; -static struct pg_locale_struct dummy_c_locale = { - .collate_is_c = true, - .ctype_is_c = true, -}; - /* * pg_set_regex_collation: set collation for these functions to obey @@ -53,33 +48,12 @@ pg_set_regex_collation(Oid collation) errhint("Use the COLLATE clause to set the collation explicitly."))); } - if (collation == C_COLLATION_OID) - { - /* - * Some callers expect regexes to work for C_COLLATION_OID before - * catalog access is available, so we can't call - * pg_newlocale_from_collation(). - */ - locale = &dummy_c_locale; - } - else - { - locale = pg_newlocale_from_collation(collation); - - if (!locale->deterministic) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("nondeterministic collations are not supported for regular expressions"))); + locale = pg_newlocale_from_collation(collation); - if (locale->ctype_is_c) - { - /* - * C/POSIX collations use this path regardless of database - * encoding - */ - locale = &dummy_c_locale; - } - } + if (!locale->deterministic) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("nondeterministic collations are not supported for regular expressions"))); pg_regex_locale = locale; } |
