mirror of
https://github.com/postgres/postgres.git
synced 2025-12-09 02:08:45 +03:00
Refactor to add pg_strcoll(), pg_strxfrm(), and variants.
Offers a generally better separation of responsibilities for collation code. Also, a step towards multi-lib ICU, which should be based on a clean separation of the routines required for collation providers. Callers with NUL-terminated strings should call pg_strcoll() or pg_strxfrm(); callers with strings and their length should call the variants pg_strncoll() or pg_strnxfrm(). Reviewed-by: Peter Eisentraut, Peter Geoghegan Discussion: https://postgr.es/m/a581136455c940d7bd0ff482d3a2bd51af25a94f.camel%40j-davis.com
This commit is contained in:
@@ -100,6 +100,19 @@ extern void make_icu_collator(const char *iculocstr,
|
||||
extern pg_locale_t pg_newlocale_from_collation(Oid collid);
|
||||
|
||||
extern char *get_collation_actual_version(char collprovider, const char *collcollate);
|
||||
extern int pg_strcoll(const char *arg1, const char *arg2, pg_locale_t locale);
|
||||
extern int pg_strncoll(const char *arg1, size_t len1,
|
||||
const char *arg2, size_t len2, pg_locale_t locale);
|
||||
extern bool pg_strxfrm_enabled(pg_locale_t locale);
|
||||
extern size_t pg_strxfrm(char *dest, const char *src, size_t destsize,
|
||||
pg_locale_t locale);
|
||||
extern size_t pg_strnxfrm(char *dest, size_t destsize, const char *src,
|
||||
size_t srclen, pg_locale_t locale);
|
||||
extern bool pg_strxfrm_prefix_enabled(pg_locale_t locale);
|
||||
extern size_t pg_strxfrm_prefix(char *dest, const char *src, size_t destsize,
|
||||
pg_locale_t locale);
|
||||
extern size_t pg_strnxfrm_prefix(char *dest, size_t destsize, const char *src,
|
||||
size_t srclen, pg_locale_t locale);
|
||||
|
||||
#ifdef USE_ICU
|
||||
extern int32_t icu_to_uchar(UChar **buff_uchar, const char *buff, size_t nbytes);
|
||||
|
||||
Reference in New Issue
Block a user