Обсуждение: pgsql: Put in_range_float4_float8's work in-line.

Поиск
Список
Период
Сортировка

pgsql: Put in_range_float4_float8's work in-line.

От
Tom Lane
Дата:
Put in_range_float4_float8's work in-line.

In commit 8b29e88cd, I'd dithered about whether to make
in_range_float4_float8 be a standalone copy of the float in-range logic
or have it punt to in_range_float8_float8.  I went with the latter, which
saves code space though at the cost of performance and readability.

However, it emerges that this tickles a compiler or hardware bug on
buildfarm member opossum.  Test results from commit 55e0e4581 show
conclusively that widening a float4 NaN to float8 produces Inf, not NaN,
on that machine; which accounts perfectly for the window RANGE test
failures it's been showing.  We can dodge this problem by making
in_range_float4_float8 be an independent function, so that it checks
for NaN inputs before widening them.

Ordinarily I'd not be very excited about working around such obviously
broken functionality; but given that this was a judgment call to begin
with, I don't mind reversing it.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/cb3e9e40bc993128cd51795ea60ff7bed78cebb5

Modified Files
--------------
src/backend/utils/adt/float.c | 68 ++++++++++++++++++++++++++++++++++++-------
1 file changed, 58 insertions(+), 10 deletions(-)