pá 17. 2. 2023 v 18:02 odesílatel Jeff Davis <pgsql@j-davis.com> napsal:
On Fri, 2023-02-17 at 00:06 -0800, Jeff Davis wrote: > On Tue, 2023-02-14 at 09:59 -0800, Andres Freund wrote: > > I am saying that pg_upgrade should be able to deal with the > > difference. The > > details of how to implement that, don't matter that much. > > To clarify, you're saying that pg_upgrade should simply update > pg_database to set the new databases' collation fields equal to that > of > the old cluster?
Thinking about this more, it's not clear to me if this would be in scope for pg_upgrade or not. If pg_upgrade is fixing up the new cluster rather than checking for compatibility, why doesn't it just take over and do the initdb for the new cluster itself? That would be less confusing for users, and avoid some weirdness (like, if you drop the database "postgres" on the original, why does it reappear after an upgrade?).
Someone might want to do something interesting to the new cluster before the upgrade, but it's not clear from the docs what would be both useful and safe.
Today I tested icu for Czech sorting. It is a little bit slower, but not too much, but it produces partially different results.
select row_number() over (order by nazev collate "cs-x-icu"), nazev from obce
except select row_number() over (order by nazev collate "cs_CZ"), nazev from obce;
returns a not empty set. So minimally for Czech collate, an index rebuild is necessary