Re: planner fails on HEAD

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2011-12-04T22:11:07Z
Lists: pgsql-hackers
Pavel Stehule <pavel.stehule@gmail.com> writes:
> 2011/12/4 Tom Lane <tgl@sss.pgh.pa.us>:
>> [ scratches head ... ]  Given that it got past the previous assertions,
>> surely that ought to be impossible.  Could we see the values of
>> cost_mergejoin's local variables, please?

> It is strange

> when I put a fprintf(stderr, "const literal") to exactly before or
> somewhere after assertion, then assertion is ok. Without fprintf
> assertion fails again

> it looks like gcc bug - gcc 4.5.1 20100924 (Red Hat 4.5.1) It was
> configured just with --enable-debug and --enable-cassert

Hmm.  I'm betting that gcc has flushed one value to memory but the other
one is still in a register that's wider than memory, creating a roundoff
hazard.  Can you look at the generated assembly code?

			regards, tom lane