. It would also be better if we didn't emit a separate WAL record for defraging a page, if we also prune it at the same time. I'm not that worried about WAL usage in general, but that seems simple enough to fix.
Ah I see. I shall fix that.
When I started making this change, I realized that we need the second WAL record because if the block is backed up in pruning WAL write, we may never call PageRepairFragmentation during the redo phase. Of course, we can fix that by making heap_xlog_clean always repair page fragmentation irrespective of whether the block was backed up, but that doesn't seem like a good solution.