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 1vbLxf-004Z9n-2t for pgsql-docs@arkaria.postgresql.org; Thu, 01 Jan 2026 16:55:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vbLxe-008ihf-2E for pgsql-docs@arkaria.postgresql.org; Thu, 01 Jan 2026 16:55:43 +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 1vbLxe-008ihU-0d for pgsql-docs@lists.postgresql.org; Thu, 01 Jan 2026 16:55:43 +0000 Received: from mail-vs1-xe30.google.com ([2607:f8b0:4864:20::e30]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vbLxd-003gHO-0e for pgsql-docs@lists.postgresql.org; Thu, 01 Jan 2026 16:55:42 +0000 Received: by mail-vs1-xe30.google.com with SMTP id ada2fe7eead31-5e186858102so4089018137.0 for ; Thu, 01 Jan 2026 08:55:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xzilla-net.20230601.gappssmtp.com; s=20230601; t=1767286539; x=1767891339; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=WWGtPCYBQDcJTdcsgQDC35moePJWH01ceUKKER2mIUQ=; b=Nj5lrTl7fZxxzO4H2wjnSxhWSXaeH+OVdXmQzNKS90yNqkYSvT8iQPRC5DDbWYZcYD kHSoCOqWXqRlkeWzJ3SRqjFKloV+jWqrKQHYcTdI9lnuL5s++6DSGb4nDaUM+oS38/YE Q2IlyfOoZZeL2382YOsuLWxnjf07GohTquOqq53egL+MyhTdsyKbjesJSv2FvcEvhtyg /gvZTrSD5xw5cDLspgzzwFyRx/n7jK6ke4iSWE/Gc8BCNjtfB4LEEQQEr0ttY+B69k3a gMzBBcc6lbM85H7cPluxNOTyWk3aRDEeO4i0kOK48laPXSBmWRYMPc49K6k8MdMbvUZC CKxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767286539; x=1767891339; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=WWGtPCYBQDcJTdcsgQDC35moePJWH01ceUKKER2mIUQ=; b=jWiZ+aHgs1vUdNiY5+7afx/EZkkOJfrbpMzPimgfwvgFFYlTfXQwvkC+vpZK2TS26A LCUf2HBAjBHr4sh+sQcpa0VUJUDA0RNW0kuH97AdOkHihNQMh2jBAmDvLgmcJziG+5Mu y5WW8AGkenEPpT9ANG9oKyE2s//7z26/0XW0HUvnHP1ZX0k+LhABWwpQGVaGeHfCko5a SCdbJKVj7YP5L11231pJ3s+5ER1ZUxEJF2nsPVmYaOaUmMFHWmOa9lKyxEU+NPCjYMWs 0/eVDsHRSAg4aidMSnWaJI9/OWGl9H2u0fXXkdHGHDKaq6LV/5UYbNd67LCr8kAtGqc+ 3DLQ== X-Gm-Message-State: AOJu0YwpiN86jl/eEVtFYYmbnBWFOm2CECtITahkdtvB9OP/nWcyd/0G IHD6I/Jg3FtQ/PsG1ImVKnNLzqW+W3VOJnsEgHdR1nXw5SFwoEiff90eaV1TA2iPY3hPcgMGjbc 7rQcK6bZKkrZMk9xp25xbxeGA+y154RNpOd1oesv1fMdbLmtacVnhiqE= X-Gm-Gg: AY/fxX75d/H88xK075FPjUoodLf+gCMjTgpz+4NbFBUrQyrw8OEAEBxtKIRh9LfY0/l Meiqaz8fdVgvqDUzVEmw0We08yANZVf+cEuJqePyZqZYd+X1n/u/XvPcBdfmWVmGry+7rD3dCuj SUVptemgWeqVWnqEFMiEWopQNMD2Do+MzoaoaHJOiXwPook6ZDqI4EG+H4+OGV4gug5iJryRaQk uULl/nCVNk3iYs+8pTVXBuZRZW42dX/4vF/Ub7/J8WlrfASYJ0+hrQeGgSDVHD/jzaKvpo= X-Google-Smtp-Source: AGHT+IEgXO4iQsMIADmHaDOpv/c8S8xiIYuSGXPGsO9FIuJTVT/1dvCMg3IiiFCepnKUPu0gsUZ4Q8d1HpAiOb/oIM0= X-Received: by 2002:a05:6102:ccf:b0:5e1:866c:4f8b with SMTP id ada2fe7eead31-5eb1a874ab5mr10276860137.44.1767286538789; Thu, 01 Jan 2026 08:55:38 -0800 (PST) MIME-Version: 1.0 From: Robert Treat Date: Thu, 1 Jan 2026 11:55:27 -0500 X-Gm-Features: AQt7F2ow9pP-P79nW_zxBFd2Sd-baT4vG7p4jh1XZ8RLnYetZgNgPaurgcPlGOU Message-ID: Subject: Fix improper xreflabels created for v18 release notes To: pgsql-docs@lists.postgresql.org Cc: Bruce Momjian Content-Type: multipart/mixed; boundary="0000000000005c96d006475676f1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005c96d006475676f1 Content-Type: text/plain; charset="UTF-8" Looking at https://www.postgresql.org/docs/current/xplang.html during a near by discussion, I was bothered that plpython was not formatting the same way as the other PL's listed on that page, so I went spelunking to see what had happened. It turns out that some xref labels were added during this commit (https://github.com/postgres/postgres/commit/d8aa21b74ff4e3d767c3344484c3cb22b9f0ec0d) in order to make the links more readable in the v18 release notes. However, based on the discussion here: https://www.postgresql.org/message-id/20200611223836.GA2507%40momjian.us, the correct way to style links from the release notes is through the tag, not by adding xrefs, which can have unintended side-effects in other places (like in the initial doc link above). This is a little tricky to fix as it needs to happen across 2 different branches, but I believe the right way to fix this involves 2 parts. First, apply patch 01, which converts the xrefs in the v18 release notes to link tags, against REL_18_STABLE, since those release notes don't exist on master. Second, either revert the original commit linked above, or apply the patch 02 which just undoes those changes. Note, I created the patch against master, but I think it should be applied there and back patched to 18 stable. Also note I did a quick scan to see if either the liboq or plpython xreflabel situation existed elsewhere but I only turned up one usage, at https://www.postgresql.org/docs/current/triggers.html, which is also corrected with these changes. Robert Treat https://xzilla.net --0000000000005c96d006475676f1 Content-Type: application/octet-stream; name="v1-0001-Replace-improper-use-of-xrefs-with-links.patch" Content-Disposition: attachment; filename="v1-0001-Replace-improper-use-of-xrefs-with-links.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjvo8t9f0 RnJvbSBhNGMxZjVjY2E0MjZmNDlhMGNlMTQwYTk0ZGZhOTM3NGVlNmExYjU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgVHJlYXQgPHJvYkB4emlsbGEubmV0PgpEYXRlOiBU aHUsIDEgSmFuIDIwMjYgMTE6Mzg6MTEgLTA1MDAKU3ViamVjdDogW1BBVENIIHYxXSBSZXBsYWNl IGltcHJvcGVyIHVzZSBvZiB4cmVmcyB3aXRoIGxpbmtzLgpDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9InV0Zi04IgoKLS0tCiBkb2Mvc3JjL3NnbWwvcmVsZWFzZS0xOC5zZ21sIHwg NiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlbGVhc2UtMTguc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWxlYXNlLTE4LnNnbWwKaW5kZXggZjM1MDgyODYxZTAuLjc0ODFmYWU1NzVjIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVsZWFzZS0xOC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWxl YXNlLTE4LnNnbWwKQEAgLTM4NzMsNyArMzg3Myw3IEBAIEF1dGhvcjogVG9tIExhbmUgPHRnbEBz c3MucGdoLnBhLnVzPgogICAgPC9zZWN0Mz4KIAogICAgPHNlY3QzIGlkPSJyZWxlYXNlLTE4LWxp YnBxIj4KLSAgICA8dGl0bGU+PHhyZWYgbGlua2VuZD0ibGlicHEiLz48L3RpdGxlPgorICAgIDx0 aXRsZT48bGluayBsaW5rZW5kPSJsaWJwcSI+TGlicHE8L2xpbms+PC90aXRsZT4KIAogICAgIDxp dGVtaXplZGxpc3Q+CiAKQEAgLTQ4NjAsOCArNDg2MCw4IEBAIEF1dGhvcjogUGV0ZXIgRWlzZW50 cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+CiAKICAgICAgPGxpc3RpdGVtPgogICAgICA8cGFy YT4KLSAgICAgQWRkIHN1cHBvcnQgZm9yIFB5dGhvbiAiTGltaXRlZCA8YWNyb255bT5BUEk8L2Fj cm9ueW0+IiBpbiA8eHJlZgotICAgICBsaW5rZW5kPSJwbHB5dGhvbiIvPiAoUGV0ZXIgRWlzZW50 cmF1dCkKKyAgICAgQWRkIHN1cHBvcnQgZm9yIFB5dGhvbiAiTGltaXRlZCA8YWNyb255bT5BUEk8 L2Fjcm9ueW0+IiBpbiA8bGluaworICAgICBsaW5rZW5kPSJwbHB5dGhvbiI+UEwvUHl0aG9uPC9s aW5rPiAoUGV0ZXIgRWlzZW50cmF1dCkKICAgICAgPHVsaW5rIHVybD0iJmNvbW1pdF9iYXNldXJs OzcyYTNkMDQ2MiI+JnNlY3Q7PC91bGluaz4KICAgICAgPHVsaW5rIHVybD0iJmNvbW1pdF9iYXNl dXJsOzA3OTNhYjgxMCI+JnNlY3Q7PC91bGluaz4KICAgICAgPC9wYXJhPgotLSAKMi4yNC4zIChB cHBsZSBHaXQtMTI4KQoK --0000000000005c96d006475676f1 Content-Type: application/octet-stream; name="v1-0002-Remove-libpq-plpython-xreflabel-from-chapter-tags.patch" Content-Disposition: attachment; filename="v1-0002-Remove-libpq-plpython-xreflabel-from-chapter-tags.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjvom2c71 RnJvbSAyZGE4YjY3ZjYzYTRjNDg4ZTVkZTZhNzE4MjA0ZTU0YzE3NGQ2MjIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgVHJlYXQgPHJvYkB4emlsbGEubmV0PgpEYXRlOiBU aHUsIDEgSmFuIDIwMjYgMTE6NDM6MjcgLTA1MDAKU3ViamVjdDogW1BBVENIIHYxXSBSZW1vdmUg bGlicHEvcGxweXRob24geHJlZmxhYmVsIGZyb20gY2hhcHRlciB0YWdzCkNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiCgpUaGlzIGVzc2VudGlhbGx5IHJldmVydHMgdGhl IGNoYW5nZXMgbWFkZSBpbiBkOGFhMjFiLCB3aGljaCB3ZXJlIGFkZGVkIGZvcgp0aGUgdmVyc2lv biAxOCByZWxlYXNlIG5vdGVzLCB3aGljaCBoYXZlIGJlZW4gdXBkYXRlZCBpbi1saW5lIGluCmEg c2VwZXJhdGUgY29tbWl0LgotLS0KIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgIHwgMiArLQog ZG9jL3NyYy9zZ21sL3BscHl0aG9uLnNnbWwgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbGli cHEuc2dtbCBiL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCmluZGV4IDdkMDU5MzhmZWRhLi5jMmNj MTMyNjA4MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2xpYnBxLnNnbWwKQEAgLTEsNiArMSw2IEBACiA8IS0tIGRvYy9zcmMvc2dtbC9saWJw cS5zZ21sIC0tPgogCi08Y2hhcHRlciBpZD0ibGlicHEiIHhyZWZsYWJlbD0ibGlicHEiPgorPGNo YXB0ZXIgaWQ9ImxpYnBxIj4KICA8dGl0bGU+PGFwcGxpY2F0aW9uPmxpYnBxPC9hcHBsaWNhdGlv bj4gJm1kYXNoOyBDIExpYnJhcnk8L3RpdGxlPgogCiAgPGluZGV4dGVybSB6b25lPSJsaWJwcSI+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGxweXRob24uc2dtbCBiL2RvYy9zcmMvc2dtbC9w bHB5dGhvbi5zZ21sCmluZGV4IGM0NDc0NTJiN2M1Li5jODYwYTQ3YTJlMSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3BscHl0aG9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscHl0aG9uLnNn bWwKQEAgLTEsNiArMSw2IEBACiA8IS0tIGRvYy9zcmMvc2dtbC9wbHB5dGhvbi5zZ21sIC0tPgog Ci08Y2hhcHRlciBpZD0icGxweXRob24iIHhyZWZsYWJlbD0iUEwvUHl0aG9uIj4KKzxjaGFwdGVy IGlkPSJwbHB5dGhvbiI+CiAgPHRpdGxlPlBML1B5dGhvbiAmbWRhc2g7IFB5dGhvbiBQcm9jZWR1 cmFsIExhbmd1YWdlPC90aXRsZT4KIAogIDxpbmRleHRlcm0gem9uZT0icGxweXRob24iPjxwcmlt YXJ5PlBML1B5dGhvbjwvcHJpbWFyeT48L2luZGV4dGVybT4KLS0gCjIuMjQuMyAoQXBwbGUgR2l0 LTEyOCkKCg== --0000000000005c96d006475676f1--