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 1w71ZP-004sok-0g for pgsql-docs@arkaria.postgresql.org; Mon, 30 Mar 2026 01:37:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w71ZN-000QfG-2U for pgsql-docs@arkaria.postgresql.org; Mon, 30 Mar 2026 01:37:34 +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 1w71ZN-000Qf8-1n for pgsql-docs@lists.postgresql.org; Mon, 30 Mar 2026 01:37:33 +0000 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w71ZL-00000001ugY-0voM for pgsql-docs@lists.postgresql.org; Mon, 30 Mar 2026 01:37:33 +0000 Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-67e09232daeso2381888eaf.2 for ; Sun, 29 Mar 2026 18:37:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774834649; cv=none; d=google.com; s=arc-20240605; b=ZjTBxjhY7tU0ZRatxoS0uV8AaQHgbJwHe9B8RFN6HIwPWOAlNZEUTmZp0sd/MzWQ6m 0PSHok9J6+vWT3vzb553RxTpzcXcjoSJ91wtqfX7/8lhxqXDSqI+/C4Oh4L33XjIGQDC BebuywAt8lL2XzklFrYDJzpVzCaiyYhy48WAArXUVcTAKvpez3VTPP1La4qmwRAjyoNb f8aG5/XAN4aitZtxT59JD+mCgpxpH9Wvnq7mdW+IPdcl86u9/8pfimKrhaAZ43vDwNCl zXCeI1nt29IlCSgIVwPJ0H+sSdyE1z0Fn7c+LXWNEtSc6gNfwqnsy2iwUeQwcaQV1tKh 9HoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Vs2+eOyXrNw6J/gjc5P8QrYEE5jvzo+9r69r3ROkqgA=; fh=IcOhHDXCdlw4DyxBwOBcqB+zZXBxSViYxMBGR5hmwqo=; b=BlJ0saUiHfmYrWG7mm9bA/9GrnUYf2uZDmS3cXqepqBPwGc8k/AobP0DMzGv3ehCvP pIEBU7Myi3i+Eesc9FmxOKR/R7PIiOn6FB3adqKsvLXyxYg5YFAASXtH2x81sUhh9Gww i0NkWO5a1YmwyZWSO9xGjhrR4a3eTzOrInudIblMTN4x328Q7lELL4RVTtjgZ7By5PKJ AiHTf44j/1HiidhpbCX2Ola7SlRXWo5imJMxg1pReWYaed+m12t/t7wTBwfetnCGZHTE ljJKRx3+YuwiSVNjYviVTN5bZBZx8top5A3n8y0GViV2nTQpTqKJapu7No3b2qObh7bB uiHA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1774834649; x=1775439449; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Vs2+eOyXrNw6J/gjc5P8QrYEE5jvzo+9r69r3ROkqgA=; b=aKyNx0UgHtXL1bASSo/IiPGZv6kwcY4f/sPwr1hnGHwKAZFYxhLJnsVQ0/LEw3lzyC K+Mh9GXnMYc2LKi+wgaDb7vvUosGuRen5BOtL0GOkou6ywjFWjid+VJoA1A+j5dyvIc4 YupzCEmGxHS5pIulkrAp4wJFklRNIzwseJZZwbHa4fE/xKadTuNslFpRXqV/LL8Z6LsG +z9nNualAw2Vs+t8mnvE2eVa32fFCHDvFz+4PKxgJ71sFhinQ4pXhkBGWNlBwgpham0M c8NWTYC63ePUYf/NdhLT9jcWs5Rj0xzznIYbqkepQNGikNy4J/zO6+6z3o8htw3dWgSA OTbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774834649; x=1775439449; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Vs2+eOyXrNw6J/gjc5P8QrYEE5jvzo+9r69r3ROkqgA=; b=N+ks8ip06H3rMxleCwllbSqdtsScTPFFt3NXXUmAV7h8qGu45O/YP7x1IDEk4Sqm8a kgVTOk76A++k/Z+8HraAl7CEScAiLG8nAEnqN4Zb8ERoHjz1JDVbWDWsTlrzPt/HMA0H SEwhf0B+RJoZbwJERYhMSdDkYdM2pn8yItYTXSWJAZRRcR/JY4IQTVJbjLbCP0yTcBpY j4NKmMhyvCpsN9Nc0Tgl67Fzx+WDPPVFfRm5hpRa745EEnbhZuJ74AoYZYg67Yvwqzjh 0pXianAf+x9Yp5Ihi7Yp+3TXOHzQLACIpjfioMYZhq6HW9IMxrc3W5KIMnw9QSzNOXl9 YiAQ== X-Gm-Message-State: AOJu0YzlUMqXoPFpNH+KClKa8FS88F7WLJYOr4tGnlo7nexCUEqvkiH4 sgYF8+wgUYX97NUExCzhYAw0kYqWYsZiXJQECBu5OuGmJZpWLRky/v3cv970crxjBNY4gH84g2o gU9ygoZi9tx0xnnnwmxvl2F7PzJtJj6syTZaLBAp3sPP9GIalpH9jlUY= X-Gm-Gg: ATEYQzzo5yIQkXE0tbKo/mRd/1s6eJycypsEwC6A3eraGMR8ZovvNWuuC0nN9yQRXKy fw9XsFmG2bvPtu5BMdd+RgPQG67s5P9Jdn/P7GwXErtLHeRWblZwwnWCyUqlGha6HVahyL0CNr2 cxksPA8wWvU+gLQh+sSCiSQYBQ9AZ/rkEDTQIN6AarDycObXd+wIyoQtglaZsxw0bDskk8jsjLP JN5TCEWtyMGkaFXKDJYXUafwZ0z6nBDPiMw6GCcC79F6nTj94o+meWm6Bjj0ng45jySwxye4n0e lrhpcYrS X-Received: by 2002:a05:6820:2911:b0:67e:3709:bfe8 with SMTP id 006d021491bc7-67e3709c075mr30220eaf.51.1774834649634; Sun, 29 Mar 2026 18:37:29 -0700 (PDT) MIME-Version: 1.0 References: <1857026.1774813531@sss.pgh.pa.us> In-Reply-To: <1857026.1774813531@sss.pgh.pa.us> From: Paul A Jungwirth Date: Sun, 29 Mar 2026 18:37:18 -0700 X-Gm-Features: AQROBzCNE02fPyWpfOqrZRpHRfyVaWa1FSsoa6BHHplFSynrEdZcy4Sa3u_UMBk Message-ID: Subject: Re: cmax docs seem misleading To: Tom Lane Cc: pgsql-docs@lists.postgresql.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, Mar 29, 2026 at 12:45=E2=80=AFPM Tom Lane wrote= : > > Paul A Jungwirth writes: > > The docs for cmax say:[0] > >> The command identifier within the deleting transaction, or zero. > > > This was true once upon a time, I think. But nowadays cmax and cmin > > are the same physical field, and the user-facing system columns don't > > seem to be trying to interpret it. > > Yeah, this is a mess. Nobody ever updated this text when we decided we > could pack those fields into one. I think it would be better to do > what you suggest: > > > ... And maybe we should be more drastic: combine cmin & > > cmax into one entry, and explain that they are two names for the same > > value, which might signify the insert cid, the delete cid, or a > > combocid. > > I'm not sure about good wording, but maybe like > > cmin, cmax: > > Originally, cmin and cmax were separate fields. cmin was the > inserting command's command identifier within the inserting > transaction, while cmax was the updating or deleting command's > command identifier within the updating/deleting transaction, or > zero if no update or delete attempt had occurred yet. Nowadays > these system columns refer to the same field and will always read > as the same value. That might be the inserting command's command > identifier, or the deleting command's command identifier, or a > "combocid" that reflects both actions when those happened in the > same transaction. > > I don't know if we want to go into any more detail than that. I agree that is plenty of detail for user-facing documentation. I think your suggested text is a big improvement. Yours, --=20 Paul ~{:-) pj@illuminatedcomputing.com