mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Refactor pg_set_regex_collation() for clarity.
Discussion: https://postgr.es/m/63409030-2746-462e-beac-759bd43032ce@proxel.se Reviewed-by: Andreas Karlsson
This commit is contained in:
@ -261,29 +261,33 @@ pg_set_regex_collation(Oid collation)
|
||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("nondeterministic collations are not supported for regular expressions")));
|
||||
|
||||
#ifdef USE_ICU
|
||||
if (pg_regex_locale && pg_regex_locale->provider == COLLPROVIDER_ICU)
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_ICU;
|
||||
else
|
||||
#endif
|
||||
if (GetDatabaseEncoding() == PG_UTF8)
|
||||
if (pg_regex_locale && pg_regex_locale->provider == COLLPROVIDER_BUILTIN)
|
||||
{
|
||||
if (pg_regex_locale)
|
||||
Assert(GetDatabaseEncoding() == PG_UTF8);
|
||||
pg_regex_strategy = PG_REGEX_BUILTIN;
|
||||
}
|
||||
#ifdef USE_ICU
|
||||
else if (pg_regex_locale && pg_regex_locale->provider == COLLPROVIDER_ICU)
|
||||
{
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_ICU;
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
if (GetDatabaseEncoding() == PG_UTF8)
|
||||
{
|
||||
if (pg_regex_locale->provider == COLLPROVIDER_BUILTIN)
|
||||
pg_regex_strategy = PG_REGEX_BUILTIN;
|
||||
else
|
||||
if (pg_regex_locale)
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_WIDE_L;
|
||||
else
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_WIDE;
|
||||
}
|
||||
else
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_WIDE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pg_regex_locale)
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_1BYTE_L;
|
||||
else
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_1BYTE;
|
||||
{
|
||||
if (pg_regex_locale)
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_1BYTE_L;
|
||||
else
|
||||
pg_regex_strategy = PG_REGEX_LOCALE_1BYTE;
|
||||
}
|
||||
}
|
||||
|
||||
pg_regex_collation = collation;
|
||||
|
Reference in New Issue
Block a user