]> granicus.if.org Git - postgresql/commit
Add support for collation attributes on older ICU versions
authorPeter Eisentraut <peter@eisentraut.org>
Sun, 17 Mar 2019 07:16:33 +0000 (08:16 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Sun, 17 Mar 2019 07:47:15 +0000 (08:47 +0100)
commitb8f9a2a69a279d118e366a0d3d45caa84a7620b1
tree1567d34de216333da585621e002cdb4d7b771c14
parent042162d6281a7daf1291931ee7b0a5641d3a73d7
Add support for collation attributes on older ICU versions

Starting in ICU 54, collation customization attributes can be
specified in the locale string, for example
"@colStrength=primary;colCaseLevel=yes".  Add support for this for
older ICU versions as well, by adding some minimal parsing of the
attributes in the locale string and calling ucol_setAttribute() on
them.  This is essentially what never ICU versions do internally in
ucol_open().  This was we can offer this functionality in a consistent
way in all ICU versions supported by PostgreSQL.

Also add some tests for ICU collation customization.

Reported-by: Daniel Verite <daniel@manitou-mail.org>
Discussion: https://www.postgresql.org/message-id/0270ebd4-f67c-8774-1a5a-91adfb9bb41f@2ndquadrant.com
src/backend/utils/adt/pg_locale.c
src/test/regress/expected/collate.icu.utf8.out
src/test/regress/sql/collate.icu.utf8.sql