Heikki Linnakangas <hlinn...@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