|
|
@ -288,15 +288,13 @@ hashtext(PG_FUNCTION_ARGS) |
|
|
|
VARSIZE_ANY_EXHDR(key)); |
|
|
|
VARSIZE_ANY_EXHDR(key)); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
|
|
|
|
#ifdef USE_ICU |
|
|
|
|
|
|
|
if (mylocale->provider == COLLPROVIDER_ICU) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
Size bsize, rsize; |
|
|
|
Size bsize, rsize; |
|
|
|
char *buf; |
|
|
|
char *buf; |
|
|
|
const char *keydata = VARDATA_ANY(key); |
|
|
|
const char *keydata = VARDATA_ANY(key); |
|
|
|
size_t keylen = VARSIZE_ANY_EXHDR(key); |
|
|
|
size_t keylen = VARSIZE_ANY_EXHDR(key); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale); |
|
|
|
bsize = pg_strnxfrm(NULL, 0, keydata, keylen, mylocale); |
|
|
|
buf = palloc(bsize + 1); |
|
|
|
buf = palloc(bsize + 1); |
|
|
|
|
|
|
|
|
|
|
@ -313,11 +311,6 @@ hashtext(PG_FUNCTION_ARGS) |
|
|
|
|
|
|
|
|
|
|
|
pfree(buf); |
|
|
|
pfree(buf); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
/* shouldn't happen */ |
|
|
|
|
|
|
|
elog(ERROR, "unsupported collprovider: %c", mylocale->provider); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Avoid leaking memory for toasted inputs */ |
|
|
|
/* Avoid leaking memory for toasted inputs */ |
|
|
|
PG_FREE_IF_COPY(key, 0); |
|
|
|
PG_FREE_IF_COPY(key, 0); |
|
|
@ -349,9 +342,6 @@ hashtextextended(PG_FUNCTION_ARGS) |
|
|
|
PG_GETARG_INT64(1)); |
|
|
|
PG_GETARG_INT64(1)); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
|
|
|
|
#ifdef USE_ICU |
|
|
|
|
|
|
|
if (mylocale->provider == COLLPROVIDER_ICU) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
Size bsize, rsize; |
|
|
|
Size bsize, rsize; |
|
|
|
char *buf; |
|
|
|
char *buf; |
|
|
@ -375,11 +365,6 @@ hashtextextended(PG_FUNCTION_ARGS) |
|
|
|
|
|
|
|
|
|
|
|
pfree(buf); |
|
|
|
pfree(buf); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
/* shouldn't happen */ |
|
|
|
|
|
|
|
elog(ERROR, "unsupported collprovider: %c", mylocale->provider); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PG_FREE_IF_COPY(key, 0); |
|
|
|
PG_FREE_IF_COPY(key, 0); |
|
|
|
|
|
|
|
|
|
|
|