pg_upgrade: Check all used executables
authorPeter Eisentraut <peter@eisentraut.org>
Sat, 27 Jul 2019 05:48:08 +0000 (07:48 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
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 <daniel@yesql.se>
Reviewed-by: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
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");
        }
 }