mirror of
https://github.com/postgres/postgres.git
synced 2025-09-03 15:22:11 +03:00
Remove unneeded "pin scan" nbtree VACUUM code.
The REDO routine for nbtree's xl_btree_vacuum record type hasn't performed a "pin scan" since commit3e4b7d87
went in, so clearly there isn't any point in VACUUM WAL-logging information that won't actually be used. Finish off the work of commit3e4b7d87
(and the closely related preceding commit687f2cd7
) by removing the code that generates this unused information. Also remove the REDO routine code disabled by commit3e4b7d87
. Replace the unneeded lastBlockVacuumed field in xl_btree_vacuum with a new "ndeleted" field. The new field isn't actually needed right now, since we could continue to infer the array length from the overall record length. However, an upcoming patch to add deduplication to nbtree needs to add an "items updated" field to xl_btree_vacuum, so we might as well start being explicit about the number of items now. (Besides, it doesn't seem like a good idea to leave the xl_btree_vacuum struct without any fields; the C standard says that that's undefined.) nbtree VACUUM no longer forces writing a WAL record for the last block in the index. Writing out a WAL record with no items for the final block was supposed to force processing of a lastBlockVacuumed field by a pin scan. Bump XLOG_PAGE_MAGIC because xl_btree_vacuum changed. Discussion: https://postgr.es/m/CAH2-WzmY_mT7UnTzFB5LBQDBkKpdV5UxP3B5bLb7uP%3D%3D6UQJRQ%40mail.gmail.com
This commit is contained in:
@@ -46,8 +46,7 @@ btree_desc(StringInfo buf, XLogReaderState *record)
|
||||
{
|
||||
xl_btree_vacuum *xlrec = (xl_btree_vacuum *) rec;
|
||||
|
||||
appendStringInfo(buf, "lastBlockVacuumed %u",
|
||||
xlrec->lastBlockVacuumed);
|
||||
appendStringInfo(buf, "ndeleted %u", xlrec->ndeleted);
|
||||
break;
|
||||
}
|
||||
case XLOG_BTREE_DELETE:
|
||||
|
Reference in New Issue
Block a user