Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbf14575

Browse files
committed
Fix tuple counting in SP-GiST index build.
Count the number of tuples in the index honestly, instead of assumingthat it's the same as the number of tuples in the heap. (It might bedifferent if the index is partial.)Back-patch to all supported versions.Tomas VondraDiscussion:https://postgr.es/m/3b3d8eac-c709-0d25-088e-b98339a1b28a@2ndquadrant.com
1 parent76e2b5a commitbf14575

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

‎src/backend/access/spgist/spginsert.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
typedefstruct
3333
{
3434
SpGistStatespgstate;/* SPGiST's working state */
35+
int64indtuples;/* total number of tuples indexed */
3536
MemoryContexttmpCtx;/* per-tuple temporary context */
3637
}SpGistBuildState;
3738

@@ -59,6 +60,9 @@ spgistBuildCallback(Relation index, HeapTuple htup, Datum *values,
5960
MemoryContextReset(buildstate->tmpCtx);
6061
}
6162

63+
/* Update total tuple count */
64+
buildstate->indtuples+=1;
65+
6266
MemoryContextSwitchTo(oldCtx);
6367
MemoryContextReset(buildstate->tmpCtx);
6468
}
@@ -132,6 +136,7 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo)
132136
*/
133137
initSpGistState(&buildstate.spgstate,index);
134138
buildstate.spgstate.isBuild= true;
139+
buildstate.indtuples=0;
135140

136141
buildstate.tmpCtx=AllocSetContextCreate(CurrentMemoryContext,
137142
"SP-GiST build temporary context",
@@ -145,7 +150,8 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo)
145150
SpGistUpdateMetaPage(index);
146151

147152
result= (IndexBuildResult*)palloc0(sizeof(IndexBuildResult));
148-
result->heap_tuples=result->index_tuples=reltuples;
153+
result->heap_tuples=reltuples;
154+
result->index_tuples=buildstate.indtuples;
149155

150156
returnresult;
151157
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp