pgsql: Reinstate HEAP_XMAX_LOCK_ONLY|HEAP_KEYS_UPDATED as allowed

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

pgsql: Reinstate HEAP_XMAX_LOCK_ONLY|HEAP_KEYS_UPDATED as allowed

Álvaro Herrera
Reinstate HEAP_XMAX_LOCK_ONLY|HEAP_KEYS_UPDATED as allowed

Commit 866e24d47db1 added an assert that HEAP_XMAX_LOCK_ONLY and
HEAP_KEYS_UPDATED cannot appear together, on the faulty assumption that
the latter necessarily referred to an update and not a tuple lock; but
that's wrong, because SELECT FOR UPDATE can use precisely that
combination, as evidenced by the amcheck test case added here.

Remove the Assert(), and also patch amcheck's verify_heapam.c to not
complain if the combination is found.  Also, out of overabundance of
caution, update (across all branches) README.tuplock to be more explicit
about this.

Author: Julien Rouhaud <[hidden email]>
Reviewed-by: Mahendra Singh Thalor <[hidden email]>
Reviewed-by: Dilip Kumar <[hidden email]>
Discussion: https://postgr.es/m/20210124061758.GA11756@nol

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/bf518fefacc74a75d67a492ebee8d7a585989a34

Modified Files
--------------
src/backend/access/heap/README.tuplock | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)