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 1w78IO-004zZ3-27 for pgsql-docs@arkaria.postgresql.org; Mon, 30 Mar 2026 08:48:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w78IN-002IMw-0M for pgsql-docs@arkaria.postgresql.org; Mon, 30 Mar 2026 08:48:27 +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 1w78IM-002IMo-2k for pgsql-docs@lists.postgresql.org; Mon, 30 Mar 2026 08:48:27 +0000 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w78IK-00000001xtY-2b7s for pgsql-docs@postgresql.org; Mon, 30 Mar 2026 08:48:26 +0000 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-40ede943bf0so2638422fac.2 for ; Mon, 30 Mar 2026 01:48:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774860503; cv=none; d=google.com; s=arc-20240605; b=Ad8seFoKDh5/WGlxemUJSlEi4W3AjWCvP7OYTV1fxGHcCP/T6sxqQjTJQ5E+A/l3Ta DM9asHVGqiEN0i+MifOLMmj82PxOp+vAfGT41ZqDaeGL0N1XXIyS39EH5f46nNWLyaGN gM9f4/709hkT9NxhOurlBoNXc2J6eUUlhEARgdWT6k3RG9mbw4RrKkmZ/XCcnI69Bj8o mjiU65PvF2A7hKXHzjKzs9WIXXn7LYCshjENIt/5ZPsIt3FqcO+9EseSwMMgOHp+JSUu tMDx0iwgWaxT38qDtU4kg34iVA/XK1kSal5s3xp1iE55YSvg869azCLubiM0s5hyvDSG xKtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=KFENYbPf9i2/y2hcvoYFUpmLyqFX0xVRddPK76eU2qI=; fh=OWMHlbEOonf7IEcS5OZ/HjBAxMpN3ASeEDo7Gz0voN8=; b=F2AWxtE8wBaE51JVfKR3qfJr49h9sbiGCKvFiDyXl1VDAl3N41ZbVlJjjbKtFTXlkv kuBemVDlJW32yU9RHvu3quyZUTkEQqIcVXnb71fmm+EsqNbbDRWT5tQW/mGU8lImvaua tgjJYoemD4N42aypubkSVQuZR3mRb45grn77RC/C/C1t9x07G/28U+gfbAK6XyQjoQY8 Jo+8G2w6ZC3BmRd/ktFfGSUowqp8Y/x/jcsGbN+9c0LTY5W6UfoxHnPJPMc592H3TVoe R5tpKgVDsEmLgzqypTf0WFCjHPNgd5gIB6A9/9E894Nb1/UKZIMbDer+dxEUW8pXc+wx +aRg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774860503; x=1775465303; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=KFENYbPf9i2/y2hcvoYFUpmLyqFX0xVRddPK76eU2qI=; b=eDklS9xMTV5Qn0C/D/h5lTgPEZSi8aRKZ/NNrh4WV06TzbnWMgI+bNPrh+NvJe7X7F YhieeZQwVWC1KKgZaQZHJBUGRyhzg3YQ3yh5SSoOYffi2z21iGdv8NCx3IUrj00/NEzd RdmMtXeZRyRobGJiPWma4aAun325LrwiDDbISsj51lZ7sPGH4CtyPYoXCoQb3F3tG/iQ PN8kWIjkYM1tRA/MyCkrdFxVjjBgdKlc4ZXp0aTXljbbK7sH0KWuToDYDz3Q1+OrO0kV 3O/Tcm4HT3pk2maxY7WehEoOY77Y5mxLJlgkULrbwz+8nwaLFiFBCdXM7GlcbS/7RGaO /tdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774860503; x=1775465303; h=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=KFENYbPf9i2/y2hcvoYFUpmLyqFX0xVRddPK76eU2qI=; b=WBDbnp4+VcuCJ25A6Q3MNmEU//633unTCZhoMN/40Yl558wbyE1q5gmvT0XQ5uAEBq 84fmBCwTo3DXGTZBH9NwK3d0ML3dAD9VkiEJz5t59sxGXnEsFwdrXCkXjgiTqwjVgxzt XL+fMY7P9nwf9Qna2Oxlr+HkH4Q0tIqYlKRxOOq5bvcIhXGjhjVQiW+CEIER6b1Cgahe /OZNDpJishKychZ5wiMD0qT3pIkR3XJ+3UePSKXB00JoklZKBpBw1o7/+GH02rXA1bmQ JLpW3TfwvA8MsA4C7uPrbOw6PbGZOy3yFF+bm/n5P0948FtmJtMK/a8xkGfFezLltBms 6Y+A== X-Gm-Message-State: AOJu0YzoSPWu44c26b0VjWmg2w1tHRye4oLKDXrbe1ZhK9SpItV023+a tVqH3r/fOiZlok0V/1ueEpLEVCTKAQZS2R4vnwC9AB8lZFRyjpeMb9KS4KUD9CQzfTSCYHvpy2b 3mtsV5qjx1D7naJlPeM7pcL9LkqpUmmoj6AhG X-Gm-Gg: ATEYQzz8Pmr12bSk+1Azx33LLtjxG7+Cb1Jw1Vya9tr1B8VudKAc9mOH8ALi0kcN1Gm o4pT8j0BPwKlivF/L7DO7EOkp/HSs+Safut/Y75kb72Vyp6OPytmxsWQQJ3kZvzKfoHRCsgE57l mO/pviMBDN2gbopHOqnOa4aaN9QYRm2Zw40B0rwe63fWbvgqxPWpRdqLXAjpupZg9vStrxMq1od rD1ur2iAt1Bb+XIhdk0ZlzebQWVSjXvRnvtc8VEXB8ppsodIeWsjeKwyU+VFbglwrnN+DffUPH+ 44yJWWlm X-Received: by 2002:a05:6871:890f:b0:41c:d38:f3c5 with SMTP id 586e51a60fabf-41cec2d62a2mr5987335fac.40.1774860503349; Mon, 30 Mar 2026 01:48:23 -0700 (PDT) MIME-Version: 1.0 From: Hiroki Takamatsu Date: Mon, 30 Mar 2026 17:48:10 +0900 X-Gm-Features: AQROBzDgJSxl6HVUm51GdnETl-LfgsYJgq0RrQQr2By9rW1M4iAnkoZn_XHqM50 Message-ID: Subject: Doc: clarify pg_locks descriptions of classid/objid/objsubid To: pgsql-docs@postgresql.org Content-Type: multipart/mixed; boundary="000000000000d41279064e39e9a2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d41279064e39e9a2 Content-Type: multipart/alternative; boundary="000000000000d41277064e39e9a0" --000000000000d41277064e39e9a0 Content-Type: text/plain; charset="UTF-8" Hi hackers, It seems that the descriptions of classid, objid, and objsubid in the pg_locks documentation are not quite accurate for all lock types. The documentation currently says these columns are null if the lock target is not a general database object. However, pg_lock_status() (lockfuncs.c) also populates these columns for other lock types, including advisory locks, speculative insertion locks, and apply transaction locks. The detailed prose below the table already describes some of these uses, so the table entries and the prose seem to be inconsistent. The attached patch: 1. rewrites each column description to scope it to the general database object case, instead of making a false claim about NULL behavior for all other lock types; 2. adds a pointer to the detailed per-lock-type prose below; and 3. documents that apply transaction locks show the subscription OID in objid. I chose not to enumerate all non-object lock types in the column descriptions, since that seemed easy to let drift again as new lock types are added. Do you think? Regards, Hiroki Takamatsu --000000000000d41277064e39e9a0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi hackers,

