@ -623,10 +623,10 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
BlockNumber blkno ;
Buffer buffer ;
Page page ;
int itemsCount ;
int nroot items;
/* Calculate how many TIDs will fit on first page. */
itemsCount = Min ( nitems , GinMaxLeafDataItems ) ;
nroot items = Min ( nitems , GinMaxLeafDataItems ) ;
/*
* Create the root page .
@ -638,8 +638,8 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
START_CRIT_SECTION ( ) ;
GinInitBuffer ( buffer , GIN_DATA | GIN_LEAF ) ;
memcpy ( GinDataPageGetData ( page ) , items , sizeof ( ItemPointerData ) * nitems ) ;
GinPageGetOpaque ( page ) - > maxoff = nitems ;
memcpy ( GinDataPageGetData ( page ) , items , sizeof ( ItemPointerData ) * nroot items ) ;
GinPageGetOpaque ( page ) - > maxoff = nroot items ;
MarkBufferDirty ( buffer ) ;
@ -651,7 +651,7 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
data . node = index - > rd_node ;
data . blkno = blkno ;
data . nitem = nitems ;
data . nitem = nroot items ;
rdata [ 0 ] . buffer = InvalidBuffer ;
rdata [ 0 ] . data = ( char * ) & data ;
@ -660,7 +660,7 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
rdata [ 1 ] . buffer = InvalidBuffer ;
rdata [ 1 ] . data = ( char * ) items ;
rdata [ 1 ] . len = sizeof ( ItemPointerData ) * itemsCount ;
rdata [ 1 ] . len = sizeof ( ItemPointerData ) * nroot items;
rdata [ 1 ] . next = NULL ;
recptr = XLogInsert ( RM_GIN_ID , XLOG_GIN_CREATE_PTREE , rdata ) ;
@ -678,7 +678,7 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
/*
* Add any remaining TIDs to the newly - created posting tree .
*/
if ( itemsCount < n items)
if ( nitems > nroot items)
{
GinPostingTreeScan * gdi ;
@ -686,8 +686,8 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
gdi - > btree . isBuild = ( buildStats ! = NULL ) ;
ginInsertItemPointers ( gdi ,
items + itemsCount ,
nitems - itemsCount ,
items + nroot items,
nitems - nroot items,
buildStats ) ;
pfree ( gdi ) ;