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
- ssi-lossy-bitmap.patch (application/octet-stream)
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