aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-11-16 11:16:53 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2017-11-16 11:16:53 -0500
commit4b02e935fee881eab1f4fabdbebccedfa57b4ddd (patch)
tree309edbdcb04dae0693e7bf9274e163355076b687 /src
parent619a8c47da7279c186bb57cc16b26ad011366b73 (diff)
downloadpostgresql-4b02e935fee881eab1f4fabdbebccedfa57b4ddd.tar.gz
postgresql-4b02e935fee881eab1f4fabdbebccedfa57b4ddd.zip
Fix bogus logic for checking data dirs' versions within pg_upgrade.
Commit 9be95ef15 failed to cure all of the redundancy here: we were actually calling get_major_server_version() three times for each of the old and new data directories. While that's not enormously expensive, it's still sloppy. A. Akenteva Discussion: https://postgr.es/m/f9266a85d918a3cf3a386b5148aee666@postgrespro.ru
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_upgrade/check.c6
-rw-r--r--src/bin/pg_upgrade/exec.c5
2 files changed, 5 insertions, 6 deletions
diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
index b7e1e4be190..1b9083597ca 100644
--- a/src/bin/pg_upgrade/check.c
+++ b/src/bin/pg_upgrade/check.c
@@ -234,9 +234,9 @@ check_cluster_versions(void)
{
prep_status("Checking cluster versions");
- /* get old and new cluster versions */
- old_cluster.major_version = get_major_server_version(&old_cluster);
- new_cluster.major_version = get_major_server_version(&new_cluster);
+ /* cluster versions should already have been obtained */
+ Assert(old_cluster.major_version != 0);
+ Assert(new_cluster.major_version != 0);
/*
* We allow upgrades from/to the same major version for alpha/beta
diff --git a/src/bin/pg_upgrade/exec.c b/src/bin/pg_upgrade/exec.c
index 810a5a0c3c5..f5cd74ff97f 100644
--- a/src/bin/pg_upgrade/exec.c
+++ b/src/bin/pg_upgrade/exec.c
@@ -331,9 +331,8 @@ check_data_dir(ClusterInfo *cluster)
{
const char *pg_data = cluster->pgdata;
- /* get old and new cluster versions */
- old_cluster.major_version = get_major_server_version(&old_cluster);
- new_cluster.major_version = get_major_server_version(&new_cluster);
+ /* get the cluster version */
+ cluster->major_version = get_major_server_version(cluster);
check_single_dir(pg_data, "");
check_single_dir(pg_data, "base");