On 05.06.23 19:54, Jeff Davis wrote:
New patch series attached. I plan to commit 0001 and 0002 soon, unless
there are objections.
0001 causes the "C" and "POSIX" locales to be treated with
memcmp/pg_ascii semantics in ICU, just like in libc. We also considered
a new "none" provider, but it's more invasive, and we can always
reconsider that in the v17 cycle.
0002 introduces an upgrade check for users who have explicitly
requested provider=icu and iculocale=C on older versions, and rejects
upgrading from v15 in that case to avoid index corruption. Having such
a collation is almost certainly a mistake by the user, because the
collator would not give the expected memcmp semantics.
I'm dubious about these two.
0003 seems like the correct direction. In createdb.c, the change you
add makes sense, but you should also remove the existing use of the
locale variable:
- if (locale)
- {
- if (!lc_ctype)
- lc_ctype = locale;
- if (!lc_collate)
- lc_collate = locale;
- }
-