Re: pgsql: Fix behavior of exp() and power() for infinity inputs.

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Fix behavior of exp() and power() for infinity inputs.
Date: 2020-06-15 03:42:59
Message-ID: 20200615034259.GD52676@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Sun, Jun 14, 2020 at 03:00:11PM +0000, Tom Lane wrote:
> Fix behavior of exp() and power() for infinity inputs.
>
> Previously, these functions tended to throw underflow errors for
> negative-infinity exponents. The correct thing per POSIX is to
> return 0, so let's do that instead. (Note that the SQL standard
> is silent on such issues, as it lacks the concepts of either Inf
> or NaN; so our practice is to follow POSIX whenever a corresponding
> C-library function exists.)
>
> Also, add a bunch of test cases verifying that exp() and power()
> actually do follow POSIX for Inf and NaN inputs. While this patch
> should guarantee that exp() passes the tests, power() will not unless
> the platform's pow(3) is fully POSIX-compliant. I already know that
> gaur fails some of the tests, and I am suspicious that the Windows
> animals will too; the extent of compliance of other old platforms
> remains to be seen. We might choose to drop failing test cases, or
> to work harder at overriding pow(3) for these cases, but first let's
> see just how good or bad the situation is.

The Windows servers don't actually cay anything here, but sidewinder
and hoverfly complain, on top of gaur of course:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=hoverfly&dt=2020-06-14%2015%3A05%3A33
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=sidewinder&dt=2020-06-14%2018%3A45%3A28
--
Michael

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2020-06-15 04:10:52 Re: pgsql: Fix behavior of exp() and power() for infinity inputs.
Previous Message Thomas Munro 2020-06-15 01:29:42 pgsql: Doc: Add references for SI and SSI.