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

Commitdb35bf5

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 parentdf90401 commitdb35bf5

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
@@ -31,6 +31,7 @@
3131
typedefstruct
3232
{
3333
SpGistStatespgstate;/* SPGiST's working state */
34+
int64indtuples;/* total number of tuples indexed */
3435
MemoryContexttmpCtx;/* per-tuple temporary context */
3536
}SpGistBuildState;
3637

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

62+
/* Update total tuple count */
63+
buildstate->indtuples+=1;
64+
6165
MemoryContextSwitchTo(oldCtx);
6266
MemoryContextReset(buildstate->tmpCtx);
6367
}
@@ -131,6 +135,7 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo)
131135
*/
132136
initSpGistState(&buildstate.spgstate,index);
133137
buildstate.spgstate.isBuild= true;
138+
buildstate.indtuples=0;
134139

135140
buildstate.tmpCtx=AllocSetContextCreate(CurrentMemoryContext,
136141
"SP-GiST build temporary context",
@@ -144,7 +149,8 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo)
144149
SpGistUpdateMetaPage(index);
145150

146151
result= (IndexBuildResult*)palloc0(sizeof(IndexBuildResult));
147-
result->heap_tuples=result->index_tuples=reltuples;
152+
result->heap_tuples=reltuples;
153+
result->index_tuples=buildstate.indtuples;
148154

149155
returnresult;
150156
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp