mirror of
https://github.com/postgres/postgres.git
synced 2025-07-14 08:21:07 +03:00
Merge prune, freeze and vacuum WAL record formats
The new combined WAL record is now used for pruning, freezing and 2nd pass of vacuum. This is in preparation for changing VACUUM to write a combined prune+freeze record per page, instead of separate two records. The new WAL record format now supports that, but the code still always writes separate records for pruning and freezing. This reserves separate XLOG_HEAP2_* info codes for when the pruning record is emitted for on-access pruning or VACUUM, per Peter Geoghegan's suggestion. The record format is identical, but having separate info codes makes it easier analyze pruning and vacuuming with pg_waldump. The function to emit the new WAL record, log_heap_prune_and_freeze(), is in pruneheap.c. The existing heap_log_freeze_plan() and its subroutines are moved to pruneheap.c without changes, to keep them together with log_heap_prune_and_freeze(). Author: Melanie Plageman <melanieplageman@gmail.com> Discussion: https://www.postgresql.org/message-id/CAAKRu_azf-zH%3DDgVbquZ3tFWjMY1w5pO8m-TXJaMdri8z3933g@mail.gmail.com Discussion: https://www.postgresql.org/message-id/CAAKRu_b2oE4GL%3Dq4g9mcByS9yT7wTQvEH9OLpabj28e%2BWKFi2A@mail.gmail.com
This commit is contained in:
@ -445,9 +445,9 @@ heap2_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
|
||||
* Everything else here is just low level physical stuff we're not
|
||||
* interested in.
|
||||
*/
|
||||
case XLOG_HEAP2_FREEZE_PAGE:
|
||||
case XLOG_HEAP2_PRUNE:
|
||||
case XLOG_HEAP2_VACUUM:
|
||||
case XLOG_HEAP2_PRUNE_ON_ACCESS:
|
||||
case XLOG_HEAP2_PRUNE_VACUUM_SCAN:
|
||||
case XLOG_HEAP2_PRUNE_VACUUM_CLEANUP:
|
||||
case XLOG_HEAP2_VISIBLE:
|
||||
case XLOG_HEAP2_LOCK_UPDATED:
|
||||
break;
|
||||
|
Reference in New Issue
Block a user