diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c index 8dc76fa..6efe3e9 100644 --- a/src/backend/access/heap/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -1088,11 +1088,17 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats, tupgone = true; /* we can delete the tuple */ /* - * Since this dead tuple will not be vacuumed and - * ignored when index cleanup is disabled we count - * count it for reporting. + * But, we will leave this dead tuple when index cleanup + * is disabled in order to keep the code for leaving + * dead tuples simple. We can remove its tuple storage + * when vacuuming the page but it requires to vacuum only + * this dead tuple while checking the recorded dead + * tuples, so it is more reasonable way to just skip + * vacuuming the page and leave the whole tuple. It is + * not harmful because this is a rare condition, and the + * next vacuum will process it anyway. */ - if (params->index_cleanup == VACOPT_TERNARY_ENABLED) + if (params->index_cleanup == VACOPT_TERNARY_DISABLED) nleft_dead_tuples++; } all_visible = false;