Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1g4nQF-0000w8-7H for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Sep 2018 13:30:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1g4nQC-0004a6-Re for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Sep 2018 13:30:36 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1g4nQC-0004Zz-KF for pgsql-hackers@lists.postgresql.org; Tue, 25 Sep 2018 13:30:36 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1g4nQ6-0003Os-OL for pgsql-hackers@lists.postgresql.org; Tue, 25 Sep 2018 13:30:35 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id w8PDUQ8n004419; Tue, 25 Sep 2018 09:30:26 -0400 From: Tom Lane To: Michael Paquier cc: Thomas Munro , Alvaro Herrera , PostgreSQL Hackers Subject: Re: Allowing printf("%m") only where it actually works In-reply-to: <20180925071636.GK1354@paquier.xyz> References: <8770.1533931511@sss.pgh.pa.us> <16896.1533935042@sss.pgh.pa.us> <14925.1534040609@sss.pgh.pa.us> <1437.1534100930@sss.pgh.pa.us> <13183.1534624490@sss.pgh.pa.us> <30022.1534705920@sss.pgh.pa.us> <20180912070739.GK25160@paquier.xyz> <1304.1536774001@sss.pgh.pa.us> <20180914020256.GD29332@paquier.xyz> <13585.1537809527@sss.pgh.pa.us> <20180925071636.GK1354@paquier.xyz> Comments: In-reply-to Michael Paquier message dated "Tue, 25 Sep 2018 16:16:36 +0900" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <4417.1537882226.1@sss.pgh.pa.us> Content-Transfer-Encoding: quoted-printable Date: Tue, 25 Sep 2018 09:30:26 -0400 Message-ID: <4418.1537882226@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Michael Paquier 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 translat= e: error code %lu)", err, GetLastError()))); but I'm unconvinced that that's useful. regards, tom lane