mylocale = pg_newlocale_from_collation(collid);
- if (pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
result = hash_any((unsigned char *) VARDATA_ANY(key),
VARSIZE_ANY_EXHDR(key));
mylocale = pg_newlocale_from_collation(collid);
- if (pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
result = hash_any_extended((unsigned char *) VARDATA_ANY(key),
VARSIZE_ANY_EXHDR(key),
{
locale = pg_newlocale_from_collation(collation);
- if (!pg_locale_deterministic(locale))
+ if (!locale->deterministic)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("nondeterministic collations are not supported for regular expressions")));
{
pg_locale_t locale = pg_newlocale_from_collation(collation);
- if (!pg_locale_deterministic(locale))
+ if (!locale->deterministic)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("nondeterministic collations are not supported for LIKE")));
locale = pg_newlocale_from_collation(collation);
- if (!pg_locale_deterministic(locale))
+ if (!locale->deterministic)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("nondeterministic collations are not supported for ILIKE")));
#endif /* not USE_ICU */
}
-
-bool
-pg_locale_deterministic(pg_locale_t locale)
-{
- return locale->deterministic;
-}
-
/*
* Initialize default_locale with database locale settings.
*/
mylocale = pg_newlocale_from_collation(collid);
- if (mylocale->collate_is_c || pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
/*
* Since we only care about equality or not-equality, we can avoid all
mylocale = pg_newlocale_from_collation(collid);
- if (mylocale->collate_is_c || pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
/*
* Since we only care about equality or not-equality, we can avoid all
mylocale = pg_newlocale_from_collation(collid);
- if (pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
result = hash_any((unsigned char *) keydata, keylen);
}
mylocale = pg_newlocale_from_collation(collid);
- if (pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
result = hash_any_extended((unsigned char *) keydata, keylen,
PG_GETARG_INT64(1));
mylocale = pg_newlocale_from_collation(collid);
- if (!pg_locale_deterministic(mylocale))
+ if (!mylocale->deterministic)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("nondeterministic collations are not supported for substring searches")));
result = pg_strncoll(arg1, len1, arg2, len2, mylocale);
/* Break tie if necessary. */
- if (result == 0 && pg_locale_deterministic(mylocale))
+ if (result == 0 && mylocale->deterministic)
{
result = memcmp(arg1, arg2, Min(len1, len2));
if ((result == 0) && (len1 != len2))
mylocale = pg_newlocale_from_collation(collid);
- if (pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
Datum arg1 = PG_GETARG_DATUM(0);
Datum arg2 = PG_GETARG_DATUM(1);
mylocale = pg_newlocale_from_collation(collid);
- if (pg_locale_deterministic(mylocale))
+ if (mylocale->deterministic)
{
Datum arg1 = PG_GETARG_DATUM(0);
Datum arg2 = PG_GETARG_DATUM(1);
mylocale = pg_newlocale_from_collation(collid);
- if (!pg_locale_deterministic(mylocale))
+ if (!mylocale->deterministic)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("nondeterministic collations are not supported for substring searches")));
result = pg_strcoll(sss->buf1, sss->buf2, sss->locale);
/* Break tie if necessary. */
- if (result == 0 && pg_locale_deterministic(sss->locale))
+ if (result == 0 && sss->locale->deterministic)
result = strcmp(sss->buf1, sss->buf2);
/* Cache result, perhaps saving an expensive strcoll() call next time */
locale = pg_newlocale_from_collation(collid);
- if (locale->collate_is_c ||
- pg_locale_deterministic(locale))
- PG_RETURN_BOOL(true);
- else
- PG_RETURN_BOOL(false);
+ PG_RETURN_BOOL(locale->deterministic);
}
Datum
const char *icurules,
struct pg_locale_struct *resultp);
-extern bool pg_locale_deterministic(pg_locale_t locale);
extern void init_database_collation(void);
extern pg_locale_t pg_newlocale_from_collation(Oid collid);