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 1wzaxp-0046f0-0A for pgsql-docs@arkaria.postgresql.org; Thu, 27 Aug 2026 14:20:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wzaxn-002MFp-2p for pgsql-docs@arkaria.postgresql.org; Thu, 27 Aug 2026 14:20:19 +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.96) (envelope-from ) id 1wzSSD-0000LV-0e for pgsql-docs@lists.postgresql.org; Thu, 27 Aug 2026 05:15:09 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wzSSA-00000001UaC-1Ocp for pgsql-docs@lists.postgresql.org; Thu, 27 Aug 2026 05:15:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Message-ID:Date:Reply-To:Cc:From:To:Subject: Content-Transfer-Encoding:MIME-Version:Content-Type:Sender:Content-ID: Content-Description:In-Reply-To:References; bh=2IWf64+/EkxLQ8iv6ZYRAmlDxp/g0rPybw74pbtBXPE=; b=ldZXaCPI7MkJuvQg6jnlY/WLox Aa//WhPrZDx8/qE2+TAco2p0iz1u25XnzuRumb6XRmTPPS74OMzK9SJfl36+hchYis1OjeBFt6Wxu Q++gwXdlwEHbv0jc5sFyS380NILIMROQK5+Eq5CkHBQe58crV/zuD/3UytP67c1E1mobhIttZ8yxD 0xud5lDuGKvldpYdpG+Lc7+Ehjc072OlkF1PXjiz5zANMWRKkB/Q32NpfE1QLqstV/mn31Osjn3n6 VRyzKSH6zWnuCTR7APmVF6c9j/aCS0XMx4ZFYevUHXsEvs1TRpXE/Z5bHaJ8megMparDdVllGKTuB zJshm/1Q==; Received: from wrigleys.postgresql.org ([2a02:16a8:dc51::60]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wzSS9-007yxU-0J for pgsql-docs@lists.postgresql.org; Thu, 27 Aug 2026 05:15:05 +0000 Received: from localhost ([127.0.0.1] helo=wrigleys.postgresql.org) by wrigleys.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1wzSS7-000000044YE-3NR3 for pgsql-docs@lists.postgresql.org; Thu, 27 Aug 2026 05:15:03 +0000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: 4.1. Lexical Structure To: pgsql-docs@lists.postgresql.org From: PG Doc comments form Cc: y.saburov@gmail.com Reply-To: y.saburov@gmail.com, pgsql-docs@lists.postgresql.org Date: Thu, 27 Aug 2026 05:14:33 +0000 Message-ID: <178780767380.2606572.13379338852408472630@wrigleys.postgresql.org> X-Auto-Response-Suppress: All Auto-Submitted: auto-generated List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/18/sql-syntax-lexical.html Description: Why repeat information within the same section? In Section 4.1.1, =E2=80=9CIdentifiers and Keywords=E2=80=9D: >> The option with identifiers in quotation marks allows you to include escaped Unicode characters identified by their code points. This option begins with U& (an uppercase or lowercase U followed by an ampersand) immediately before the opening double quotation mark, with no spaces between them, for example, U&=E2=80=9Cfoo=E2=80=9D. (Note that this creates ambigui= ty regarding the & operator. To avoid this problem, use spaces around the operator.) Inside the quotation marks, Unicode characters can be specified in escaped form by writing a backslash followed by the character=E2=80=99s four-digit hexadeci= mal code, or, alternatively, a backslash followed by a plus sign, followed by the character=E2=80=99s six-digit hexadecimal code. For example, the identifier= =E2=80=9Cdata=E2=80=9D can be written as follows: > U&=E2=80=9Cd\0061t\+000061=E2=80=9D ... .... This information, along with examples, is also provided in Section 4.1.2.3. String Constants with Escaped Unicode Characters >> PostgreSQL also supports another type of string escape syntax that allows you to specify arbitrary Unicode characters by code point. A Unicode-escaped string constant begins with U& (an uppercase or lowercase U followed by an ampersand) immediately before the opening quote, with no spaces between them, for example, U&=E2=80=9Cfoo=E2=80=9D. (Note that this creates ambigui= ty with the & operator. To avoid this problem, use spaces around the operator.) Inside the quotes, Unicode characters can be specified in escaped form by writing a backslash followed by the four-digit hexadecimal code of the character, or, alternatively, a backslash followed by a plus sign, followed by the six-digit hexadecimal code of the character. For example, the string =E2=80= =9Cdata=E2=80=9D can be written as follows: > U&'d\0061t\+000061' ... ....