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 по дате отправления: