Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w5tsW-003jpL-2X for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 23:12:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5tsV-006J1a-0B for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 23:12:39 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w5tsU-006J1S-2Z for pgsql-hackers@lists.postgresql.org; Thu, 26 Mar 2026 23:12:39 +0000 Received: from fout-b6-smtp.messagingengine.com ([202.12.124.149]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w5tsT-00000001DjW-28b6 for pgsql-hackers@postgresql.org; Thu, 26 Mar 2026 23:12:38 +0000 Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfout.stl.internal (Postfix) with ESMTP id 186901D0016F; Thu, 26 Mar 2026 19:12:37 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Thu, 26 Mar 2026 19:12:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paquier.xyz; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1774566756; x=1774653156; bh=6VbBrXYdkS Hm/qVg9Pe9z2i1mbXpJvJt0fXPuNav+eU=; b=mJHCQxL4pjUOkD3j1xGt0/Ig34 2oe84AfdnhEGsfIJUKm+aiSTo1xF5hH3EoPcM29uHpKqAfinI4kosWVNHEAe/JMn mnX1huzeCaPsy6WDLlaPNb/AMCQLcANkzeYKAYgQ6cIPtleEAY550RP0wLsZ0H6b x8635XG86nm/ueCj2lSXdzSk7lxXGxA0hbBnB5+11s2eQoClfdldI7C6315rZPKx Gc5gW8FNyYmIYb9jBrUrDR98o3ykAQT8D2vSp0cbBcQ5Z9itZS/wjhd0daJElDJn yfuE08jqX2STreSOnGUGm/55ZZVtyNQE7Zgyv28bwTYBa1QZUnOUPZfFy9Fg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1774566756; x=1774653156; bh=6VbBrXYdkSHm/qVg9Pe9z2i1mbXpJvJt0fX PuNav+eU=; b=tkub3QI0SRVFL4VuRTHpK5+3lY2Pvz5xxU5Ct/I0UK//cqEbvev EXpkF7frmNOBmbxDwiWft6a5Sdq9XBFQ/8D+Hem/qcTOjJ9Wm8agBfUmz71+KVF8 enpuufRSRrmAeardZEsPk7cSTl+pgLIkrkxitZQvEozHnUG04i3t0WB24wJ014S/ byX5lwvk6MXSGfmNdIWDbQYiKPNJ5t3uGRrp2BDJLZSUrnhfq5KvqEjxRxuPEcYr FQRXfLOlXRCj0yX2si2tNCtc9rjpPEEQ09dyI96ayIYGsjv4W8PDw5lMUKBXBcDA hFvhKif1bc8DdQUq2lrgyjv54z32K7Z5Fsw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdekieekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnegfrh hlucfvnfffucdljedtmdenucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttddv necuhfhrohhmpefoihgthhgrvghlucfrrghquhhivghruceomhhitghhrggvlhesphgrqh huihgvrhdrgiihiieqnecuggftrfgrthhtvghrnhepteelieefudffhffhtdetleeggeeg fffhkeeuveetiefgudduvedutefggeeivdejnecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehmrghilhhfrhhomhepmhhitghhrggvlhesphgrqhhuihgvrhdrgiihiidp nhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheplhgvgi drsghorhhishhovhesghhmrghilhdrtghomhdprhgtphhtthhopehhlhhinhhnrghkrges ihhkihdrfhhipdhrtghpthhtohepphhgshhqlhesjhdquggrvhhishdrtghomhdprhgtph htthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: i0fe9450f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 26 Mar 2026 19:12:35 -0400 (EDT) Date: Fri, 27 Mar 2026 08:12:31 +0900 From: Michael Paquier To: Alexander Borisov Cc: Heikki Linnakangas , Jeff Davis , PostgreSQL Hackers Subject: Re: Improve the performance of Unicode Normalization Forms. Message-ID: References: <5f8639d99dab0d95dc1ef8f3abd4aa3adc0332ee.camel@j-davis.com> <58c6cea8-a5b1-4a8a-8044-18ef0011a168@gmail.com> <7b76973b-e9b6-4f80-a1d2-4bd467e38346@gmail.com> <24338db8-59f2-42a4-a7de-735cf8f12119@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="MvgsA/v7uiDm8RQt" Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --MvgsA/v7uiDm8RQt Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Mar 26, 2026 at 06:13:36PM +0300, Alexander Borisov wrote: > Attached rebased patches and Perl script (generate_NF_C_D_KC_KD_sql.pl) > for generating test files. At the beginning of the script, there is > a description of how to use it and what it generates. Thanks. That's going to be handy. One thing I am not sure of is if Jeff and/or Heikki are planning to come back to this thread by the feature freeze and do something about it for v19. So let's see what happens, but I'll be happy to study this patch opportunity in v20, be it in a complete form or a partial form (for the latter we could assume that a portion of what you are suggesting is committed into the tree in time for v19, leaving some hanging fruits for v20). -- Michael --MvgsA/v7uiDm8RQt Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEG72nH6vTowiyblFKnvQgOdbyQH0FAmnFvV8ACgkQnvQgOdby QH2f2w/8CpNVdfkqvmjjE/PUG/roUhkJ6pGVBEh5lXfaNEpnqvaKansPv3Fl0YWX WdC+aiMuJvuq+BRvwUbC/pfHT1krDK2tHNLI6ugToZBpWlh+P4hoFR036j54USyp 7Wy4ztVllkEBwC29t4nDoEf2N974vVu0w1bpJtOMQCQuoDhmmJJmU0neaZbnAWoo +s02N/lAWcX0Y9zDoPOFTOYDMIV9x3HeH7KGylNwW5CVB3H+qIbAWafkFZ0XYvH3 fljMQiiPDnms03N+FGVFGZkY+fq3WvtpDVhx346r58FsU180wBOp172Mh5TGRKvN HSabaxQM0B7Tk/ITpjo5Glr1wRrAf0Og5xNWqRcJTbTkLeF3LxwSTXuGLRsJl/Zb jDRUsq8YdyZrSqZEvVdJXXzz2Gq3PWBbkDY83VhRnHvKzEpBQ9B5jjf+4H8yuUBL uFn002KuciSv+h9veU+DlY+mBsrzxihFmZKXhJBYicDw7rDYLgmGsu4NG2cyNIhR +b2H28IqeQJQMdh/gmkXIVN6yQz1Ev+HcfPPpffIoOYpXR7X7LNseailaQ/t0988 Knx67SjKISOj0oo4PZLjpAwqtRBaT2sGlaYrP6zK1kqgtvFmgR8PAg+97CQb9DPv yanAqObBC0/H+Mxhf8tiNm1iBfrZOrhysCRnQjEZQgbuN7Uq6t4= =l6kc -----END PGP SIGNATURE----- --MvgsA/v7uiDm8RQt--