VACUUM VERBOSE: Show dead items for an empty table.
Be consistent about the lines that VACUUM VERBOSE outputs by including an "index scan not needed: " line for completely empty tables. This makes the output more readable, especially with multiple distinct VACUUM operations processed by the same VACUUM command. It's also more consistent; even empty tables can use the failsafe, which wasn't reported in the standard way until now. Follow-up to commit 6e20f460, which taught VACUUM VERBOSE to be more consistent about reporting on scanned pages with empty tables.
This commit is contained in:
parent
357c8455e6
commit
bdb71dbe80
@ -715,31 +715,29 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
|
||||
_("new relminmxid: %u, which is %d MXIDs ahead of previous value\n"),
|
||||
vacrel->NewRelminMxid, diff);
|
||||
}
|
||||
if (orig_rel_pages > 0)
|
||||
if (vacrel->do_index_vacuuming)
|
||||
{
|
||||
if (vacrel->do_index_vacuuming)
|
||||
{
|
||||
if (vacrel->nindexes == 0 || vacrel->num_index_scans == 0)
|
||||
appendStringInfoString(&buf, _("index scan not needed: "));
|
||||
else
|
||||
appendStringInfoString(&buf, _("index scan needed: "));
|
||||
|
||||
msgfmt = _("%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n");
|
||||
}
|
||||
if (vacrel->nindexes == 0 || vacrel->num_index_scans == 0)
|
||||
appendStringInfoString(&buf, _("index scan not needed: "));
|
||||
else
|
||||
{
|
||||
if (!vacrel->failsafe_active)
|
||||
appendStringInfoString(&buf, _("index scan bypassed: "));
|
||||
else
|
||||
appendStringInfoString(&buf, _("index scan bypassed by failsafe: "));
|
||||
appendStringInfoString(&buf, _("index scan needed: "));
|
||||
|
||||
msgfmt = _("%u pages from table (%.2f%% of total) have %lld dead item identifiers\n");
|
||||
}
|
||||
appendStringInfo(&buf, msgfmt,
|
||||
vacrel->lpdead_item_pages,
|
||||
100.0 * vacrel->lpdead_item_pages / orig_rel_pages,
|
||||
(long long) vacrel->lpdead_items);
|
||||
msgfmt = _("%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!vacrel->failsafe_active)
|
||||
appendStringInfoString(&buf, _("index scan bypassed: "));
|
||||
else
|
||||
appendStringInfoString(&buf, _("index scan bypassed by failsafe: "));
|
||||
|
||||
msgfmt = _("%u pages from table (%.2f%% of total) have %lld dead item identifiers\n");
|
||||
}
|
||||
appendStringInfo(&buf, msgfmt,
|
||||
vacrel->lpdead_item_pages,
|
||||
orig_rel_pages == 0 ? 100.0 :
|
||||
100.0 * vacrel->lpdead_item_pages / orig_rel_pages,
|
||||
(long long) vacrel->lpdead_items);
|
||||
for (int i = 0; i < vacrel->nindexes; i++)
|
||||
{
|
||||
IndexBulkDeleteResult *istat = vacrel->indstats[i];
|
||||
|
Loading…
x
Reference in New Issue
Block a user