mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56:29 +00:00
Fix pg_control handling for PostgreSQL 12
"FullTransactionId" is not present in earlier versions, so we'll have to #ifdef that out for those. We should probably add more elegant checks to ensure that repmgr is being executed against the PostgreSQL version it was built against. In a normal production environment that will be the case as the matching package will have been installed, so version mismatches don't usually occur. Note that while currently most aspects of the repmgr client are compatible across PostgreSQL versions, the repmgrd code is very version specific, so version specificity is a given anyway.
This commit is contained in:
@@ -312,6 +312,7 @@ get_controlfile(const char *DataDir)
|
||||
|
||||
if (version_num >= 120000)
|
||||
{
|
||||
#if PG_ACTUAL_VERSION_NUM >= 120000
|
||||
ControlFileData12 *ptr = (struct ControlFileData12 *)ControlFileDataPtr;
|
||||
control_file_info->system_identifier = ptr->system_identifier;
|
||||
control_file_info->state = ptr->state;
|
||||
@@ -320,6 +321,10 @@ get_controlfile(const char *DataDir)
|
||||
control_file_info->timeline = ptr->checkPointCopy.ThisTimeLineID;
|
||||
control_file_info->minRecoveryPointTLI = ptr->minRecoveryPointTLI;
|
||||
control_file_info->minRecoveryPoint = ptr->minRecoveryPoint;
|
||||
#else
|
||||
fprintf(stderr, "ERROR: please use a repmgr version built for PostgreSQL 12\n");
|
||||
exit(ERR_BAD_CONFIG);
|
||||
#endif
|
||||
}
|
||||
else if (version_num >= 110000)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user