I wrote:
> Amit Kapila <amit.kapila16@gmail.com> writes:
>> In general it is responsibility of caller to take care of errno
>> handling, but I am not sure it is taken care well at all places in
>> code and the chances of such problems were less earlier because there
>> was less chance that ereport would reset errno, but now it will
>> definitely do so.
> [ shrug... ] To my mind, this is a *good* thing, because now we will
> more easily find and fix any callers that are broken. They were broken
> anyway, it's just that the circumstances might've been difficult to
> reproduce. As an example consider the possibility that ereport might
> previously have stomped on errno only with unusual log_line_prefix
> settings.
... and having said that, there *are* bugs here, which have got nothing to
do with ereport(). client_read_ended() for instance is not being careful
to preserve errno :-(
regards, tom lane