A weird bit in pg_upgrade/exec.c

Anna Akenteva <a.akenteva@postgrespro.ru>

From: a.akenteva@postgrespro.ru
To: pgsql-hackers@postgresql.org
Date: 2017-11-09T15:07:35Z
Lists: pgsql-hackers
Hello!
I've came across a weird bit in pg_upgrade/exec.c

We have a function check_bin_dir() which goes like this (old_cluster and 
new_cluster are global variables):
void check_bin_dir(ClusterInfo *cluster)
{
     ...
     get_bin_version(&old_cluster);
     get_bin_version(&new_cluster);
     ...
}

This function has two calls:
check_bin_dir(&old_cluster);
check_bin_dir(&new_cluster);

I'd like to substitute these last two lines with this:
get_bin_version(cluster);

Doing it would simplify the patch I'm writing, but I'm worried I might 
break something that's been there for a long time and has been working 
fine. Is there maybe a reason for it to be this way that I don't happen 
to understand?
Also, there's the exact same situation with the get_bin_version() 
function in the same file.


Commits

  1. Fix bogus logic for checking data dirs' versions within pg_upgrade.

  2. Fix bogus logic for checking executables' versions within pg_upgrade.