]> granicus.if.org Git - postgresql/commit
Eliminate xmin from hash tag for predicate locks on heap tuples.
authorKevin Grittner <kgrittn@postgresql.org>
Mon, 7 Oct 2013 19:05:26 +0000 (14:05 -0500)
committerKevin Grittner <kgrittn@postgresql.org>
Mon, 7 Oct 2013 19:05:26 +0000 (14:05 -0500)
commit556e6d0ba33388e8e230f11c88d3df25be79bb37
treeb4da22869d92c5ec26fde2c858486d1f4ea75c42
parent6ed3c5f7b2846be9e176ea1c99b2d45bba0d6972
Eliminate xmin from hash tag for predicate locks on heap tuples.

If a tuple was frozen while its predicate locks mattered,
read-write dependencies could be missed, resulting in failure to
detect conflicts which could lead to anomalies in committed
serializable transactions.

This field was added to the tag when we still thought that it was
necessary to carry locks forward to a new version of an updated
row.  That was later proven to be unnecessary, which allowed
simplification of the code, but elimination of xmin from the tag
was missed at the time.

Per report and analysis by Heikki Linnakangas.
Backpatch to 9.1.
src/backend/storage/lmgr/predicate.c
src/include/storage/predicate_internals.h