Re: Numeric x^y for negative x - Mailing list pgsql-hackers

From Zhihong Yu
Subject Re: Numeric x^y for negative x
Date
Msg-id CALNJ-vTrm4Ci3uVG5g_pWF0VFYTh2pUH4BFBTfgWvNH2uve-Hw@mail.gmail.com
Whole thread Raw
In response to Re: Numeric x^y for negative x  (Dean Rasheed <dean.a.rasheed@gmail.com>)
Responses Re: Numeric x^y for negative x  (Dean Rasheed <dean.a.rasheed@gmail.com>)
List pgsql-hackers


On Wed, Jul 7, 2021 at 10:37 AM Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
On Thu, 1 Jul 2021 at 14:17, Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
>
> On Tue, 29 Jun 2021 at 12:08, Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
> >
> > Numeric x^y is supported for x < 0 if y is an integer, but this
> > currently fails if y is outside the range of an int32
>
> I've been doing some more testing of this, and I spotted another
> problem with numeric_power().
>
> [loss of precision and overflow errors]
>
> I think we should attempt to avoid all such overflow errors,
> that are actually underflows, and return zero instead.
>

Finally getting back to this ... attached is an updated patch that now
includes a fix for the loss-of-precision bug and the overflow errors.
I don't think it's really worth trying to split these up, since
they're all somewhat interrelated.

Regards,
Dean
Hi,

+                   (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
+                    errmsg("value overflows numeric format")));

Here is an example of existing error message which I think is more readable than 'overflows numeric format':

                 errmsg("bigint out of range"))); 

Maybe rephrase as: value is out of range

Cheers

pgsql-hackers by date:

Previous
From: David Christensen
Date:
Subject: Re: [PATCH] expand the units that pg_size_pretty supports on output
Next
From: Jacob Champion
Date:
Subject: Re: badly calculated width of emoji in psql