From 501012631e7d2e1c22f60b11ff8cb62ae021625e Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 20 Nov 2013 16:57:41 +0200 Subject: Refactor the internal GIN B-tree interface for forming a downlink. This creates a new gin-btree callback function for creating a downlink for a page. Previously, ginxlog.c duplicated the logic used during normal operation. --- src/backend/access/gin/ginxlog.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) (limited to 'src/backend/access/gin/ginxlog.c') diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c index 4d0ccb876f..ddac343061 100644 --- a/src/backend/access/gin/ginxlog.c +++ b/src/backend/access/gin/ginxlog.c @@ -799,31 +799,20 @@ ginContinueSplit(ginIncompleteSplit *split) ginPrepareEntryScan(&btree, InvalidOffsetNumber, (Datum) 0, GIN_CAT_NULL_KEY, &ginstate); - btree.entry = ginPageGetLinkItup(buffer); } else { - Page page = BufferGetPage(buffer); - ginPrepareDataScan(&btree, reln); - - PostingItemSetBlockNumber(&(btree.pitem), split->leftBlkno); - if (GinPageIsLeaf(page)) - btree.pitem.key = *GinDataPageGetItemPointer(page, - GinPageGetOpaque(page)->maxoff); - else - btree.pitem.key = GinDataPageGetPostingItem(page, - GinPageGetOpaque(page)->maxoff)->key; } - btree.rightblkno = split->rightBlkno; - stack.blkno = split->leftBlkno; stack.buffer = buffer; stack.off = InvalidOffsetNumber; stack.parent = NULL; ginFindParents(&btree, &stack, split->rootBlkno); + + btree.prepareDownlink(&btree, buffer); ginInsertValue(&btree, stack.parent, NULL); FreeFakeRelcacheEntry(reln); -- cgit v1.2.1