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 1o1H6V-0003RX-NN for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Jun 2022 00:41:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o1H5W-0002nP-JM for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Jun 2022 00:40:50 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o1H5W-0002nF-5b for pgsql-hackers@lists.postgresql.org; Wed, 15 Jun 2022 00:40:50 +0000 Received: from mail-qt1-x82e.google.com ([2607:f8b0:4864:20::82e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1o1H5S-0002sk-Th for pgsql-hackers@postgresql.org; Wed, 15 Jun 2022 00:40:49 +0000 Received: by mail-qt1-x82e.google.com with SMTP id x18so7349329qtj.3 for ; Tue, 14 Jun 2022 17:40:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ardentperf-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:from:mime-version:subject:message-id:date :cc:to; bh=9egfkG6/xkIU1Lxh1vR37FFIjtqqNoIUqCnM0kQdD8M=; b=sVAciKvYkcpxuyJ5qJkyWm+JSEECxAkg8fyoRqDesS60qrh1v2TgQ6DUa26C/+cYME apia7AvSlpy2Fm3hGBb/+2ntqrxHMAN+nkeJERFDimqioR7CszxTGog8GSiUee3GyE5K SuwncneQMcnOMhl/Rnewkn8vTUSiHKuivjkG/aifB7BSuZVhz6Ucnzz+DEA/Dv4oGyVu 64eYPnRZ5lc0qd0+QT6eJSEIWpFHB3/m+hJhaw5oHAJgFT79ZkF9DAxmCYMCsR9k1Vz/ UavOqzeZkFKoc2qlruthxY8CG3lYWrfB/1wrWedHXx85J7CA2qJHNueaomrDFhrjBal7 vU0A== 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:from:mime-version :subject:message-id:date:cc:to; bh=9egfkG6/xkIU1Lxh1vR37FFIjtqqNoIUqCnM0kQdD8M=; b=SU2x+uFa+8otx6opcRCWP6NxMQOKBw3/Y4w8z03KpEbuGb40CdEtsPKllPeRM5Ki+6 nzpaIg33Q8XEkDEmK4z5BZx1OK7FfKG8sazzFnLUbuOMGk5z0CfQOXV+kHJep+ZHVoXs SpKooJfBdgjQuvrTOW0wUM+ZW2aYrmNLtQHk45kJedKGPQMRGbdNA9b9XQpCK6WMwlnK SqDyMjCkPHV/JzJsWcgcMzMV9D1MAvYZW+v7Fih5j+dgjBRLCsInOIkf3oRRbISBVTxb 9gmtF1Tz2g3gPs+cr49TXCAuM/I2axBdfDDoa2aOlFZkyB3NkfE4vggZW55yFHrxDNg0 DTIw== X-Gm-Message-State: AOAM533L82qxYKX9ZsKcnToK3aksIqQWu07Ht/Du8ywgGopcfT0m8Uuk NX9hW7TiKFDi9pVE6/Rz2aXT/A== X-Google-Smtp-Source: ABdhPJzD9J5XJCmraFmcbBM9FGKRWFOoEfQNbpe9SXxkLthDF6FZEWlTvYBTZk77Y3TSf98M7LHnzw== X-Received: by 2002:ac8:7d47:0:b0:304:f2e7:6b71 with SMTP id h7-20020ac87d47000000b00304f2e76b71mr6639597qtb.325.1655253645196; Tue, 14 Jun 2022 17:40:45 -0700 (PDT) Received: from smtpclient.apple ([165.166.91.245]) by smtp.gmail.com with ESMTPSA id l3-20020a05620a28c300b006a780aa9fc4sm8791430qkp.96.2022.06.14.17.40.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Jun 2022 17:40:44 -0700 (PDT) Content-Type: multipart/alternative; boundary=Apple-Mail-91ED8638-32EC-4479-B85D-0CAD0D2D7A3B Content-Transfer-Encoding: 7bit From: Jeremy Schneider Mime-Version: 1.0 (1.0) Subject: Re: Collation version tracking for macOS Message-Id: <450ADADD-FEE6-4217-A2C8-85F65DF52CD0@ardentperf.com> Date: Tue, 14 Jun 2022 20:40:22 -0400 Cc: Peter Eisentraut , Peter Geoghegan , "Finnerty, Jim" , "Nasby, Jim" , Tom Lane , pgsql-hackers To: Thomas Munro X-Mailer: iPhone Mail (19F77) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --Apple-Mail-91ED8638-32EC-4479-B85D-0CAD0D2D7A3B Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable =EF=BB=BF =EF=BB=BF > On Jun 14, 2022, at 19:06, Thomas Munro wrote: > One difference would be the effect if ICU ever ships a minor library > version update that changes the reported collversion. If I=E2=80=99m reading it correctly, ICU would not change collation in major= versions, as an explicit matter of policy around DUCET stability and versio= ning. https://unicode.org/reports/tr10/#Stable_DUCET > With some system of symlinks to make it all work with defaults for > those who don't care, a libc could have > /usr/share/locale/en_US@CLDR34.UTF-8 etc so you could > setlocale(LC_COLLATE, "en_US@CLDR34"), or something. I suppose they > don't want to promise to be able to interpret the old data in future > releases, and, as you say, sometimes the changes are in C code, due to > bugs or algorithm changes, not the data. If I understand correctly, files in /usr/share/locale aren=E2=80=99t enough b= ecause those only have the tailoring rules, and core algorithm and data (bef= ore applying locale-specific tweaks) also change between versions. I=E2=80=99= m pretty sure glibc works similar to UCA in this regard (albeit based on ISO= 14651 and not CDLR), and the Unicode link above is a good illustration of d= efault collation rules that underly the locale-specific tweaks. -Jeremy Sent from my TI-83= --Apple-Mail-91ED8638-32EC-4479-B85D-0CAD0D2D7A3B Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
=EF=BB=BF
=EF=BB= =BF=

On Jun 14, 2022, at 19:06, Thomas Munro <thomas.mun= ro@gmail.com> wrote:

=
One difference would be the effect if ICU ever ships a= minor library
version update that changes the reported coll= version.

If I=E2=80=99= m reading it correctly, ICU would not change collation in major versions, as= an explicit matter of policy around DUCET stability and versioning.



With some system of symlinks to make it all work with defaults for=
those who don't care, a libc could have
/usr/share= /locale/en_US@CLDR34.UTF-8 etc so you could
setlocale(LC_COL= LATE, "en_US@CLDR34"), or something.  I suppose they
do= n't want to promise to be able to interpret the old data in futurereleases, and, as you say, sometimes the changes are in C code, due t= o
bugs or algorithm changes, not the data.
<= /blockquote>

If I understand correctly, files in /usr/sha= re/locale aren=E2=80=99t enough because those only have the tailoring rules,= and core algorithm and data (before applying locale-specific tweaks) also c= hange between versions. I=E2=80=99m pretty sure glibc works similar to UCA i= n this regard (albeit based on ISO 14651 and not CDLR), and the Unicode link= above is a good illustration of default collation rules that underly the lo= cale-specific tweaks.

-Jeremy

Sent from my TI-83
<= /body>= --Apple-Mail-91ED8638-32EC-4479-B85D-0CAD0D2D7A3B--