You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-08-01 06:46:52 +03: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:
@ -16,6 +16,14 @@
|
|||||||
</release-bug-list>
|
</release-bug-list>
|
||||||
|
|
||||||
<release-improvement-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>
|
<release-item>
|
||||||
<github-pull-request id="2399"/>
|
<github-pull-request id="2399"/>
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ Types from src/include/catalog/catversion.h
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* yyyymmddN */
|
/* yyyymmddN */
|
||||||
#define CATALOG_VERSION_NO 202405161
|
#define CATALOG_VERSION_NO 202406281
|
||||||
|
|
||||||
#elif PG_VERSION >= PG_VERSION_16
|
#elif PG_VERSION >= PG_VERSION_16
|
||||||
|
|
||||||
@ -333,6 +333,11 @@ Types from src/include/catalog/pg_control.h
|
|||||||
// ---------------------------------------------------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------------------------------------------------
|
||||||
#if PG_VERSION > PG_VERSION_MAX
|
#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
|
#elif PG_VERSION >= PG_VERSION_13
|
||||||
|
|
||||||
/* Version identifier for this pg_control format */
|
/* 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
|
#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
|
#elif PG_VERSION >= PG_VERSION_14
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1582,7 +1626,7 @@ Types from src/include/access/xlog_internal.h
|
|||||||
|
|
||||||
#elif PG_VERSION >= PG_VERSION_17
|
#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
|
#elif PG_VERSION >= PG_VERSION_16
|
||||||
|
|
||||||
|
@ -12,6 +12,10 @@
|
|||||||
# - docker login -u pgbackrest
|
# - docker login -u pgbackrest
|
||||||
# - VM=XXX;DATE=YYYYMMDDX;BASE=pgbackrest/test:${VM?}-base;docker tag ${BASE?} ${BASE?}-${DATE?} && docker push ${BASE?}-${DATE?}
|
# - VM=XXX;DATE=YYYYMMDDX;BASE=pgbackrest/test:${VM?}-base;docker tag ${BASE?} ${BASE?}-${DATE?} && docker push ${BASE?}-${DATE?}
|
||||||
# **********************************************************************************************************************************
|
# **********************************************************************************************************************************
|
||||||
|
20240809A:
|
||||||
|
x86_64:
|
||||||
|
u22: 233aa5805f958cc079efc851abd61bcdc20735e0
|
||||||
|
|
||||||
20240715A:
|
20240715A:
|
||||||
x86_64:
|
x86_64:
|
||||||
d11: f3bc523f10e873f85b889120ea08c6c53358cc47
|
d11: f3bc523f10e873f85b889120ea08c6c53358cc47
|
||||||
@ -21,4 +25,3 @@
|
|||||||
f40: ae6241a28e5d8a6b6060d0ef00855f519ea45c24
|
f40: ae6241a28e5d8a6b6060d0ef00855f519ea45c24
|
||||||
rh8: 84e3ece92ebc2650346a9ea783940d33ec2872db
|
rh8: 84e3ece92ebc2650346a9ea783940d33ec2872db
|
||||||
u20: a754f9acc98c79a0b0ad3a39a140a752a27ac5e7
|
u20: a754f9acc98c79a0b0ad3a39a140a752a27ac5e7
|
||||||
u22: 233aa5805f958cc079efc851abd61bcdc20735e0
|
|
||||||
|
@ -61,7 +61,7 @@ testRun(void)
|
|||||||
"HINT: is this version of PostgreSQL supported?");
|
"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_94), 942, "9.4 control version");
|
||||||
TEST_RESULT_UINT(pgControlVersion(PG_VERSION_11), 1100, "11 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_ASSIGN(info, pgControlFromFile(storageTest, NULL), "get control info");
|
||||||
TEST_RESULT_UINT(info.systemId, 0xEFEFEFEFEF, "check system id");
|
TEST_RESULT_UINT(info.systemId, 0xEFEFEFEFEF, "check system id");
|
||||||
TEST_RESULT_UINT(info.version, PG_VERSION_17, "check version");
|
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.checkpoint, 0xAABBAABBEEFFEEFF, "check checkpoint");
|
||||||
TEST_RESULT_UINT(info.timeline, 88, "check timeline");
|
TEST_RESULT_UINT(info.timeline, 88, "check timeline");
|
||||||
TEST_RESULT_UINT(info.pageSize, pgPageSize32, "check page size");
|
TEST_RESULT_UINT(info.pageSize, pgPageSize32, "check page size");
|
||||||
|
Reference in New Issue
Block a user