Re: Collation versioning
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: 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-02T07:55:33Z
Lists: pgsql-hackers
Attachments
- v35-0001-Remove-pg_collation.collversion.patch (text/x-patch) patch v35-0001
- v35-0002-Add-pg_depend.refobjversion.patch (text/x-patch) patch v35-0002
- v35-0003-Track-collation-versions-for-indexes.patch (text/x-patch) patch v35-0003
On Mon, Nov 2, 2020 at 7:59 PM Julien Rouhaud <rjuju123@gmail.com> wrote: > Note that v34 now fails when run on a without that don't have > defined(__GLIBC__) (e.g. macos). The failure are in > collate.icu.utf8.sql, of the form: > > - icuidx06_d_en_fr_ga | "default" | up to date > + icuidx06_d_en_fr_ga | "default" | version not tracked > > Given the new approach, the only option I can see is to simply remove > any attempt to cover the default collation in the tests. An > alternative file would be a pain to maintain and it wouldn't bring any > value apart from checking that the default collation is either always > tracked or never, but not a mix of those. Blah, right. Ok, I changed it to output XXX for "default". I did a bit more language clean up. I fixed the tab completion for ALTER INDEX ... ALTER COLLATION. I simplified a couple of tests. I dropped the pg_dump TAP test for now (I might see if I can find a simpler way to test refobjversion restoration later). I dropped the special handling for T_CollateExpr in find_expr_references_walker() (it wasn't affecting the test cases we have, and I wasn't entirely sure about it; do you see a problem?). I dropped the VACUUM-log-spam feature for now (I'm not against it, but it seems like an independent enough thing to not include in the initial commit). This brought the patch mercifully under 100kB. This is the version I'm planning to commit if you don't see anything else.
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