Kyotaro Horiguchi <horikyota....@gmail.com> writes:
> FWIW, the following change makes sense to me according to the spec of
> validate_exec()...

> diff --git a/src/bin/pg_upgrade/exec.c b/src/bin/pg_upgrade/exec.c
> index fadeea12ca..3cff186213 100644
> --- a/src/bin/pg_upgrade/exec.c
> +++ b/src/bin/pg_upgrade/exec.c
> @@ -430,10 +430,10 @@ check_exec(const char *dir, const char *program, bool 
> check_version)
>       ret = validate_exec(path);
 
>       if (ret == -1)
> -             pg_fatal("check for \"%s\" failed: not a regular file\n",
> +             pg_fatal("check for \"%s\" failed: does not exist or 
> inexecutable\n",
>                                path);
>       else if (ret == -2)
> -             pg_fatal("check for \"%s\" failed: cannot execute (permission 
> denied)\n",
> +             pg_fatal("check for \"%s\" failed: cannot read (permission 
> denied)\n",
>                                path);
 
>       snprintf(cmd, sizeof(cmd), "\"%s\" -V", path);

I initially did this, but then I wondered why validate_exec() was
making it so hard: why can't we just report the failure with %m?
It turns out to take only a couple extra lines of code to ensure
that something more-or-less appropriate is returned, so we don't
need to guess about it here.  Pushed that way.

                        regards, tom lane


Reply via email to