On Fri, Jun 10, 2022 at 12:32 PM Peter Geoghegan <p...@bowt.ie> wrote: > On Thu, Jun 9, 2022 at 5:18 PM Thomas Munro <thomas.mu...@gmail.com> wrote: > > You seem to have some > > other idea in mind where the system only knows about one > > "en-US-x-icu", but somehow, somewhere else (where?), keeps track of > > which indexes were built with ICU 63 and which with ICU 67, which I > > don't yet grok. Or did I misunderstand? > > That's what I meant, yes -- you got it right.
OK, I see now. I think if you design a system to record the library that each index (and constraint, ...) was built with, it'd surely finish up being at least conceptually something like the system Julien and I built and then reverted in ec483147. Except that it'd be a stronger form of that, because instead of just squawking when the version is not the latest/current version, it'd keep working but route collations to the older library for indexes that haven't been rebuilt yet. That sounds nice, but introduces subtle problems for the planner. For example, pathkeys that look compatible might not be, when merge-joining an ICU 63 index scan against an ICU 67 index scan. You could teach it about that, whereas with my distinct OID concept they would already be considered non-matching automatically.