Re: Faulty HEAP_XMAX_LOCK_ONLY & HEAP_KEYS_UPDATED hintbit combination

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: Mahendra Singh Thalor <mahi6run@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-02-23T20:47:33Z
Lists: pgsql-hackers
On 2021-Feb-05, Julien Rouhaud wrote:

> Thanks, that's way better, copied in v3.

Thank you, pushed.  The code changes are only relevant in master, but I
did back-patch the README.tuplock to all live branches.

> I'm still a bit worried about that description though, as that flag
> isn't consistently set for the FOR UPDATE case.  Well, to be more
> precise it's maybe consistently set when the hint bits are computed,
> but in some cases the flag is later cleared, so you won't reliably
> find it in the tuple.

Is that right?  I think compute_new_xmax_infomask would set the bit to
infomask2_old_tuple (its last output argument) if it's needed, and so
the bit would find its way to infomask2 eventually.  Do you have a case
where it doesn't achieve that?

-- 
Álvaro Herrera       Valdivia, Chile
"E pur si muove" (Galileo Galilei)



Commits

  1. Reinstate HEAP_XMAX_LOCK_ONLY|HEAP_KEYS_UPDATED as allowed