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 1qoomv-0031iu-Vy for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Oct 2023 17:38:58 +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 1qoomt-009ldr-Ky for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Oct 2023 17:38:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qoomt-009ldj-1u for pgsql-hackers@lists.postgresql.org; Fri, 06 Oct 2023 17:38:56 +0000 Received: from black.elm.relay.mailchannels.net ([23.83.212.19]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qoomp-000dDe-MB for pgsql-hackers@postgresql.org; Fri, 06 Oct 2023 17:38:55 +0000 X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id BBE0F50206B; Fri, 6 Oct 2023 17:38:48 +0000 (UTC) Received: from pdx1-sub0-mail-a234.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 530655019A0; Fri, 6 Oct 2023 17:38:48 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1696613928; a=rsa-sha256; cv=none; b=Uqfbxv4mm1qaY1oTZmLAn5vkj0knQ8L9eN6VHa44ZaqDNLRhBlUrHWphQ22vmtWnbMhtwy rHvoYCYlHu6XsfZmnO3oww//Y2W0lhwhwEV8U5I+zPXdytLcoAv56IMX/W2zbaZM4czEGB Z21xa3dGv5dl98mKLpsjebhdc/IoqFvOtrlCINFxaqUC4LjSarLYwb1ZiRK7I7BaQ6/E/6 5LOwjQxSZ5PHHFqA/vzfH6nsaZmeeuSJ15NXk8B5DI1GZ90RYYoIjAGLifOnmA925LdJnQ DSoLsfaJCWtI95q6xe9Xw9MS8c2BKGgFdzU3mVXA99ecMSwZwSZcCDhuGw3+zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1696613928; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DIVsZG06qPw1oWC2AVWTGLymwr37mMWb/kfk9ksvF7E=; b=oZ1nNMudPJE3kuyRnQkSEOo7XvfXlcxDSEMNdvdN1GDeeg7wKw6DMjnUDiaSEX8aBRkhUD aV8zQ06UEHsdNY5TnyWNvfxYLhZ8ET7qYAAcs0liUBeMtJ4w6DG7HfbUkNVcGv1t7dXrew H632XFlaQ5mKDRbo1fxrTCMRXiy+9r36IxYdYnEsGkM2c0Ywqvo03yTlY13ynwesiAisy2 iyYssrexKsGUNymuWBhc6gZQpF7gg7iVk6u/yFtR4WJ429EDXanR+qXyBY6luOCcTPFNlP pijol5AyUKFPBqUGoSLGh2kkU5cCAFjMDQ7NPHU4M3tWt1XS2im/hXAP1P9ikA== ARC-Authentication-Results: i=1; rspamd-7d5dc8fd68-5w6wn; auth=pass smtp.auth=dreamhost smtp.mailfrom=nico@cryptonector.com X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|nico@cryptonector.com X-MailChannels-Auth-Id: dreamhost X-Relation-Ski: 1ca71c3d6787d8f4_1696613928610_2351786347 X-MC-Loop-Signature: 1696613928610:1708959071 X-MC-Ingress-Time: 1696613928610 Received: from pdx1-sub0-mail-a234.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.109.110.196 (trex/6.9.1); Fri, 06 Oct 2023 17:38:48 +0000 Received: from ubby21 (075-081-095-064.res.spectrum.com [75.81.95.64]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by pdx1-sub0-mail-a234.dreamhost.com (Postfix) with ESMTPSA id 4S2Fyv3rGCz2K; Fri, 6 Oct 2023 10:38:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cryptonector.com; s=dreamhost; t=1696613928; bh=DIVsZG06qPw1oWC2AVWTGLymwr37mMWb/kfk9ksvF7E=; h=Date:From:To:Cc:Subject:Content-Type:Content-Transfer-Encoding; b=dxYZUQWKrX5nnxG+Vci0Ot2SzsPniDiNLF5ZjNCFAiQjzdYHUFh6Q9URtqw+DSHSG zkCmliJTYjctpPCA/yYarNkfT3ClGnutgQyFK/nV6jhJl9oK9bxgheZUdCbsHmCj1J jH7fsw2qn3Q1afiC0OUopl2lvQ9+fAPMn7ky44c0ZPiwAXdxJ69uNOkoiz1OkbKkY8 fl3fjm7C0EgrgqLw7H4M8h4vJAfNTNTU0pTwhrCB1Fy8nEpylPoCYISAa+vwnNCa5K z3NnOoU8oX5rHq6JiZm3My5nxUAtoV00PSt7fEq3NOi9l355pDhbc31noXjoYAI1Dd JET1pM/AcnTVA== Date: Fri, 6 Oct 2023 12:38:45 -0500 From: Nico Williams To: Robert Haas Cc: Isaac Morland , Jeff Davis , Chapman Flack , pgsql-hackers@postgresql.org Subject: Re: Pre-proposal: unicode normalized text Message-ID: References: <43864caecd65d02081d623d05ccc1683@anastigmatix.net> <94a0e631b787d56fec1b17e03fe045b5e14907c1.camel@j-davis.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Fri, Oct 06, 2023 at 01:33:06PM -0400, Robert Haas wrote: > On Thu, Oct 5, 2023 at 3:15 PM Nico Williams wrote: > > Text+encoding can be just like bytea with a one- or two-byte prefix > > indicating what codeset+encoding it's in. That'd be how to encode > > such text values on the wire, though on disk the column's type should > > indicate the codeset+encoding, so no need to add a prefix to the value. > > Well, that would be making the encoding a per-value property, rather > than a per-column property like collation as I proposed. I can't see On-disk it would be just a property of the type, not part of the value. Nico --