Re: planner fails on HEAD

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: planner fails on HEAD
Дата
Msg-id 19320.1323039341@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: planner fails on HEAD  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: planner fails on HEAD  (Merlin Moncure <mmoncure@gmail.com>)
Re: planner fails on HEAD  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers
Pavel Stehule <pavel.stehule@gmail.com> writes:
> 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

Is this x86?  I can't reproduce it on x86_64.

It's fairly easy to get a set of values such that innerstartsel *should*
equal innerendsel; but if one value has been rounded to memory precision
and the other hasn't, the assert could certainly fail.

Some digging around yields the information that the gcc hackers do not
consider this a bug, or at least adamantly refuse to do anything about it:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323
Comment 47 is particularly relevant to our situation:
To summarize, this defect effectively states that:assert( (x/y) == (x/y) )may cause an assertion if compiled with
optimization.

Also, http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45691#c4
indicates that an explicit cast to double should help.  Would
you check if the problem goes away if the Asserts are changed to
Assert((double) outerstartsel <= (double) outerendsel);Assert((double) innerstartsel <= (double) innerendsel);
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: planner fails on HEAD
Следующее
От: Tom Lane
Дата:
Сообщение: Re: why local_preload_libraries does require a separate directory ?