Rework of collation code, extensibility

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Rework of collation code, extensibility
Date: 2022-12-18 03:14:23
Message-ID: a581136455c940d7bd0ff482d3a2bd51af25a94f.camel@j-davis.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Attached is a new patch series. I think there are enough changes that
this has become more of a "rework" of the collation code rather than
just a refactoring. This is a continuation of some prior work[1][2] in
a new thread given its new scope.

Benefits:

1. Clearer division of responsibilities.
2. More consistent between libc and ICU providers.
3. Hooks that allow extensions to replace collation provider libraries.
4. New tests for the collation provider library hooks.

There are a lot of changes, and still some loose ends, but I believe a
few of these patches are close to ready.

This set of changes does not express an opinion on how we might want to
support multiple provider libraries in core; but whatever we choose, it
should be easier to accomplish. Right now, the hooks have limited
information on which to make the choice for a specific version of a
collation provider library, but that's because there's limited
information in the catalog. If the discussion here[3] concludes in
adding collation provider library or library version information to the
catalog, we can add additional parameters to the hooks.

[1]
https://postgr.es/m/99aa79cceefd1fe84fda23510494b8fbb7ad1e70.camel@j-davis.com
[2]
https://postgr.es/m/c4fda90ec6a7568a896f243a38eb273c3b5c3d93.camel@j-davis.com
[3]
https://postgr.es/m/CA+hUKGLEqMhnpZrgAcisoUeYFGz8W6EWdhtK2h-4QN0iOSFRqw@mail.gmail.com

--
Jeff Davis
PostgreSQL Contributor Team - AWS

Attachment Content-Type Size
v4-0001-Add-pg_strcoll-and-pg_strncoll.patch text/x-patch 19.3 KB
v4-0002-Add-pg_strxfrm-and-pg_strxfrm_prefix.patch text/x-patch 25.6 KB
v4-0003-Refactor-pg_locale_t-routines.patch text/x-patch 42.7 KB
v4-0004-Support-multiple-ICU-collation-provider-libraries.patch text/x-patch 32.0 KB
v4-0005-Support-multiple-libc-collation-provider-librarie.patch text/x-patch 18.8 KB
v4-0006-Add-tests-for-collation-provider-hooks.patch text/x-patch 30.6 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ted Yu 2022-12-18 03:27:20 Re: Rework of collation code, extensibility
Previous Message Christophe Pettus 2022-12-18 02:23:27 Re: BUG #17717: Regression in vacuumdb (15 is slower than 10/11 and possible memory issue)