Thread: Unquoted file name in an error message
Hello. While translating error messages related to pg_dumpall (1495eff7bdb), I noticed that one message lacks double quotes around the file name: could not open map file: %s Since this placeholder appears standalone and not embedded in a sentence, I initially thought it might fall outside the usual convention of quoting file names. However, a similar message added to pg_restore does quote the file name, as in: could not open global.dat file: "%s" So I believe this omission is unintentional. The first of the attached patches adds double quotes around the file name for consistency. In addition, I noticed that pg_dump and pg_restore refer to map.dat using different wording. The second patch updates the message to refer to "map.dat file" instead of "map file", for consistency with how pg_restore refers to both "global.dat file" and "map.dat file" explicitly. I noticed that there are other messages in other files that refer to file names without quotes as well, but I'm not addressing those here. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Attachment
On 2025-Apr-07, Kyotaro Horiguchi wrote: > Hello. > > While translating error messages related to pg_dumpall (1495eff7bdb), > I noticed that one message lacks double quotes around the file name: > > could not open map file: %s > > Since this placeholder appears standalone and not embedded in a > sentence, I initially thought it might fall outside the usual > convention of quoting file names. Hello, I think the problem here is that the %s is not the file name, but the string from strerror. So the lack of quotes there would seem to be correct. The real problem is that the file name isn't mentioned in the error message. A secondary issue might be that instead of using %s for strerror(), maybe they should be using %m. > + pg_fatal("could not open global.dat file: \"%s\"", strerror(errno)); Maybe we should do something like pg_fatal("could not open "%s" file: %m", map_file_path); -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
On 2025-04-07 Mo 6:13 AM, Álvaro Herrera wrote: > On 2025-Apr-07, Kyotaro Horiguchi wrote: > >> Hello. >> >> While translating error messages related to pg_dumpall (1495eff7bdb), >> I noticed that one message lacks double quotes around the file name: >> >> could not open map file: %s >> >> Since this placeholder appears standalone and not embedded in a >> sentence, I initially thought it might fall outside the usual >> convention of quoting file names. > Hello, I think the problem here is that the %s is not the file name, but > the string from strerror. So the lack of quotes there would seem to be > correct. The real problem is that the file name isn't mentioned in the > error message. A secondary issue might be that instead of using %s for > strerror(), maybe they should be using %m. > > >> + pg_fatal("could not open global.dat file: \"%s\"", strerror(errno)); > Maybe we should do something like > > pg_fatal("could not open "%s" file: %m", map_file_path); > Yeah. Here's a more thorough error message cleanup. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com