v6-0002-Minimally-add-XLOG_CHECKPOINT_REDO.patch
application/octet-stream
Filename: v6-0002-Minimally-add-XLOG_CHECKPOINT_REDO.patch
Type: application/octet-stream
Part: 1
Patch
Format: format-patch
Series: patch v6-0002
Subject: Minimally add XLOG_CHECKPOINT_REDO.
| File | + | − |
|---|---|---|
| src/backend/access/rmgrdesc/xlogdesc.c | 7 | 0 |
| src/backend/access/transam/xlog.c | 4 | 0 |
| src/backend/replication/logical/decode.c | 1 | 0 |
| src/include/catalog/pg_control.h | 1 | 0 |
From af6b150041ff399fda83cf9c43da880e8d850921 Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Wed, 20 Sep 2023 13:55:28 -0400
Subject: [PATCH v6 2/3] Minimally add XLOG_CHECKPOINT_REDO.
Not to be committed separately.
Based on a previous patch by Dilip Kumar.
---
src/backend/access/rmgrdesc/xlogdesc.c | 7 +++++++
src/backend/access/transam/xlog.c | 4 ++++
src/backend/replication/logical/decode.c | 1 +
src/include/catalog/pg_control.h | 1 +
4 files changed, 13 insertions(+)
diff --git a/src/backend/access/rmgrdesc/xlogdesc.c b/src/backend/access/rmgrdesc/xlogdesc.c
index f390c177e4..37f59bda7e 100644
--- a/src/backend/access/rmgrdesc/xlogdesc.c
+++ b/src/backend/access/rmgrdesc/xlogdesc.c
@@ -148,6 +148,10 @@ xlog_desc(StringInfo buf, XLogReaderState *record)
LSN_FORMAT_ARGS(xlrec.overwritten_lsn),
timestamptz_to_str(xlrec.overwrite_time));
}
+ else if (info == XLOG_CHECKPOINT_REDO)
+ {
+ /* No details to write out */
+ }
}
const char *
@@ -196,6 +200,9 @@ xlog_identify(uint8 info)
case XLOG_FPI_FOR_HINT:
id = "FPI_FOR_HINT";
break;
+ case XLOG_CHECKPOINT_REDO:
+ id = "CHECKPOINT_REDO";
+ break;
}
return id;
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 348cbebe3a..026e2fc9da 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -8102,6 +8102,10 @@ xlog_redo(XLogReaderState *record)
/* Keep track of full_page_writes */
lastFullPageWrites = fpw;
}
+ else if (info == XLOG_CHECKPOINT_REDO)
+ {
+ /* nothing to do here, just for informational purposes */
+ }
}
/*
diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c
index 730061c9da..24b712aa66 100644
--- a/src/backend/replication/logical/decode.c
+++ b/src/backend/replication/logical/decode.c
@@ -190,6 +190,7 @@ xlog_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
case XLOG_FPI_FOR_HINT:
case XLOG_FPI:
case XLOG_OVERWRITE_CONTRECORD:
+ case XLOG_CHECKPOINT_REDO:
break;
default:
elog(ERROR, "unexpected RM_XLOG_ID record type: %u", info);
diff --git a/src/include/catalog/pg_control.h b/src/include/catalog/pg_control.h
index dc953977c5..1136613259 100644
--- a/src/include/catalog/pg_control.h
+++ b/src/include/catalog/pg_control.h
@@ -78,6 +78,7 @@ typedef struct CheckPoint
#define XLOG_FPI 0xB0
/* 0xC0 is used in Postgres 9.5-11 */
#define XLOG_OVERWRITE_CONTRECORD 0xD0
+#define XLOG_CHECKPOINT_REDO 0xE0
/*
--
2.37.1 (Apple Git-137.1)