Re: Collation versioning
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Julien Rouhaud <rjuju123@gmail.com>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Michael Paquier <michael@paquier.xyz>, 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: 2020-11-02T20:43:14Z
Lists: pgsql-hackers
On Tue, Nov 3, 2020 at 6:51 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Thomas Munro <thomas.munro@gmail.com> writes: > > Hmm, a failure from dory (WIndows) during pg_upgrade: > > > performing post-bootstrap initialization ... 2020-11-02 08:08:22.213 > > EST [5392] FATAL: could not get collation version for locale > > "English_United States.1252": error code 87 > > > 87 means invalid parameter. I'm surprised it got through various > > other tests and then failed here. Whelk (also Windows) passed using > > "German_Germany.1252". Hmm. I'll wait for more Windows systems to > > report. > > drongo just did it too, and it seems repeatable on dory. I'm not 100% > sure, but I think the buildfarm's initial "check" step may be run under C > locale while pg_upgrade sees whatever the machine's prevailing locale is. > If that's correct, it seems like the simplest explanation is just that > extraction of a collation version is busted for (some?) non-C locales on > Windows. Could be something as dumb as spaces in the locale name > being problematic. Fortunately David Rowley is able to repro this on his Windows box (it fails even with strings that are succeeding on the other BF machines), so we have something to work with. The name mangling that is done in get_iso_localename() looks pretty interesting... It does feel a bit like there is some other hidden environmental factor or setting here, because commit 352f6f2df60 tested OK on Juan Jose's machine too. Hopefully more soon.
Commits
-
Doc: Document known problem with Windows collation versions.
- 1bf946bd43e5 14.0 landed
-
Add collation versions for FreeBSD.
- ca051d8b101d 14.0 landed
-
Tolerate version lookup failure for old style Windows locale names.
- 9f12a3b95dd5 14.0 landed
-
Track collation versions for indexes.
- 257836a75585 14.0 landed
-
Add pg_depend.refobjversion.
- cd6f479e79f3 14.0 landed
-
Remove pg_collation.collversion.
- 7d1297df0830 14.0 landed
-
Fix the MSVC build for versions 2015 and later.
- a169155453e3 13.0 cited
-
Add collation versions for Windows.
- 352f6f2df60f 13.0 cited
-
Implement type regcollation
- a2b1faa0f279 13.0 landed
-
Use libc version as a collation version on glibc systems.
- d5ac14f9ccdd 13.0 landed
- 9f90b1d08d79 13.0 landed
-
Make type "name" collation-aware.
- 586b98fdf1aa 12.0 cited