Specifying the library name before the language-country code with a new separator (":") as you suggested below has some benefits. Did you consider making the collation version just another collation attribute, such as colStrength, colCaseLevel, etc.? For example, an alternate syntax might be:
create collation icu63."en-US-x-icu" (provider = icu, locale = 'en-US@colVersion=63'); Was the concern that ICU might redefine a new collation property with the same name in a different and incompatible way (we might work with the ICU developers to agree on what it should be), or that a version is just not the same kind of collation property as the other collation properties? (in the example above, I'm assuming that for provider = icu, we could translate '63' into 'libicui18n.so.63' automatically.) On 6/8/22, 6:22 AM, "Thomas Munro" <thomas.mu...@gmail.com> wrote: <snip> postgres=# create collation icu63."en-US-x-icu" (provider = icu, locale = 'libicui18n.so.63:en-US'); CREATE COLLATION <snip>