Thomas Munro <thomas.mu...@gmail.com> writes: > On Thu, Sep 3, 2020 at 5:36 PM Tom Lane <t...@sss.pgh.pa.us> wrote: >> Both of these concerns would abate if we had get_dirent_type() >> just throw an error itself when stat() fails, thereby removing the >> PGFILETYPE_ERROR result code. I'm not 100% sold either way on >> that, but it's something to think about. Is there ever going >> to be a reason for the caller to ignore an error?
> Hmm. Well I had it like that in an earlier version, but then I > couldn't figure out the right way to write code that would work in > both frontend and backend code, without writing two copies in two > translation units, or putting the whole thing in a header. What > approach do you prefer? Well, there are plenty of places in src/port/ where we do things like #ifndef FRONTEND ereport(ERROR, (errcode_for_file_access(), errmsg("could not get junction for \"%s\": %s", path, msg))); #else fprintf(stderr, _("could not get junction for \"%s\": %s\n"), path, msg); #endif I don't see a compelling reason why this function couldn't report stat() failures similarly, especially if we're just going to have the callers do exactly the same thing as that anyway. regards, tom lane