Hi! On Fri, Jul 28, 2017 at 7:58 AM, Shubham Barai <shubhambara...@gmail.com> wrote:
> I am attaching a patch for predicate locking in SP-Gist index > I took a look over this patch. newLeafBuffer = SpGistGetBuffer(index, > GBUF_LEAF | (isNulls ? GBUF_NULLS : 0), > Min(totalLeafSizes, > SPGIST_PAGE_CAPACITY), > &xlrec.initDest); > PredicateLockPageSplit(index, > BufferGetBlockNumber(current->buffer), > BufferGetBlockNumber(newLeafBuffer)); > You move predicate lock during split only when new leaf page is allocated. However SP-GiST may move items to the free space of another busy page during split (see other branches in doPickSplit()). Your patch doesn't seem to handle this case correctly. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company