Re: Allowing printf("%m") only where it actually works
От | Tom Lane |
---|---|
Тема | Re: Allowing printf("%m") only where it actually works |
Дата | |
Msg-id | 4418.1537882226@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Allowing printf("%m") only where it actually works (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: Allowing printf("%m") only where it actually works
|
Список | pgsql-hackers |
Michael Paquier <michael@paquier.xyz> writes: > On Mon, Sep 24, 2018 at 01:18:47PM -0400, Tom Lane wrote: >> Well, we have to change the code somehow to make it usable in frontend >> as well as backend. And we can *not* have it do exit(1) in libpq. >> So the solution I chose was to make it act the same as if FormatMessage >> were to fail. I don't find this behavior unreasonable: what is really >> important is the original error code, not whether we were able to >> pretty-print it. I think the ereport(FATAL) coding is a pretty darn >> bad idea even in the backend. > Ok. I won't fight hard on that. Why changing the error message from > "could not load netmsg.dll" to "unrecognized winsock error" then? The > original error string is much more verbose to grab the context. As the code stands, what you'll get told about is the error code returned by the failed LoadLibrary call; the original winsock error code is reported nowhere. I think that's backwards. We could possibly write something like sprintf(wserrbuf, "winsock error %d (could not load netmsg.dll to translate: error code %lu)", err, GetLastError()))); but I'm unconvinced that that's useful. regards, tom lane
В списке pgsql-hackers по дате отправления: