Re: Repeated PredicateLockRelation calls during seqscan

Kevin Grittner <kevin.grittner@wicourts.gov>

From: "Kevin Grittner" <Kevin.Grittner@wicourts.gov>
To: <drkp@csail.mit.edu>,<heikki.linnakangas@enterprisedb.com>
Cc: <pgsql-hackers@postgresql.org>
Date: 2011-06-25T19:29:38Z
Lists: pgsql-hackers

Attachments

Heikki Linnakangas  wrote:
 
> BTW, isn't bitgetpage() in nodeBitmapHeapscan.c missing
> PredicateLockTuple() and CheckForSerializableConflictOut() calls in
> the codepath for a lossy bitmap? In the non-lossy case,
> heap_hot_search_buffer() takes care of it, but not in the lossy
> case.
 
I think the attached addresses that.
 
In looking this over I noticed something else that doesn't seem quite
right.  In heapam.c there are two places where the execution of
PredicateLockTuple() is conditioned not just on MVCC visibility, but
also on HeapKeyTest().  I think those calls should be moved to not be
conditioned on that.  Otherwise we have a predicate condition being
tested without "locking the gaps", don't we?
 
-Kevin