aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gistvacuum.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/gist/gistvacuum.c')
-rw-r--r--src/backend/access/gist/gistvacuum.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/backend/access/gist/gistvacuum.c b/src/backend/access/gist/gistvacuum.c
index 2337dbd7f9d..a0b0eebed3d 100644
--- a/src/backend/access/gist/gistvacuum.c
+++ b/src/backend/access/gist/gistvacuum.c
@@ -208,23 +208,20 @@ gistbulkdelete(PG_FUNCTION_ARGS)
idxtuple = (IndexTuple) PageGetItem(page, iid);
if (callback(&(idxtuple->t_tid), callback_state))
- {
- todelete[ntodelete] = i - ntodelete;
- ntodelete++;
- stats->tuples_removed += 1;
- }
+ todelete[ntodelete++] = i;
else
stats->num_index_tuples += 1;
}
+ stats->tuples_removed += ntodelete;
+
if (ntodelete)
{
START_CRIT_SECTION();
MarkBufferDirty(buffer);
- for (i = 0; i < ntodelete; i++)
- PageIndexTupleDelete(page, todelete[i]);
+ PageIndexMultiDelete(page, todelete, ntodelete);
GistMarkTuplesDeleted(page);
if (RelationNeedsWAL(rel))