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.94.2) (envelope-from ) id 1rngFR-00EV3A-6e for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Mar 2024 14:51:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rngFP-004MKL-B6 for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Mar 2024 14:51:55 +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.94.2) (envelope-from ) id 1rngFP-004MKD-1b for pgsql-hackers@lists.postgresql.org; Fri, 22 Mar 2024 14:51:55 +0000 Received: from fout8-smtp.messagingengine.com ([103.168.172.151]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rngFL-005rf4-Sl for pgsql-hackers@postgresql.org; Fri, 22 Mar 2024 14:51:54 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.nyi.internal (Postfix) with ESMTP id C6FAE13800A1; Fri, 22 Mar 2024 10:51:51 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Fri, 22 Mar 2024 10:51:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-transfer-encoding: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=1711119111; x=1711205511; bh=0RO/PXmkJApFz8AVTnozwZwOL1w/yI18 +Z4yI4UfpME=; b=u+7XdwuGzuGmZxdAzXmGV5OqCOT9B9U0sqWFX1TKl8V96N+S d5XGbd2MxdPC9F/2yTW5eCcmD0Im5zhdxwAaCDLmmvEqFtMIIdiCjPBw65hfq8GN Rk/noB19+38jJJkHS/4sHYXlTP7m8tKysFX78YzI9biqDy1zhoq0m0F8DML1LNCk /qo4GvAKIDUyelq4u/kDRhMN47o0dixdntMygaJDyFFCjoTnufLuHhyvtHTx3KXx ooY/DEsmHD6iQBCy8iYogvgle7ycXzTK0Kqmhr+J7Zc48Z62Q/82mFg0A5mTiQ6B IoBqighWXFgKKUp0Igy1fUx2H50Qu9XYd65BhQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :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-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711119111; x= 1711205511; bh=0RO/PXmkJApFz8AVTnozwZwOL1w/yI18+Z4yI4UfpME=; b=b MVuyK22bQD4x3/5bhWA3nFcjsICyGWFLOK6wOGAtXu3jLAd7l3gsE9w/trXWkKmj FTjYNbKCayHWHGkaoa2S0cdGy5NSY/bEeu5qem9P0/EsiPVfd4LVNSYK8ZTQTQJH 9U8+BkKM6vCSUjMfbtpYXJOOZV2xzND+iWVt/YSwZO99cO8BrdXDM0cQUM43o2Jp StNG6IDiEt65I2b2g0MWhPOEFZ+3vnuzBzrjaPEi8sq7YugjB6uolM9jMBTp/y6R IKk9xnwglptZUiMaROz7sM6IpSSEGw1/LYMQdKXxkVQV7gZowIPBGOlj6anogAA5 DzCDikh0xs+Q9gjnic/4g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddtvddgtdehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpefrvght vghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhsvghnthhrrghuthdrohhrgh eqnecuggftrfgrthhtvghrnhepjefhveehtdetgfffhffhfeefgffghffflefgieeuueek hedvhedvfeehffdvfeeunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 22 Mar 2024 10:51:50 -0400 (EDT) Message-ID: <49f18979-bef5-4cf0-bf3d-8a5ed323f470@eisentraut.org> Date: Fri, 22 Mar 2024 15:51:49 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Built-in CTYPE provider Content-Language: en-US To: Jeff Davis , Daniel Verite Cc: Robert Haas , Jeremy Schneider , pgsql-hackers@postgresql.org References: <6f3e94c0-f174-4380-9b69-072f8a838881@manitou-mail.org> <12e4f6a78403b33c303c20e44976f891d879be09.camel@j-davis.com> <612987b5-38fa-44c6-8b78-c0be5a177a70@eisentraut.org> <2692039df6b0cac20c5e488fa0209e8958c5fedb.camel@j-davis.com> <27bb0e52-801d-4f73-a0a4-02cfdd4a9ada@eisentraut.org> <4a69d067374d2f6bfb66f5bfb2ab9a020493d49f.camel@j-davis.com> <3bc653b5d562ae9e2838b11cb696816c328a489a.camel@j-davis.com> <163f4e2190cdf67f67016044e503c5004547e5a9.camel@j-davis.com> <6bdb98e68b2b05aa71f7f934e227738eac84ecee.camel@j-davis.com> <19b34a70-f5cf-4faf-88dc-917db44ed48d@eisentraut.org> <846a7e1fa2024918b58ff7583523a2f3de9a11b4.camel@j-davis.com> <3117d30aa911b408b90420f4f280fa0c3b5851be.camel@j-davis.com> <4135cf11-206d-40ed-96c0-9363c1232379@eisentraut.org> <7451f81ba0cb512222ab759de8ca1cffe44e9acb.camel@j-davis.com> <1f309153-8198-4efa-86dd-8c304ec0040c@eisentraut.org> From: Peter Eisentraut In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 21.03.24 01:13, Jeff Davis wrote: >> Are there any test cases that illustrate the word boundary changes in >> patch 0005?  It might be useful to test those against Oracle as well. > The tests include initcap('123abc') which is '123abc' in the PG_C_UTF8 > collation vs '123Abc' in PG_UNICODE_FAST. > > The reason for the latter behavior is that the Unicode Default Case > Conversion algorithm for toTitlecase() advances to the next Cased > character before mapping to titlecase, and digits are not Cased. ICU > has a configurable adjustment, and defaults in a way that produces > '123abc'. I think this might be too big of a compatibility break. So far, initcap('123abc') has always returned '123abc'. If the new collation returns '123Abc' now, then that's quite a change. These are not some obscure Unicode special case characters, after all. What is the ICU configuration incantation for this? Maybe we could have the builtin provider understand some of that, too. Or we should create a function separate from initcap.