Avoid uselessly looking up old LOCK_ONLY multixacts
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 29 Jul 2014 19:41:06 +0000 (15:41 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 29 Jul 2014 19:41:06 +0000 (15:41 -0400)
commit05315498012530d44cd89a209242a243374e274d
tree0891fa0bfed656819ba4bf1383a7e670656f1c79
parentc2581794f37e76c910eb91f1bf1f1e581123abd6
Avoid uselessly looking up old LOCK_ONLY multixacts

Commit 0ac5ad5134f2 removed an optimization in multixact.c that skipped
fetching members of MultiXactId that were older than our
OldestVisibleMXactId value.  The reason this was removed is that it is
possible for multixacts that contain updates to be older than that
value.  However, if the caller is certain that the multi does not
contain an update (because the infomask bits say so), it can pass this
info down to GetMultiXactIdMembers, enabling it to use the old
optimization.

Pointed out by Andres Freund in 20131121200517.GM7240@alap2.anarazel.de
contrib/pgrowlocks/pgrowlocks.c
src/backend/access/heap/heapam.c
src/backend/access/transam/multixact.c
src/backend/utils/time/tqual.c
src/include/access/multixact.h