Re: numeric precision when raising one numeric to another. - Mailing list pgsql-general

From Tom Lane
Subject Re: numeric precision when raising one numeric to another.
Date
Msg-id 26210.1116608588@sss.pgh.pa.us
Whole thread Raw
In response to Re: numeric precision when raising one numeric to another.  ("Jim C. Nasby" <decibel@decibel.org>)
Responses Re: numeric precision when raising one numeric to another.
Re: numeric precision when raising one numeric to
Re: numeric precision when raising one numeric to another.
List pgsql-general
"Jim C. Nasby" <decibel@decibel.org> writes:
> Why are we allowing implicit casts from numeric to floating point?

Because the SQL spec requires it.

         2) If the data type of either operand of a dyadic arithmetic op-
            erator is approximate numeric, then the data type of the re-
            sult is approximate numeric.

It doesn't say to throw an error for mixed-type arithmetic.

Now it also says

         1) If the data type of both operands of a dyadic arithmetic opera-
            tor is exact numeric, then the data type of the result is exact
            numeric, ...

which you could take as requiring us to provide numeric equivalents of
every floating-point operator, but I don't find that argument very
convincing for operations that are inherently not going to give exact
results.  The spec demands exact results from addition, subtraction,
and multiplication, but as soon as you get to division they punt; let
alone transcendental functions.

But having said that, I don't have a problem with putting in a
pg_operator entry for numeric_power.  And if someone wants to improve
the scale factor calculations therein, go for it.  But so far there's
been an extremely low signal-to-noise ratio in this thread ...

            regards, tom lane

pgsql-general by date:

Previous
From: "Jim C. Nasby"
Date:
Subject: Re: materialized view
Next
From: Robert Treat
Date:
Subject: Re: How can I write trigger on a columns insert/update?