1
0
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:
Bruce Momjian 2015-05-16 15:16:28 -04:00
parent b054732070
commit 4e9935979a
2 changed files with 3 additions and 8 deletions

View File

@ -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");

View File

@ -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;