On Thu, 2023-02-02 at 08:44 -0500, Robert Haas wrote: > On Thu, Feb 2, 2023 at 8:13 AM Jeff Davis <pg...@j-davis.com> wrote: > > If we don't want to nudge users toward ICU, is it because we are > > waiting for something, or is there a lack of consensus that ICU is > > actually better? > > Do you think it's better?
Yes: * ICU more featureful: e.g. supports case-insensitive collations (the citext docs suggest looking at ICU instead). * It's faster: a simple non-contrived sort is something like 70% faster[1] than one using glibc. * It can provide consistent semantics across platforms. I believe the above reasons are enough to call ICU "better", but it also seems like a better path for addressing/mitigating collator versioning problems: * Easier for users to control what library version is available on their system. We can also ask packagers to keep some old versions of ICU available for an extended period of time. * If one of the ICU multilib patches makes it in, it will be easier for users to select which of the library versions Postgres will use. * Reports versions for indiividual collators, distinct from the library version. The biggest disadvantage (rather, the flip side of its advantages) is that it's a separate dependency. Will ICU still be maintained in 10 years or will we end up stuck maintaining it ourselves? Then again, we've already been shipping it, so I don't know if we can avoid that problem entirely now even if we wanted to. I don't mean that ICU solves all of our problems -- far from it. But you asked if I think it's better, and my answer is yes. Regards, Jeff Davis [1] https://postgr.es/m/64039a2dbcba6f42ed2f32bb5f0371870a70afda.ca...@j-davis.com