Re: Comparing two double values method

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Comparing two double values method
Дата
Msg-id 321699.1696947216@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Comparing two double values method  (Heikki Linnakangas <hlinnaka@iki.fi>)
Список pgsql-hackers
Heikki Linnakangas <hlinnaka@iki.fi> writes:
> On 10/10/2023 13:31, Bowen Shi wrote:
>> I noticed that in the `check_GUC_init` function, there is a direct
>> comparison using the != operator for two double values, which seems
>> problematic.

> No, the compile-time initial values should match exactly.

Right.  The point of this test is to catch cases where you wrote,
say,

    double my_guc = 1.1;

but the boot_val for it in guc_tables.c is 1.2.  There is no
reason to allow any divergence in the spellings of the two C
literals, so as long as they're compiled by the same compiler
there's no reason to expect that the compiled values wouldn't
be bit-equal.

The point of the exclusions for zero is to allow you to just
write

    double my_guc;

without expressing an opinion about the initial value.
(Yes, this does mean that "double my_guc = 0.0;" could
be misleading.  It's just a heuristic though.)

            regards, tom lane



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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: CHECK Constraint Deferrable
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Request for comment on setting binary format output per session