Move definition of standard collations from initdb to pg_collation.dat
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-03-28T10:19:57Z
Lists: pgsql-hackers
Attachments
- 0001-Move-definition-of-standard-collations-from-initdb-t.patch (text/plain) patch 0001
While working on [0], I was wondering why the collations ucs_basic and unicode are not in pg_collation.dat. I traced this back through history, and I think this was just lost in a game of telephone. The initial commit for pg_collation.h (414c5a2ea6) has only the default collation in pg_collation.h (pre .dat), with initdb handling everything else. Over time, additional collations "C" and "POSIX" were moved to pg_collation.h, and other logic was moved from initdb to pg_import_system_collations(). But ucs_basic was untouched. Commit 0b13b2a771 rearranged the relative order of operations in initdb and added the current comment "We don't want to pin these", but looking at the email[1], I think this was more a guess about the previous intent. I suggest we fix this now; see attached patch. [0]: https://www.postgresql.org/message-id/flat/1293e382-2093-a2bf-a397-c04e8f83d3c2%40enterprisedb.com [1]: https://www.postgresql.org/message-id/28195.1498172402%40sss.pgh.pa.us
Commits
-
Move definition of standard collations from initdb to pg_collation.dat
- 563f21cda8fc 16.0 landed
-
Rethink behavior of pg_import_system_collations().
- 0b13b2a7712b 10.0 cited