pg_upgrade: Check all used executables
authorPeter Eisentraut
Sat, 27 Jul 2019 05:48:08 +0000 (07:48 +0200)
committerPeter Eisentraut
Sat, 27 Jul 2019 05:48:08 +0000 (07:48 +0200)
Expand the validate_exec() calls to cover all the used binaries.

Author: Daniel Gustafsson 
Reviewed-by: Peter Eisentraut
Discussion: https://www.postgresql.org/message-id/flat/9328.1552952117@sss.pgh.pa.us

src/bin/pg_upgrade/exec.c

index 036330932820ddc17a719cce8fedfce42c7f9bf1..dba02c495dd8712e4268c3b304f02bd080591865 100644 (file)
@@ -376,6 +376,7 @@ check_bin_dir(ClusterInfo *cluster)
                      cluster->bindir);
 
    validate_exec(cluster->bindir, "postgres");
+   validate_exec(cluster->bindir, "pg_controldata");
    validate_exec(cluster->bindir, "pg_ctl");
 
    /*
@@ -390,12 +391,20 @@ check_bin_dir(ClusterInfo *cluster)
        validate_exec(cluster->bindir, "pg_resetxlog");
    else
        validate_exec(cluster->bindir, "pg_resetwal");
+
    if (cluster == &new_cluster)
    {
-       /* these are only needed in the new cluster */
-       validate_exec(cluster->bindir, "psql");
+       /*
+        * These binaries are only needed for the target version. pg_dump and
+        * pg_dumpall are used to dump the old cluster, but must be of the
+        * target version.
+        */
+       validate_exec(cluster->bindir, "initdb");
        validate_exec(cluster->bindir, "pg_dump");
        validate_exec(cluster->bindir, "pg_dumpall");
+       validate_exec(cluster->bindir, "pg_restore");
+       validate_exec(cluster->bindir, "psql");
+       validate_exec(cluster->bindir, "vacuumdb");
    }
 }