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 1p2FTY-0001AD-EY for pgsql-hackers@arkaria.postgresql.org; Mon, 05 Dec 2022 17:41:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p2FTX-00041g-CH for pgsql-hackers@arkaria.postgresql.org; Mon, 05 Dec 2022 17:41:55 +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 1p2FTW-00040g-Tc for pgsql-hackers@lists.postgresql.org; Mon, 05 Dec 2022 17:41:55 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p2FTU-00042l-KI for pgsql-hackers@postgresql.org; Mon, 05 Dec 2022 17:41:53 +0000 Received: by mail-pl1-x636.google.com with SMTP id a9so11496685pld.7 for ; Mon, 05 Dec 2022 09:41:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=UBzOJ4wlpEU/ZDf7babyJvVEJYHV7zl+nRg3DyEldvM=; b=FH9A7wdJO+3L3FjFX2O6HLdwk2RW9LMdF72vUZrleTTO3oJqzcrlwoSAegr5+qUvcA c1PNZmGvDpRxf66p26gqiIPEfyaWSuW+mjB1HjuZUaxnFXyprDgxoPyF2UEAksGsr4s2 SmUiy+7A7dHRlzTgkuodYh3wlnk0vHzAEe2PYvc4lzvb7aRijFLdim3LdrWiVqTVdtJx K/D14NNvBi2tQvFi8k92LBQcXxf02BSRERAl1/j0XLpQLcT2SGHgE/no4eMpnzjB/wbl 7zoZv6P0SrcQMhhto3XX3r9KSFEzI/0cauHFk+0MC4EmEUuWjwxT78uxsmhUdesycUaq 4gqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=UBzOJ4wlpEU/ZDf7babyJvVEJYHV7zl+nRg3DyEldvM=; b=7NCiRG1cZz2/QRu/te9VrUvgCGOc1kh7CkgU+Q4J8541mYAMrYzjIyFPxOReYzRzfQ XOh3dFlgOKKcZVynFMA0SIZIzDwdSfu4B6nodc5dTcSl7pVs8h94sDCm2vA8R4AHpfSd P2ZeZIrQGYWilm3yNIDYis1nb9v2DsxTjuxjlADqk2PBSPM0YLkdydTZK4VtdjVbv/MV PqRHlTZnYby9jfjIy7U7traqVLMse3gkvdzcocLL/3wMDwIxlb4bctqB19iIUVa0Jteq M4HUXKiXgUaPJInokYGHuv1nc4YdU4iKJVQnE/sDB7wK5Kful4WbbvBec+Le3X6UIgRR IvdA== X-Gm-Message-State: ANoB5pnIghAFBt/8UF/d3OkKL2q+qtY2ulAIN+H7/0vBDh8jMFOW6cmg eln1YwyTUNRBU4lJLkDLfCQCAA== X-Google-Smtp-Source: AA0mqf4kyG75XwgBZqXL20wF6Yjh8SQN4AGxPInpMIYjoR+F23YpkwD+oMGq15xZcNOPYx5Pt9z51w== X-Received: by 2002:a17:902:d302:b0:189:6077:5595 with SMTP id b2-20020a170902d30200b0018960775595mr54106975plc.84.1670262111240; Mon, 05 Dec 2022 09:41:51 -0800 (PST) Received: from [172.18.7.9] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id u64-20020a626043000000b005751f455e0esm10130961pfb.120.2022.12.05.09.41.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Dec 2022 09:41:50 -0800 (PST) Message-ID: Subject: Re: Collation version tracking for macOS From: Jeff Davis To: Thomas Munro Cc: Peter Eisentraut , Jeremy Schneider , Peter Geoghegan , "Nasby, Jim" , Tom Lane , pgsql-hackers Date: Mon, 05 Dec 2022 09:41:49 -0800 In-Reply-To: References: <398aabd1-ad95-ba2d-d70a-dd5d90bf6e07@enterprisedb.com> <606bd2baa6d65b38fee6eb23bba40c5da210255b.camel@j-davis.com> <9f8e9b5a3352478d4cf7d6c0a5dd7e82496be4b6.camel@j-davis.com> <346f836208a39009c1998ed5a41c7f1a0be36911.camel@j-davis.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Mon, 2022-12-05 at 16:12 +1300, Thomas Munro wrote: > 1.=C2=A0 I think we should seriously consider provider =3D ICU63.=C2=A0 I= still > think search-by-collversion is a little too magical, even though it > clearly can be made to work.=C2=A0 Of the non-magical systems, I think > encoding the choice of library into the provider name would avoid the > need to add a second confusing "X_version" concept alongside our > existing "X_version" columns in catalogues and DDL syntax, while > still > making it super clear what is going on. As I understand it, this is #2 in your previous list? Can we put the naming of the provider into the hands of the user, e.g.: CREATE COLLATION PROVIDER icu63 TYPE icu AS '/path/to/libicui18n.so.63', '/path/to/libicuuc.so.63'; In this model, icu would be a "provider kind" and icu63 would be the specific provider, which is named by the user. That seems like the least magical approach, to me. We need an ICU library; the administrator gives us one that looks like ICU; and we're happy. It avoids a lot of the annoyances we're discussing, and puts the power in the hands of the admin. If they want to allow minor version updates, they specify the library with .so.63, and let the symlinking handle it. Of course, we can still do some sanity checks (WARNINGs or ERRORs) when we think something is going wrong; like the version of ICU is too new, or the reported version (ucol_getVersion()) doesn't match what's in collversion. But we basically get out of the business of understanding ICU versioning and leave that up to the administrator. It's easier to document, and would require fewer GUCs (if any). And it avoids mixing version information from another project into our data model. --=20 Jeff Davis PostgreSQL Contributor Team - AWS