Re: Collation versioning

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>, David Rowley <dgrowleyml@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Julien Rouhaud <rjuju123@gmail.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Laurenz Albe <laurenz.albe@cybertec.at>, Douglas Doole <dougdoole@gmail.com>, Christoph Berg <myon@debian.org>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2021-03-15T01:25:38Z
Lists: pgsql-hackers
On Fri, Nov 6, 2020 at 10:56 AM Thomas Munro <thomas.munro@gmail.com> wrote:
> On Wed, Nov 4, 2020 at 9:11 PM Michael Paquier <michael@paquier.xyz> wrote:
> > On Wed, Nov 04, 2020 at 08:44:15AM +0100, Juan José Santamaría Flecha wrote:
> > >  We could create a static table with the conversion based on what was
> > > discussed for commit a169155, please find attached a spreadsheet with the
> > > comparison. This would require maintenance as new LCIDs are released [1].

> > I am honestly not a fan of something like that as it has good chances
> > to rot.

> No opinion on that, other than that we'd surely want a machine
> readable version.  As for *when* we use that information, I'm
> wondering if it would make sense to convert datcollate to a language
> tag in initdb, and also change pg_upgrade's equivalent_locale()
> function to consider "English_United States.*" and "en-US" to be
> equivalent when upgrading to 14 (which would then be the only point
> you'd ever have to have faith that we can convert the old style names
> to the new names correctly).  I'm unlikely to work on this myself as I
> have other operating systems to fix, but I'll certainly be happy if
> somehow we can get versioning for default on Windows in PG14 and not
> have to come up with weasel words in the manual.

FYI I have added this as an open item for PostgreSQL 14.  My default
action will be to document this limitation, if we can't come up with
something better in time.



Commits

  1. Doc: Document known problem with Windows collation versions.

  2. Add collation versions for FreeBSD.

  3. Tolerate version lookup failure for old style Windows locale names.

  4. Track collation versions for indexes.

  5. Add pg_depend.refobjversion.

  6. Remove pg_collation.collversion.

  7. Fix the MSVC build for versions 2015 and later.

  8. Add collation versions for Windows.

  9. Implement type regcollation

  10. Use libc version as a collation version on glibc systems.

  11. Make type "name" collation-aware.