It seems that the descriptions of class= id, objid, and objsubid in the
pg_locks documentation are not quite accu= rate for all lock types.
The documentation currently says these columns = are null if the lock
target is not a general database object.
However= , pg_lock_status() (lockfuncs.c) also populates these columns
for other= lock types, including advisory locks,
speculative insertion locks, and= apply transaction locks.
The detailed prose below the table already des= cribes
some of these uses, so the table entries and the prose seem to b= e
inconsistent.

The attached patch:

1. rewrites each colum= n description to scope it to the general database
=C2=A0 =C2=A0object ca= se, instead of making a false claim about NULL behavior for
=C2=A0 =C2= =A0all other lock types;
2. adds a pointer to the detailed per-lock-type= prose below; and
3. documents that apply transaction locks show the sub= scription OID in
=C2=A0 =C2=A0objid.

I chose not to enumerate all= non-object lock types in the column
descriptions, since that seemed ea= sy to let drift again as new lock
types are added.

Do you think?<= br>
Regards,
Hiroki Takamatsu

--000000000000d41277064e39e9a0-- --000000000000d41279064e39e9a2 Content-Type: application/octet-stream; name="0001-clarify-pg_locks-descriptions-of-classid-objid-objsu.patch" Content-Disposition: attachment; filename="0001-clarify-pg_locks-descriptions-of-classid-objid-objsu.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mncwbuzc0 RnJvbSBiMjQ0MTI5YzJlYzc3YWE5NmJlNDIzZDZlODU5YzI5ZjFlMzE5YjBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogSGlyb2tpIFRha2FtYXRzdSA8aGlyb2tpLnRha2FtYXRzdS5t eUBnbWFpbC5jb20+DQpEYXRlOiBNb24sIDMwIE1hciAyMDI2IDA3OjEzOjI1ICswMDAwDQpTdWJq ZWN0OiBbUEFUQ0hdIGNsYXJpZnkgcGdfbG9ja3MgZGVzY3JpcHRpb25zIG9mIGNsYXNzaWQvb2Jq aWQvb2Jqc3ViaWQNCg0KLS0tDQogZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sIHwgMjEg KysrKysrKysrKysrKy0tLS0tLS0tDQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyks IDggZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdz LnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwNCmluZGV4IDllZTFhMmJmYzZh Li5hNzIyOTU4MDFiNyAxMDA2NDQNCi0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dt bA0KKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sDQpAQCAtMTkwNSw4ICsxOTA1 LDkgQEAgQU5EIGMxLnBhdGhbYzIubGV2ZWxdID0gYzIucGF0aFtjMi5sZXZlbF07DQogICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1l PnBnX2NsYXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+KQ0KICAgICAgIDwvcGFyYT4NCiAgICAgICA8cGFyYT4NCi0gICAgICAgT0lEIG9mIHRoZSBz eXN0ZW0gY2F0YWxvZyBjb250YWluaW5nIHRoZSBsb2NrIHRhcmdldCwgb3IgbnVsbCBpZiB0aGUN Ci0gICAgICAgdGFyZ2V0IGlzIG5vdCBhIGdlbmVyYWwgZGF0YWJhc2Ugb2JqZWN0DQorICAgICAg IEZvciBhIGdlbmVyYWwgZGF0YWJhc2Ugb2JqZWN0LCB0aGUgT0lEIG9mIHRoZSBzeXN0ZW0gY2F0 YWxvZw0KKyAgICAgICBjb250YWluaW5nIHRoZSBsb2NrIHRhcmdldC4NCisgICAgICAgVGhpcyBj b2x1bW4gaXMgYWxzbyB1c2VkIGZvciBvdGhlciBsb2NrIHR5cGVzOyBzZWUgYmVsb3cuDQogICAg ICAgPC9wYXJhPjwvZW50cnk+DQogICAgICA8L3Jvdz4NCiANCkBAIC0xOTE2LDggKzE5MTcsOSBA QCBBTkQgYzEucGF0aFtjMi5sZXZlbF0gPSBjMi5wYXRoW2MyLmxldmVsXTsNCiAgICAgICAgKHJl ZmVyZW5jZXMgYW55IE9JRCBjb2x1bW4pDQogICAgICAgPC9wYXJhPg0KICAgICAgIDxwYXJhPg0K LSAgICAgICBPSUQgb2YgdGhlIGxvY2sgdGFyZ2V0IHdpdGhpbiBpdHMgc3lzdGVtIGNhdGFsb2cs IG9yIG51bGwgaWYgdGhlDQotICAgICAgIHRhcmdldCBpcyBub3QgYSBnZW5lcmFsIGRhdGFiYXNl IG9iamVjdA0KKyAgICAgICBGb3IgYSBnZW5lcmFsIGRhdGFiYXNlIG9iamVjdCwgdGhlIE9JRCBv ZiB0aGUgbG9jayB0YXJnZXQgd2l0aGluDQorICAgICAgIGl0cyBzeXN0ZW0gY2F0YWxvZy4NCisg ICAgICAgVGhpcyBjb2x1bW4gaXMgYWxzbyB1c2VkIGZvciBvdGhlciBsb2NrIHR5cGVzOyBzZWUg YmVsb3cuDQogICAgICAgPC9wYXJhPjwvZW50cnk+DQogICAgICA8L3Jvdz4NCiANCkBAIC0xOTI2 LDExICsxOTI4LDEyIEBAIEFORCBjMS5wYXRoW2MyLmxldmVsXSA9IGMyLnBhdGhbYzIubGV2ZWxd Ow0KICAgICAgICA8c3RydWN0ZmllbGQ+b2Jqc3ViaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQy PC90eXBlPg0KICAgICAgIDwvcGFyYT4NCiAgICAgICA8cGFyYT4NCi0gICAgICAgQ29sdW1uIG51 bWJlciB0YXJnZXRlZCBieSB0aGUgbG9jayAodGhlDQorICAgICAgIEZvciBhIGdlbmVyYWwgZGF0 YWJhc2Ugb2JqZWN0LCB0aGUgY29sdW1uIG51bWJlciB0YXJnZXRlZCBieSB0aGUNCisgICAgICAg bG9jayAodGhlDQogICAgICAgIDxzdHJ1Y3RmaWVsZD5jbGFzc2lkPC9zdHJ1Y3RmaWVsZD4gYW5k IDxzdHJ1Y3RmaWVsZD5vYmppZDwvc3RydWN0ZmllbGQ+IHJlZmVyIHRvIHRoZQ0KICAgICAgICB0 YWJsZSBpdHNlbGYpLA0KLSAgICAgICBvciB6ZXJvIGlmIHRoZSB0YXJnZXQgaXMgc29tZSBvdGhl ciBnZW5lcmFsIGRhdGFiYXNlIG9iamVjdCwNCi0gICAgICAgb3IgbnVsbCBpZiB0aGUgdGFyZ2V0 IGlzIG5vdCBhIGdlbmVyYWwgZGF0YWJhc2Ugb2JqZWN0DQorICAgICAgIG9yIHplcm8gaWYgdGhl IHRhcmdldCBpcyBzb21lIG90aGVyIGdlbmVyYWwgZGF0YWJhc2Ugb2JqZWN0Lg0KKyAgICAgICBU aGlzIGNvbHVtbiBpcyBhbHNvIHVzZWQgZm9yIG90aGVyIGxvY2sgdHlwZXM7IHNlZSBiZWxvdy4N CiAgICAgICA8L3BhcmE+PC9lbnRyeT4NCiAgICAgIDwvcm93Pg0KIA0KQEAgLTIwNTMsNyArMjA1 Niw5IEBAIEFORCBjMS5wYXRoW2MyLmxldmVsXSA9IGMyLnBhdGhbYzIubGV2ZWxdOw0KICAgPHBh cmE+DQogICAgQXBwbHkgdHJhbnNhY3Rpb24gbG9ja3MgYXJlIHVzZWQgaW4gcGFyYWxsZWwgbW9k ZSB0byBhcHBseSB0aGUgdHJhbnNhY3Rpb24NCiAgICBpbiBsb2dpY2FsIHJlcGxpY2F0aW9uLiBU aGUgcmVtb3RlIHRyYW5zYWN0aW9uIElEIGlzIGRpc3BsYXllZCBpbiB0aGUNCi0gICA8c3RydWN0 ZmllbGQ+dHJhbnNhY3Rpb25pZDwvc3RydWN0ZmllbGQ+IGNvbHVtbi4gVGhlIDxzdHJ1Y3RmaWVs ZD5vYmpzdWJpZDwvc3RydWN0ZmllbGQ+DQorICAgPHN0cnVjdGZpZWxkPnRyYW5zYWN0aW9uaWQ8 L3N0cnVjdGZpZWxkPiBjb2x1bW4uICBUaGUgT0lEIG9mIHRoZSBzdWJzY3JpcHRpb24gaXMNCisg ICBkaXNwbGF5ZWQgaW4gdGhlIDxzdHJ1Y3RmaWVsZD5vYmppZDwvc3RydWN0ZmllbGQ+IGNvbHVt bi4NCisgICBUaGUgPHN0cnVjdGZpZWxkPm9ianN1YmlkPC9zdHJ1Y3RmaWVsZD4NCiAgICBkaXNw bGF5cyB0aGUgbG9jayBzdWJ0eXBlIHdoaWNoIGlzIDAgZm9yIHRoZSBsb2NrIHVzZWQgdG8gc3lu Y2hyb25pemUgdGhlDQogICAgc2V0IG9mIGNoYW5nZXMsIGFuZCAxIGZvciB0aGUgbG9jayB1c2Vk IHRvIHdhaXQgZm9yIHRoZSB0cmFuc2FjdGlvbiB0bw0KICAgIGZpbmlzaCB0byBlbnN1cmUgY29t bWl0IG9yZGVyLg0KLS0gDQoyLjQ3LjMNCg== --000000000000d41279064e39e9a2--