diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c index 125f3fb12d..fb7b4ea1ac 100644 --- a/src/backend/access/gin/gininsert.c +++ b/src/backend/access/gin/gininsert.c @@ -143,7 +143,8 @@ buildFreshLeafTuple(GinState *ginstate, /* * Initialize a new posting tree with the TIDs. */ - postingRoot = createPostingTree(ginstate->index, items, nitem); + postingRoot = createPostingTree(ginstate->index, items, nitem, + buildStats); /* And save the root link in the result tuple */ GinSetPostingTree(res, postingRoot); diff --git a/src/include/access/gin_private.h b/src/include/access/gin_private.h index c1462ee2fe..67636ab592 100644 --- a/src/include/access/gin_private.h +++ b/src/include/access/gin_private.h @@ -533,10 +533,9 @@ extern void ginEntryFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rb extern IndexTuple ginPageGetLinkItup(Buffer buf); /* gindatapage.c */ -extern uint32 ginMergeItemPointers(ItemPointerData *dst, - ItemPointerData *a, uint32 na, - ItemPointerData *b, uint32 nb); - +extern BlockNumber createPostingTree(Relation index, + ItemPointerData *items, uint32 nitems, + GinStatsData *buildStats); extern void GinDataPageAddItemPointer(Page page, ItemPointer data, OffsetNumber offset); extern void GinDataPageAddPostingItem(Page page, PostingItem *data, OffsetNumber offset); extern void GinPageDeletePostingItem(Page page, OffsetNumber offset); @@ -727,6 +726,12 @@ extern void ginHeapTupleFastCollect(GinState *ginstate, extern void ginInsertCleanup(GinState *ginstate, bool vac_delay, IndexBulkDeleteResult *stats); +/* ginpostinglist.c */ +extern uint32 ginMergeItemPointers(ItemPointerData *dst, + ItemPointerData *a, uint32 na, + ItemPointerData *b, uint32 nb); + + /* * Merging the results of several gin scans compares item pointers a lot, * so we want this to be inlined. But if the compiler doesn't support that,