public inbox for [email protected]
help / color / mirror / Atom feedFrom: Nathan Bossart <[email protected]>
To: Tom Lane <[email protected]>
Cc: Aleksander Alekseev <[email protected]>
Cc: Amit Langote <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: The documentation for READ COMMITTED may be incomplete or wrong
Date: Thu, 18 May 2023 12:51:23 -0700
Message-ID: <20230518195123.GA3362715@nathanxps13> (raw)
In-Reply-To: <[email protected]>
References: <CAJ7c6TMBTN3rcz4=AjYhLPD_w3FFT0Wq_C15jxCDn8U4tZnH1g@mail.gmail.com>
<[email protected]>
<[email protected]>
On Thu, May 18, 2023 at 11:22:54AM -0400, Tom Lane wrote:
> Ugh. Bisecting says it broke at
>
> 86dc90056dfdbd9d1b891718d2e5614e3e432f35 is the first bad commit
> commit 86dc90056dfdbd9d1b891718d2e5614e3e432f35
> Author: Tom Lane <[email protected]>
> Date: Wed Mar 31 11:52:34 2021 -0400
>
> Rework planning and execution of UPDATE and DELETE.
>
> which was absolutely not supposed to be breaking any concurrent-execution
> guarantees. I wonder what we got wrong.
With the reproduction steps listed upthread, I see that XMAX for both
tuples is set to the deleting transaction, but the one in inh_child_2 has
two additional infomask flags: HEAP_XMAX_EXCL_LOCK and HEAP_XMAX_LOCK_ONLY.
If I add a third table (i.e., inh_child_3), XMAX for all three tuples is
set to the deleting transaction, and only the one in inh_child_3 has the
lock bits set. Also, in the three-table case, the DELETE statement reports
"DELETE 2".
--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com
view thread (5+ messages)
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: The documentation for READ COMMITTED may be incomplete or wrong
In-Reply-To: <20230518195123.GA3362715@nathanxps13>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox