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
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/d87d548cd0304477413a73e9c1d148fb2d40b50d
Modified Files
--------------
src/backend/access/hash/hashfunc.c | 61 +--
src/backend/utils/adt/pg_locale.c | 769 ++++++++++++++++++++++++++++++++++++-
src/backend/utils/adt/varchar.c | 51 +--
src/backend/utils/adt/varlena.c | 368 +++---------------
src/include/utils/pg_locale.h | 13 +
5 files changed, 871 insertions(+), 391 deletions(-)