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 1otVTV-0001uK-Op for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Nov 2022 14:57: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 1otVTT-0006l7-A1 for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Nov 2022 14:57:43 +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 1otVTS-0006fH-RS for pgsql-hackers@lists.postgresql.org; Fri, 11 Nov 2022 14:57:42 +0000 Received: from out4-smtp.messagingengine.com ([66.111.4.28]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1otVTK-0006T5-Qu for pgsql-hackers@postgresql.org; Fri, 11 Nov 2022 14:57:41 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id C2D275C00F4; Fri, 11 Nov 2022 09:57:33 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Fri, 11 Nov 2022 09:57:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1668178653; x=1668265053; bh=yu7VzMfdHH4nn7yLg/6PbXLNTxaK EJAFx34Qhf+7nQg=; b=Jy+ay38bipzAgS2f3LiTGZ4STQaJ+YNJH6+bvSem4Qfz qU+7UWjPSmn8HhdhPIgEJUFIpsLZy19cX0aa/V3AdIGQaVDDrZDQDR7vXvxKjSnR UkEdtpm/eK9Cp2V3PHkTFEFZgZ4R+1A8ZNfbr+VYSFOxJeZhSbtLPALz7m3zLlgk nCNprQHHirzTIPfWZ+dL16oE9PoNBpYuIjvqPxijQJJy8Y+/FukvrLkgQqm8s28T GSTuoD3Iuik9/TExhfvmdp1sWF+aQpuudD6Vxbkqrh506xEjUg4aY5ot5T3cAsD2 L5YiWvtfzR07z1j1uPsBoKHboScLl3xAtUZtaztZsQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrfeeigdejtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtkfffgggfuffvvehfhfgjsehmtderredtfeejnecuhfhrohhmpefrvghtvghr ucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrh hprhhishgvuggsrdgtohhmqeenucggtffrrghtthgvrhhnpeeutdekheeuhedtvdfgffeh leetfefhieefudeitdffiedtledujefhjedufeffffenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthes vghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 11 Nov 2022 09:57:31 -0500 (EST) Content-Type: multipart/mixed; boundary="------------ps1u6B97jKLh3tL0P05AaI4L" Message-ID: Date: Fri, 11 Nov 2022 15:57:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: Collation version tracking for macOS Content-Language: en-US To: Thomas Munro Cc: Jeremy Schneider , Peter Geoghegan , "Finnerty, Jim" , "Nasby, Jim" , Tom Lane , pgsql-hackers References: <398aabd1-ad95-ba2d-d70a-dd5d90bf6e07@enterprisedb.com> From: Peter Eisentraut In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ps1u6B97jKLh3tL0P05AaI4L Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 22.10.22 03:22, Thomas Munro wrote: > I'd love to hear others' thoughts on how we can turn this into a > workable solution. Hopefully while staying simple... I played with this patch a bit. It looks like a reasonable approach. Attached is a small patch to get the dynamic libicu* lookup working with the library naming on macOS. Instead of packing the ICU version into the locale field ('63:en'), I would make it a separate field in pg_collation and a separate argument in CREATE COLLATION. At this point, perhaps it would be good to start building some tests to demonstrate various upgrade scenarios and to ensure portability. --------------ps1u6B97jKLh3tL0P05AaI4L Content-Type: text/plain; charset=UTF-8; name="0001-fixup-WIP-Multi-version-ICU.patch" Content-Disposition: attachment; filename="0001-fixup-WIP-Multi-version-ICU.patch" Content-Transfer-Encoding: base64 RnJvbSBlMjM2ZjUyNTdiZjBiZjNlN2I4M2I5ZDliMDk1ZDFkMGUzZmRjOTcxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxMSBOb3YgMjAyMiAxNTo0NDo0NCArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIGZpeHVwISBXSVA6IE11bHRpLXZlcnNpb24gSUNVLgoKLS0tCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgfCA4ICsrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3BnX2xvY2FsZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCmluZGV4 IDY2NmE3OWI5MDdhNC4uM2ZmYjk3MDZmZjk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdfbG9jYWxlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xv Y2FsZS5jCkBAIC0xNjAwLDYgKzE2MDAsMTAgQEAgZ2V0X2ljdV9saWJyYXJ5KGludCBtYWpv cl92ZXJzaW9uKQogCQkJCSAiJXMlc2ljdWkxOG4lZC4iIERMU1VGRklYLAogCQkJCSBpY3Vf bGlicmFyeV9wYXRoLAogCQkJCSBpY3VfbGlicmFyeV9wYXRoWzBdID8gIlxcIiA6ICIiLAor I2VsaWYgZGVmaW5lZChfX2Rhcndpbl9fKQorCQkJCSAiJXMlc2xpYmljdWkxOG4uJWQiIERM U1VGRklYLAorCQkJCSBpY3VfbGlicmFyeV9wYXRoLAorCQkJCSBpY3VfbGlicmFyeV9wYXRo WzBdID8gIi8iIDogIiIsCiAjZWxzZQogCQkJCSAiJXMlc2xpYmljdWkxOG4iIERMU1VGRklY ICIuJWQiLAogCQkJCSBpY3VfbGlicmFyeV9wYXRoLApAQCAtMTYxNSw2ICsxNjE5LDEwIEBA IGdldF9pY3VfbGlicmFyeShpbnQgbWFqb3JfdmVyc2lvbikKIAkJCQkgIiVzJXNpY3V1YyVk LiIgRExTVUZGSVgsCiAJCQkJIGljdV9saWJyYXJ5X3BhdGgsCiAJCQkJIGljdV9saWJyYXJ5 X3BhdGhbMF0gPyAiXFwiIDogIiIsCisjZWxpZiBkZWZpbmVkKF9fZGFyd2luX18pCisJCQkJ ICIlcyVzbGliaWN1dWMuJWQiIERMU1VGRklYLAorCQkJCSBpY3VfbGlicmFyeV9wYXRoLAor CQkJCSBpY3VfbGlicmFyeV9wYXRoWzBdID8gIi8iIDogIiIsCiAjZWxzZQogCQkJCSAiJXMl c2xpYmljdXVjIiBETFNVRkZJWCAiLiVkIiwKIAkJCQkgaWN1X2xpYnJhcnlfcGF0aCwKLS0g CjIuMzguMQoK --------------ps1u6B97jKLh3tL0P05AaI4L--