On 01/11/2018 11:23 AM, Alvaro Herrera wrote:
> Dagfinn Ilmari Mannsåker wrote:
>> ilmari@ilmari.org (Dagfinn Ilmari Mannsåker) writes:
>>
>>> The behaviour seems to have changed in 9.6:
>>
>> Indeed, https://www.postgresql.org/docs/current/static/release-9-6.html
>> has the following entry:
>>
>> * Improve the accuracy of the ln(), log(), exp(), and pow() functions
>> for type numeric (Dean Rasheed)
>
> Well, the test line was added with that commit (7d9a4737c268), and
> indeed its comment says this used to fail:
>
> +-- cases that used to error out
> +select 0.12 ^ (-25);
> + ?column?
> +-------------------------------------------
> + 104825960103961013959336.4983657883169110
> +(1 row)
And indeed, my starting message in this thread was that, even in my
recent (e35dba475a440f73dccf9ed1fd61e3abc6ee61db) build, make check
*succeeds*, and for all I can tell, that test *is* executed (it shows
up in the log, and if I re-run it with digits altered, it fails).
And then I can connect interactively to the same server (started
fresh, not the same instance 'make check' was running, haven't tried
to find a way to connect to that), issue the same select, and get
the division by zero.
This is somehow sensitive to some sort of state. But what sort?
-Chap