mirror of
https://github.com/postgres/postgres.git
synced 2025-05-15 19:15:29 +03:00
pg_upgrade: properly handle timeline variables
There is no behavior change here as we now always set the timeline to one. Report by Tom Lane Backpatch to 9.3 and 9.4
This commit is contained in:
parent
b054732070
commit
4e9935979a
@ -229,7 +229,7 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
|||||||
pg_log(PG_FATAL, "%d: controldata retrieval problem\n", __LINE__);
|
pg_log(PG_FATAL, "%d: controldata retrieval problem\n", __LINE__);
|
||||||
|
|
||||||
p++; /* removing ':' char */
|
p++; /* removing ':' char */
|
||||||
cluster->controldata.chkpnt_tli = str2uint(p);
|
tli = str2uint(p);
|
||||||
got_tli = true;
|
got_tli = true;
|
||||||
}
|
}
|
||||||
else if ((p = strstr(bufin, "Latest checkpoint's NextXID:")) != NULL)
|
else if ((p = strstr(bufin, "Latest checkpoint's NextXID:")) != NULL)
|
||||||
@ -479,11 +479,11 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
|||||||
* Before 9.3, pg_resetxlog reported the xlogid and segno of the first log
|
* Before 9.3, pg_resetxlog reported the xlogid and segno of the first log
|
||||||
* file after reset as separate lines. Starting with 9.3, it reports the
|
* file after reset as separate lines. Starting with 9.3, it reports the
|
||||||
* WAL file name. If the old cluster is older than 9.3, we construct the
|
* WAL file name. If the old cluster is older than 9.3, we construct the
|
||||||
* WAL file name from the xlogid and segno.
|
* WAL file name from the tli, xlogid, and segno.
|
||||||
*/
|
*/
|
||||||
if (GET_MAJOR_VERSION(cluster->major_version) <= 902)
|
if (GET_MAJOR_VERSION(cluster->major_version) <= 902)
|
||||||
{
|
{
|
||||||
if (got_log_id && got_log_seg)
|
if (got_tli && got_log_id && got_log_seg)
|
||||||
{
|
{
|
||||||
snprintf(cluster->controldata.nextxlogfile, 25, "%08X%08X%08X",
|
snprintf(cluster->controldata.nextxlogfile, 25, "%08X%08X%08X",
|
||||||
tli, logid, segno);
|
tli, logid, segno);
|
||||||
@ -497,7 +497,6 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
|||||||
(!got_oldestmulti &&
|
(!got_oldestmulti &&
|
||||||
cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER) ||
|
cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER) ||
|
||||||
(!live_check && !got_nextxlogfile) ||
|
(!live_check && !got_nextxlogfile) ||
|
||||||
!got_tli ||
|
|
||||||
!got_align || !got_blocksz || !got_largesz || !got_walsz ||
|
!got_align || !got_blocksz || !got_largesz || !got_walsz ||
|
||||||
!got_walseg || !got_ident || !got_index || !got_toast ||
|
!got_walseg || !got_ident || !got_index || !got_toast ||
|
||||||
!got_date_is_int || !got_float8_pass_by_value || !got_data_checksum_version)
|
!got_date_is_int || !got_float8_pass_by_value || !got_data_checksum_version)
|
||||||
@ -525,9 +524,6 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
|||||||
if (!live_check && !got_nextxlogfile)
|
if (!live_check && !got_nextxlogfile)
|
||||||
pg_log(PG_REPORT, " first WAL segment after reset\n");
|
pg_log(PG_REPORT, " first WAL segment after reset\n");
|
||||||
|
|
||||||
if (!got_tli)
|
|
||||||
pg_log(PG_REPORT, " latest checkpoint timeline ID\n");
|
|
||||||
|
|
||||||
if (!got_align)
|
if (!got_align)
|
||||||
pg_log(PG_REPORT, " maximum alignment\n");
|
pg_log(PG_REPORT, " maximum alignment\n");
|
||||||
|
|
||||||
|
@ -186,7 +186,6 @@ typedef struct
|
|||||||
uint32 ctrl_ver;
|
uint32 ctrl_ver;
|
||||||
uint32 cat_ver;
|
uint32 cat_ver;
|
||||||
char nextxlogfile[25];
|
char nextxlogfile[25];
|
||||||
uint32 chkpnt_tli;
|
|
||||||
uint32 chkpnt_nxtxid;
|
uint32 chkpnt_nxtxid;
|
||||||
uint32 chkpnt_nxtepoch;
|
uint32 chkpnt_nxtepoch;
|
||||||
uint32 chkpnt_nxtoid;
|
uint32 chkpnt_nxtoid;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user