On 2014-01-30 08:32:20 +0100, Christian Kruse wrote:
> Hi Tom,
> 
> On 29/01/14 20:06, Tom Lane wrote:
> > Christian Kruse <christ...@2ndquadrant.com> writes:
> > > Your reasoning sounds quite logical to me. Thus I did a
> > > grep -RA 3 "ereport" src/* | less
> > > and looked for ereport calls with errno in it. I found quite a few,
> > > attached you will find a patch addressing that issue.
> > 
> > Committed.
> 
> Great! Thanks!
> 
> > I found a couple of errors in your patch, but I think everything is
> > addressed in the patch as committed.
> 
> While I understand most modifications I'm a little bit confused by
> some parts. Have a look at for example this one:
> 
> +       *errstr = psprintf(_("failed to look up effective user id %ld: %s"),
> +                          (long) user_id,
> +                        errno ? strerror(errno) : _("user does not exist"));
> 
> Why is it safe here to use errno? It is possible that the _() function
> changes errno, isn't it?

But the evaluation order is strictly defined here, no? First the boolean
check for errno, then *either* strerror(errno), *or* the _().

Greetings,

Andres Freund

-- 
 Andres Freund                     http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to