Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nz5I5-0000SB-Dm for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jun 2022 23:40:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nz5I4-000556-0V for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jun 2022 23:40:44 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nz5I3-00054x-Jd for pgsql-hackers@lists.postgresql.org; Wed, 08 Jun 2022 23:40:43 +0000 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nz5I1-0001OS-58 for pgsql-hackers@postgresql.org; Wed, 08 Jun 2022 23:40:42 +0000 Received: by mail-pl1-x635.google.com with SMTP id o17so18963782pla.6 for ; Wed, 08 Jun 2022 16:40:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ardentperf-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:subject:from:in-reply-to:cc :date:message-id:references:to; bh=U7K28uaKeqIWVtUDAu03r5VXw36yyB276Rj9hBMYJxA=; b=1BYLuxArdnGfirhGRVPct1KPdHCzLaWeegxNcKwkSYBvcQ4SQOhaUfxIsWj0i8Aiuw EvC+/fsgXV+n1sUUdfKH4e0EHmbMN1MCe8awYc74inff+GeishoVFBcYitxGEuqAZeqy HB0HlpxCt0wULW7b43bY1Cam+uhBQuzXmTm4ABneMzUJFMBAQth7DNNj8pTeWtme47aK 4vb2V5P3YvEoNpE/u6vE8IOidErQiC9blKAqnbh0ep9Bv4eQvVmfb1AY/B24bq4UyVeM FbGWuxeqG7myu7Uk6BcXaQgq6jeyEddi5P/AgxmDkkJ6/g+FLVtcWD+NwPm8rdKsoMp0 y5PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:content-transfer-encoding:mime-version:subject :from:in-reply-to:cc:date:message-id:references:to; bh=U7K28uaKeqIWVtUDAu03r5VXw36yyB276Rj9hBMYJxA=; b=S7eA2F09IOt2Prbd+X9IVONlQoyfPW2RUoZFVD/4fgdmlYG7NanAAlLzTV1EEqN8ag dozw0OIN5EYswP/C2jbmjEYrQ0ySlWKRu3GWuAypoaa+yVhKoxIj8T2/hX+eM6BS01kU I/y7hQn/D4u6cldyrpQGmbWoYQFjXwgyU81aZ9VZSFLPjUCqnNQZpqS9tXuZP+9PIdNY D4w37jf12At1iBVl1uBOVApDrvAdHzJUcBgeDRih91rZouQAVDT2Uk6X85knHD53sFDx IFOoJX2R9HzyBHNlChGuwEzr1DjG8eBhebZS1jx2z9KPshPanWZw1DGHHU1cjXqjwSK+ Mi3g== X-Gm-Message-State: AOAM533v5yA6tgsG9UM9ZsOGgW0qWZjsmLBJtxFSvQWzYqHAw4XEFDS4 Wcy0iRTKw4vRhCXmRjizLKWYqDYFRnXTKA== X-Google-Smtp-Source: ABdhPJxhMhKZ7suRW47C9u0hMLPpNktxJgfZqkfrPiuqzteoTCARV4wE2rmUyJr1aPaMuiyoPocBBA== X-Received: by 2002:a17:903:2c7:b0:158:2f26:6016 with SMTP id s7-20020a17090302c700b001582f266016mr37346079plk.154.1654731640126; Wed, 08 Jun 2022 16:40:40 -0700 (PDT) Received: from smtpclient.apple (c-24-17-46-25.hsd1.wa.comcast.net. [24.17.46.25]) by smtp.gmail.com with ESMTPSA id l66-20020a622545000000b0051868677e6dsm15594615pfl.51.2022.06.08.16.40.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Jun 2022 16:40:38 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (1.0) Subject: Re: Collation version tracking for macOS From: Jeremy Schneider In-Reply-To: Cc: Tom Lane , Robert Haas , Peter Geoghegan , Peter Eisentraut , pgsql-hackers Date: Wed, 8 Jun 2022 16:40:37 -0700 Message-Id: References: To: Thomas Munro X-Mailer: iPhone Mail (19F77) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk New emoji are getting added with some frequency, it=E2=80=99s a thing lately= =E2=80=A6 New Unicode chars use existing but unassigned code points. All code points a= re able to be encoded, claimed or unclaimed. Someone on old glibc or ICU can still store the new characters. As long as t= here=E2=80=99s an input field. You wouldn=E2=80=99t believe some stuff I=E2=80= =99ve seen people enter in the =E2=80=9Cname=E2=80=9D field for web apps=E2=80= =A6 =F0=9F=99=84 It=E2=80=99ll get some undefined or default sort behavior f= or unrecognized or unassigned code points. When the libs are updated, those new chars begin to sort correctly, which is= a change and breaks indexes (and potentially other stuff). -Jeremy Sent from my TI-83 > On Jun 8, 2022, at 16:34, Thomas Munro wrote: > =EF=BB=BFOn Thu, Jun 9, 2022 at 5:42 AM Tom Lane wrote= : >> I'm sure that Apple are indeed updating the UTF8 data behind >> their proprietary i18n APIs, but the libc APIs are mostly getting benign >> neglect. >=20 > As for how exactly they might be doing that, I don't know, but a bit > of light googling tells me that a private, headerless, > please-don't-call-me-directly copy of ICU arrived back in macOS > 10.3[1]. I don't see it on my 12.4 system, but I also know that 12.x > started hiding system libraries completely (the linker is magic and > pulls libraries from some parallel dimension, there is no > /usr/lib/libSystem.B.dylib file on disk, and yet otool -L > references it). >=20 > It's a lovely client machine, but I don't know if anyone really runs > meaningful database server stuff on macOS. I think if I did I'd be > very keen to use ICU for everything directly, rather than trying to > unpick any of that and talk to Apple's API... I think the > how-to-support-multiple-ICUs subrant/subthread is a much more > interesting topic. I have no idea if the dlopen() concept I mentioned > is the right way forward, but FWIW the experimental patch I posted > seems to work just fine on a Mac, using multiple ICU libraries > installed by MacPorts, which might be useful to developers > contemplating that stuff. >=20 > [1] https://lists.apple.com/archives/xcode-users/2005/Jun/msg00633.html