On Sun, Jan 13, 2013 at 4:16 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Andres Freund <andres(at)2ndquadrant(dot)com> writes:
>>> Basically, the aspects of this that I think are likely to be
>>> reproducible wins across different platforms are (a) teaching the
>>> compiler that elog(ERROR) doesn't return, and (b) reducing code size as
>>> much as possible. The single-function change isn't going to help on
>>> either ground --- maybe it would have helped on (b) without the errno
>>> problem, but that's going to destroy any possible code size savings.
>> Agreed. I am happy to produce an updated patch unless youre already on
> On it now (busy testing on some old slow boxes, else I'd be done already).
Just a random thought here...
There are an awful lot of places in our source tree where the error
level is fixed. We could invent a new construct, say ereport_error or
so, that is just like ereport except that it takes no error-level
parameter because it's hard-coded to ERROR.
It would be a bit of a pain to change all of the existing call sites,
but presumably it would dodge a lot of these issues about the way
compilers optimize things, because we could simply say categorically
that ereport_error NEVER returns.
The Enterprise PostgreSQL Company
In response to
pgsql-hackers by date
|Next:||From: Bruce Momjian||Date: 2013-01-15 19:46:39|
|Subject: Re: [PERFORM] Slow query: bitmap scan troubles|
|Previous:||From: Tom Lane||Date: 2013-01-15 19:40:11|
|Subject: Re: Curious buildfarm failures (fwd)|