Refactor to add pg_strcoll(), pg_strxfrm(), and variants.
authorJeff Davis <[email protected]>
Thu, 23 Feb 2023 18:55:20 +0000 (10:55 -0800)
committerJeff Davis <[email protected]>
Thu, 23 Feb 2023 18:55:20 +0000 (10:55 -0800)
commitd87d548cd0304477413a73e9c1d148fb2d40b50d
tree110613f01e1fc49b20eb95e416227eaf96e469d0
parente9960732a9618d5f744ff43a09622c9185798760
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
src/backend/access/hash/hashfunc.c
src/backend/utils/adt/pg_locale.c
src/backend/utils/adt/varchar.c
src/backend/utils/adt/varlena.c
src/include/utils/pg_locale.h