diff --git a/src/backend/access/spgist/spginsert.c b/src/backend/access/spgist/spginsert.c index 34d9b48f15e..7dd0d61fbbc 100644 --- a/src/backend/access/spgist/spginsert.c +++ b/src/backend/access/spgist/spginsert.c @@ -32,6 +32,7 @@ typedef struct { SpGistState spgstate; /* SPGiST's working state */ + int64 indtuples; /* total number of tuples indexed */ MemoryContext tmpCtx; /* per-tuple temporary context */ } SpGistBuildState; @@ -59,6 +60,9 @@ spgistBuildCallback(Relation index, HeapTuple htup, Datum *values, MemoryContextReset(buildstate->tmpCtx); } + /* Update total tuple count */ + buildstate->indtuples += 1; + MemoryContextSwitchTo(oldCtx); MemoryContextReset(buildstate->tmpCtx); } @@ -132,6 +136,7 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo) */ initSpGistState(&buildstate.spgstate, index); buildstate.spgstate.isBuild = true; + buildstate.indtuples = 0; buildstate.tmpCtx = AllocSetContextCreate(CurrentMemoryContext, "SP-GiST build temporary context", @@ -146,7 +151,8 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo) SpGistUpdateMetaPage(index); result = (IndexBuildResult *) palloc0(sizeof(IndexBuildResult)); - result->heap_tuples = result->index_tuples = reltuples; + result->heap_tuples = reltuples; + result->index_tuples = buildstate.indtuples; return result; }