mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-01-20 04:59:25 +02:00
PostgreSQL 17beta3 support.
This release changed the control and WAL format, which is very unusual for a beta. Update control and WAL versions/structs to match.
This commit is contained in:
parent
ed9b0c260a
commit
80c9b3001c
@ -16,6 +16,14 @@
|
||||
</release-bug-list>
|
||||
|
||||
<release-improvement-list>
|
||||
<release-item>
|
||||
<release-item-contributor-list>
|
||||
<release-item-contributor id="david.steele"/>
|
||||
</release-item-contributor-list>
|
||||
|
||||
<p><proper>PostgreSQL</proper> 17beta3 support.</p>
|
||||
</release-item>
|
||||
|
||||
<release-item>
|
||||
<github-pull-request id="2399"/>
|
||||
|
||||
|
@ -169,7 +169,7 @@ Types from src/include/catalog/catversion.h
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 202405161
|
||||
#define CATALOG_VERSION_NO 202406281
|
||||
|
||||
#elif PG_VERSION >= PG_VERSION_16
|
||||
|
||||
@ -333,6 +333,11 @@ Types from src/include/catalog/pg_control.h
|
||||
// ---------------------------------------------------------------------------------------------------------------------------------
|
||||
#if PG_VERSION > PG_VERSION_MAX
|
||||
|
||||
#elif PG_VERSION >= PG_VERSION_17
|
||||
|
||||
/* Version identifier for this pg_control format */
|
||||
#define PG_CONTROL_VERSION 1700
|
||||
|
||||
#elif PG_VERSION >= PG_VERSION_13
|
||||
|
||||
/* Version identifier for this pg_control format */
|
||||
@ -380,6 +385,45 @@ Types from src/include/catalog/pg_control.h
|
||||
// ---------------------------------------------------------------------------------------------------------------------------------
|
||||
#if PG_VERSION > PG_VERSION_MAX
|
||||
|
||||
#elif PG_VERSION >= PG_VERSION_17
|
||||
|
||||
/*
|
||||
* Body of CheckPoint XLOG records. This is declared here because we keep
|
||||
* a copy of the latest one in pg_control for possible disaster recovery.
|
||||
* Changing this struct requires a PG_CONTROL_VERSION bump.
|
||||
*/
|
||||
typedef struct CheckPoint
|
||||
{
|
||||
XLogRecPtr redo; /* next RecPtr available when we began to
|
||||
* create CheckPoint (i.e. REDO start point) */
|
||||
TimeLineID ThisTimeLineID; /* current TLI */
|
||||
TimeLineID PrevTimeLineID; /* previous TLI, if this record begins a new
|
||||
* timeline (equals ThisTimeLineID otherwise) */
|
||||
bool fullPageWrites; /* current full_page_writes */
|
||||
int wal_level; /* current wal_level */
|
||||
FullTransactionId nextXid; /* next free transaction ID */
|
||||
Oid nextOid; /* next free OID */
|
||||
MultiXactId nextMulti; /* next free MultiXactId */
|
||||
MultiXactOffset nextMultiOffset; /* next free MultiXact offset */
|
||||
TransactionId oldestXid; /* cluster-wide minimum datfrozenxid */
|
||||
Oid oldestXidDB; /* database with minimum datfrozenxid */
|
||||
MultiXactId oldestMulti; /* cluster-wide minimum datminmxid */
|
||||
Oid oldestMultiDB; /* database with minimum datminmxid */
|
||||
pg_time_t time; /* time stamp of checkpoint */
|
||||
TransactionId oldestCommitTsXid; /* oldest Xid with valid commit
|
||||
* timestamp */
|
||||
TransactionId newestCommitTsXid; /* newest Xid with valid commit
|
||||
* timestamp */
|
||||
|
||||
/*
|
||||
* Oldest XID still running. This is only needed to initialize hot standby
|
||||
* mode from an online checkpoint, so we only bother calculating this for
|
||||
* online checkpoints and only when wal_level is replica. Otherwise it's
|
||||
* set to InvalidTransactionId.
|
||||
*/
|
||||
TransactionId oldestActiveXid;
|
||||
} CheckPoint;
|
||||
|
||||
#elif PG_VERSION >= PG_VERSION_14
|
||||
|
||||
/*
|
||||
@ -1582,7 +1626,7 @@ Types from src/include/access/xlog_internal.h
|
||||
|
||||
#elif PG_VERSION >= PG_VERSION_17
|
||||
|
||||
#define XLOG_PAGE_MAGIC 0xD115 /* can be used as WAL version indicator */
|
||||
#define XLOG_PAGE_MAGIC 0xD116 /* can be used as WAL version indicator */
|
||||
|
||||
#elif PG_VERSION >= PG_VERSION_16
|
||||
|
||||
|
@ -12,6 +12,10 @@
|
||||
# - docker login -u pgbackrest
|
||||
# - VM=XXX;DATE=YYYYMMDDX;BASE=pgbackrest/test:${VM?}-base;docker tag ${BASE?} ${BASE?}-${DATE?} && docker push ${BASE?}-${DATE?}
|
||||
# **********************************************************************************************************************************
|
||||
20240809A:
|
||||
x86_64:
|
||||
u22: 233aa5805f958cc079efc851abd61bcdc20735e0
|
||||
|
||||
20240715A:
|
||||
x86_64:
|
||||
d11: f3bc523f10e873f85b889120ea08c6c53358cc47
|
||||
@ -21,4 +25,3 @@
|
||||
f40: ae6241a28e5d8a6b6060d0ef00855f519ea45c24
|
||||
rh8: 84e3ece92ebc2650346a9ea783940d33ec2872db
|
||||
u20: a754f9acc98c79a0b0ad3a39a140a752a27ac5e7
|
||||
u22: 233aa5805f958cc079efc851abd61bcdc20735e0
|
||||
|
@ -61,7 +61,7 @@ testRun(void)
|
||||
"HINT: is this version of PostgreSQL supported?");
|
||||
TEST_RESULT_UINT(pgControlVersion(PG_VERSION_94), 942, "9.4 control version");
|
||||
TEST_RESULT_UINT(pgControlVersion(PG_VERSION_11), 1100, "11 control version");
|
||||
TEST_RESULT_UINT(pgControlVersion(PG_VERSION_17), 1300, "17 control version");
|
||||
TEST_RESULT_UINT(pgControlVersion(PG_VERSION_17), 1700, "17 control version");
|
||||
}
|
||||
|
||||
// *****************************************************************************************************************************
|
||||
@ -231,7 +231,7 @@ testRun(void)
|
||||
TEST_ASSIGN(info, pgControlFromFile(storageTest, NULL), "get control info");
|
||||
TEST_RESULT_UINT(info.systemId, 0xEFEFEFEFEF, "check system id");
|
||||
TEST_RESULT_UINT(info.version, PG_VERSION_17, "check version");
|
||||
TEST_RESULT_UINT(info.catalogVersion, 202405161, "check catalog version");
|
||||
TEST_RESULT_UINT(info.catalogVersion, 202406281, "check catalog version");
|
||||
TEST_RESULT_UINT(info.checkpoint, 0xAABBAABBEEFFEEFF, "check checkpoint");
|
||||
TEST_RESULT_UINT(info.timeline, 88, "check timeline");
|
||||
TEST_RESULT_UINT(info.pageSize, pgPageSize32, "check page size");
|
||||
|
Loading…
x
Reference in New Issue
Block a user