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 1v955S-009fNH-8H for pgsql-docs@arkaria.postgresql.org; Wed, 15 Oct 2025 17:14:53 +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 1v955Q-007N91-Sk for pgsql-docs@arkaria.postgresql.org; Wed, 15 Oct 2025 17:14:51 +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 1v955Q-007N8t-IL for pgsql-docs@lists.postgresql.org; Wed, 15 Oct 2025 17:14:51 +0000 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v955N-001w7N-1a for pgsql-docs@lists.postgresql.org; Wed, 15 Oct 2025 17:14:50 +0000 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2907948c1d2so31734775ad.3 for ; Wed, 15 Oct 2025 10:14:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1760548488; x=1761153288; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:from:to:cc:subject:date:message-id:reply-to; bh=Q6dxPqY+36aghDweZV1lPg2+DzgNyXKBS7k5bXmMyRs=; b=rv/omNyNv9abDRIDKBTpWE3sBybhzP7HIoqzESS8Yoq1RO5cMx4QoobjMjogIhPzMI Z8uX/au/HuTbkr4DJjl9HOu9JFIf4nCG1zV9JUFTkyOXv4ay59e0O3QESto1QEBHstGf HWOlnI9cEsYwBzhAPIUbtKbN1cohgWEr7bm6VB6sNPrmdNVbRuiQJlaXmZiSWjyt/FyK A5UHefze3HCW1dxlrDKHHKHWA4lb5dUGnslCUffVBCozXECzhyrsgTxdhy0InlwOpc9G tQ1oyfpIA0f4qOz8/Qj2aMUWvoPxBN25MQV8oEx0oxLhmbJCt9CwCahPRMW8Ma1Y6z0y A5Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760548488; x=1761153288; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Q6dxPqY+36aghDweZV1lPg2+DzgNyXKBS7k5bXmMyRs=; b=qO+z13y+ad1et4j15BarAhgulaogI0WR0fFZn5fJ/kHGXF14uzK/SDDghHNL1sBXnU irLK+6ucBTg/AVfzvzTA9Ry8zTpIpHhnzC1oJjGGVwLt9rHetJ3PltsPPgPRpQj9wtyc E4S6K6ru2UifH6F7i4lMZMf/sDXgrprYXVwppHvkG03WPeat9FTaz9Yhi/5SIbMFtHb5 U8w/os52bJ+kKAdZwsSDw/t2hNl/13e8iHCPpOZ3J5XeGCi3SeQ5UsLLIGEPU7+xQh/m sr+WqjELtLJ1lZh4tCiR2sXzMIw5nkcqoYshSX5XFAMga2J1LEJuuczki8c8+mHJPp0w 3P1A== X-Forwarded-Encrypted: i=1; AJvYcCX5dFsIXN6vKh4m+N7plA/r/dlFL/mzItRTbi45G9gi21CMoQqLswGGOuTjLLWeFHcoNvW57B5wJ223@lists.postgresql.org X-Gm-Message-State: AOJu0YzkzL17lSsURlGHyMtzfWr/U9YBUzVU2MpTcO/3e6uS8Sxf9pFx EHy7LFc4CLKWXZiT780Hc6WA4i4Str3BpzvVT3al0A4m71JvmudUMoU0v8LiEV9ldg== X-Gm-Gg: ASbGncv8mc19qCjGotE/dULI7fg8UXiuy5nNuhmG2/1R76qHFvoY8ejw121HLNbGpzk YgwPoBfdJRzVxVvJWMsIElhPmlV6zaR1/0C63Su9bPIFPh1W38bO1rINvyctOnHJeHkXl5S/ShI Ik+XmceHDcMFzaVp/3S//KrIt5NAR1iR4d3wSZUSw2Sc/H03jUK1/EFOR4dD8LNWDjbWCm4gyTA A0fkeNfl3+tc23T+pmMopX8yBXeq83nS/C4aN0C+wtgX6Nzsv109PQMyKz0Zq5Wt4ZW2AjCvkab uySc8WqoNITOduPnmKWHPrnSortyX7OhyUmoucpykc/Z4c5l6TK0GOHF84JR/g5iYNrbzcfIjxZ JS7AMrOjqvuMBSSmEM1BNLgr+rrlyj6C4zC5dA1E8ULvH8eS/tnG54BOZSEgYiAXJzRPLu/R75u qmnMDiNCew+evvK/BRMfo= X-Google-Smtp-Source: AGHT+IG7XGCT/QtkJ6lZ4293wBSzR79PgGXUeiR2tW3o1DDjKDHG5nMaUPcMiVmn/1leS4bM+tN1FQ== X-Received: by 2002:a17:903:910:b0:28e:a70f:e879 with SMTP id d9443c01a7336-29027213361mr370137125ad.1.1760548488118; Wed, 15 Oct 2025 10:14:48 -0700 (PDT) Received: from jeff-ws-bridge.lan (c-24-7-19-3.hsd1.ca.comcast.net. [24.7.19.3]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2909930a72esm2060315ad.21.2025.10.15.10.14.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Oct 2025 10:14:47 -0700 (PDT) Message-ID: Subject: Re: BPCHAR description in 8.3. Character Types is misleading and incomplete From: Jeff Davis To: skatkovsky@gmail.com, pgsql-docs@lists.postgresql.org Date: Wed, 15 Oct 2025 10:14:46 -0700 In-Reply-To: <176044409338.770.16064383081308443747@wrigleys.postgresql.org> References: <176044409338.770.16064383081308443747@wrigleys.postgresql.org> Content-Type: multipart/mixed; boundary="=-V3lh/Zt94PzJmLgkAAqL" User-Agent: Evolution 3.52.3-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-V3lh/Zt94PzJmLgkAAqL Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2025-10-14 at 12:14 +0000, PG Doc comments form wrote: > The description of BPCHAR in section 8.3. Character Types is > misleading and > incomplete. Hi, There was a previous discussion here: https://www.postgresql.org/message-id/E1odZyZ-0000g2-AE%40gemulon.postgresq= l.org > The first problem is that, contrary to table 8.4, BPCHAR is not > actually > blank-trimmed. The wording "as-if-blank-trimmed" or "blank-ignoring" > may be > better suited here. The following query explains the problem: Correct, it does not actually trim the blanks before storing. The paragraph below the table clarifies: "If bpchar lacks a length specifier, it also accepts strings of any length, but trailing spaces are semantically insignificant." I think "blank-insignificant" is slightly better than "blank-ignoring". > The second problem is that 'Tip' before the example 8.1 mentions only > three > types, also in a misleading way: 'There is no performance difference > among > these three types' - as if there were only 3, not 4 distinct types. Thank you. Please take a look at the attached patch. If you'd like your name included in the commit, please send it as you'd like it to appear. Regards, Jeff Davis --=-V3lh/Zt94PzJmLgkAAqL Content-Disposition: attachment; filename="bpchar-doc.patch" Content-Type: text/x-patch; name="bpchar-doc.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sIGIvZG9jL3NyYy9zZ21sL2Rh dGF0eXBlLnNnbWwKaW5kZXggYjgxZDg5ZTI2MDguLmVkOWMxY2JhMjExIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dt bApAQCAtMTE3OCw3ICsxMTc4LDcgQEAgU0VMRUNUICc1MjA5My44OSc6Om1vbmV5OjpudW1lcmlj OjpmbG9hdDg7CiAgICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5Pjx0 eXBlPmJwY2hhcjwvdHlwZT48L2VudHJ5PgotICAgICAgICA8ZW50cnk+dmFyaWFibGUgdW5saW1p dGVkIGxlbmd0aCwgYmxhbmstdHJpbW1lZDwvZW50cnk+CisgICAgICAgIDxlbnRyeT52YXJpYWJs ZSB1bmxpbWl0ZWQgbGVuZ3RoLCBibGFuay1pbnNpZ25pZmljYW50PC9lbnRyeT4KICAgICAgICA8 L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnk+PHR5cGU+dGV4dDwvdHlwZT48L2Vu dHJ5PgpAQCAtMTI5OCw3ICsxMjk4LDcgQEAgU0VMRUNUICc1MjA5My44OSc6Om1vbmV5OjpudW1l cmljOjpmbG9hdDg7CiAKICAgIDx0aXA+CiAgICAgPHBhcmE+Ci0gICAgIFRoZXJlIGlzIG5vIHBl cmZvcm1hbmNlIGRpZmZlcmVuY2UgYW1vbmcgdGhlc2UgdGhyZWUgdHlwZXMsCisgICAgIFRoZXJl IGlzIG5vIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgYW1vbmcgdGhlc2UgZm91ciB0eXBlcywKICAg ICAgYXBhcnQgZnJvbSBpbmNyZWFzZWQgc3RvcmFnZSBzcGFjZSB3aGVuIHVzaW5nIHRoZSBibGFu ay1wYWRkZWQKICAgICAgdHlwZSwgYW5kIGEgZmV3IGV4dHJhIENQVSBjeWNsZXMgdG8gY2hlY2sg dGhlIGxlbmd0aCB3aGVuIHN0b3JpbmcgaW50bwogICAgICBhIGxlbmd0aC1jb25zdHJhaW5lZCBj b2x1bW4uICBXaGlsZQo= --=-V3lh/Zt94PzJmLgkAAqL--