if (vacrel->do_index_vacuuming)
{
- msgfmt = _(" %u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n");
+ 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:"));
+ appendStringInfoString(&buf, _("index scan not needed: "));
else
- appendStringInfoString(&buf, _("index scan needed:"));
+ appendStringInfoString(&buf, _("index scan needed: "));
}
else
{
- msgfmt = _(" %u pages from table (%.2f%% of total) have %lld dead item identifiers\n");
+ msgfmt = _("%u pages from table (%.2f%% of total) have %lld dead item identifiers\n");
if (!vacrel->failsafe_active)
- appendStringInfoString(&buf, _("index scan bypassed:"));
+ appendStringInfoString(&buf, _("index scan bypassed: "));
else
- appendStringInfoString(&buf, _("index scan bypassed by failsafe:"));
+ appendStringInfoString(&buf, _("index scan bypassed by failsafe: "));
}
orig_rel_pages = vacrel->rel_pages + vacrel->pages_removed;
appendStringInfo(&buf, msgfmt,
read_rate, write_rate);
if (track_io_timing)
{
- appendStringInfoString(&buf, _("I/O Timings:"));
+ appendStringInfoString(&buf, _("I/O timings:"));
if (pgStatBlockReadTime - startreadtime > 0)
- appendStringInfo(&buf, _(" read=%.3f"),
+ appendStringInfo(&buf, _(" read: %.3f ms"),
(double) (pgStatBlockReadTime - startreadtime) / 1000);
+ if ((pgStatBlockReadTime - startreadtime > 0) && (pgStatBlockWriteTime - startwritetime > 0))
+ appendStringInfoString(&buf, _(","));
if (pgStatBlockWriteTime - startwritetime > 0)
- appendStringInfo(&buf, _(" write=%.3f"),
+ appendStringInfo(&buf, _(" write: %.3f ms"),
(double) (pgStatBlockWriteTime - startwritetime) / 1000);
appendStringInfoChar(&buf, '\n');
}
*/
if (vacrel->nindexes == 0 && vacrel->lpdead_item_pages > 0)
ereport(elevel,
- (errmsg("\"%s\": removed %lld dead item identifiers in %u pages",
+ (errmsg("table \"%s\": removed %lld dead item identifiers in %u pages",
vacrel->relname, (long long) vacrel->lpdead_items,
vacrel->lpdead_item_pages)));
appendStringInfo(&buf, _("%s."), pg_rusage_show(&ru0));
ereport(elevel,
- (errmsg("\"%s\": found %lld removable, %lld nonremovable row versions in %u out of %u pages",
+ (errmsg("table \"%s\": found %lld removable, %lld nonremovable row versions in %u out of %u pages",
vacrel->relname,
(long long) vacrel->tuples_deleted,
(long long) vacrel->num_tuples, vacrel->scanned_pages,
*/
vacrel->do_index_vacuuming = false;
ereport(elevel,
- (errmsg("\"%s\": index scan bypassed: %u pages from table (%.2f%% of total) have %lld dead item identifiers",
+ (errmsg("table \"%s\": index scan bypassed: %u pages from table (%.2f%% of total) have %lld dead item identifiers",
vacrel->relname, vacrel->lpdead_item_pages,
100.0 * vacrel->lpdead_item_pages / vacrel->rel_pages,
(long long) vacrel->lpdead_items)));
vacuumed_pages == vacrel->lpdead_item_pages));
ereport(elevel,
- (errmsg("\"%s\": removed %d dead item identifiers in %u pages",
- vacrel->relname, tupindex, vacuumed_pages),
+ (errmsg("table \"%s\": removed %lld dead item identifiers in %u pages",
+ vacrel->relname, (long long ) tupindex, vacuumed_pages),
errdetail_internal("%s", pg_rusage_show(&ru0))));
/* Revert to the previous phase information for error traceback */
vacrel->relnamespace,
vacrel->relname,
vacrel->num_index_scans),
- errdetail("table's relfrozenxid or relminmxid is too far in the past"),
+ errdetail("The table's relfrozenxid or relminmxid is too far in the past."),
errhint("Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n"
"You might also need to consider other ways for VACUUM to keep up with the allocation of transaction IDs.")));
if (BlockNumberIsValid(errinfo->blkno))
{
if (OffsetNumberIsValid(errinfo->offnum))
- errcontext("while scanning block %u and offset %u of relation \"%s.%s\"",
+ errcontext("while scanning block %u offset %u of relation \"%s.%s\"",
errinfo->blkno, errinfo->offnum, errinfo->relnamespace, errinfo->relname);
else
errcontext("while scanning block %u of relation \"%s.%s\"",
if (BlockNumberIsValid(errinfo->blkno))
{
if (OffsetNumberIsValid(errinfo->offnum))
- errcontext("while vacuuming block %u and offset %u of relation \"%s.%s\"",
+ errcontext("while vacuuming block %u offset %u of relation \"%s.%s\"",
errinfo->blkno, errinfo->offnum, errinfo->relnamespace, errinfo->relname);
else
errcontext("while vacuuming block %u of relation \"%s.%s\"",
* reads which are also picked up by track_io_timing, if enabled,
* the 'average write rate' is actually talking about the rate of
* pages being dirtied, not being written out, so it's typical to
- * have a non-zero 'avg write rate' while I/O Timings only reports
+ * have a non-zero 'avg write rate' while I/O timings only reports
* reads.
*
* It's not clear that an ANALYZE will ever result in
read_rate, write_rate);
if (track_io_timing)
{
- appendStringInfoString(&buf, _("I/O Timings:"));
+ appendStringInfoString(&buf, _("I/O timings:"));
if (pgStatBlockReadTime - startreadtime > 0)
- appendStringInfo(&buf, _(" read=%.3f"),
+ appendStringInfo(&buf, _(" read: %.3f ms"),
(double) (pgStatBlockReadTime - startreadtime) / 1000);
+ if ((pgStatBlockReadTime - startreadtime > 0) && (pgStatBlockWriteTime - startwritetime > 0))
+ appendStringInfoString(&buf, _(","));
if (pgStatBlockWriteTime - startwritetime > 0)
- appendStringInfo(&buf, _(" write=%.3f"),
+ appendStringInfo(&buf, _(" write: %.3f ms"),
(double) (pgStatBlockWriteTime - startwritetime) / 1000);
appendStringInfoChar(&buf, '\n');
}