From: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
---|---|
To: | Rajesh Kumar Mallah <mallah(at)trade-india(dot)com> |
Cc: | Michael Glaesemann <grzm(at)myrealbox(dot)com>, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Arbitrary precision arithmatic with pgsql |
Date: | 2004-08-31 14:18:00 |
Message-ID: | 41348898.1070107@Yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 8/31/2004 9:15 AM, Rajesh Kumar Mallah wrote:
> Michael Glaesemann wrote:
>
>>
>> On Aug 31, 2004, at 9:17 PM, Michael Glaesemann wrote:
>>
>>> What you need is a power operation for numeric, which I think you'd
>>> have to write yourself,
>>
>>
>> Looking a little closer, there is a pow() function that takes two
>> numeric arguments and returns numeric.
>>
>> <http://www.postgresql.org/docs/current/static/functions-math.html>
>>
>> test=# select pow(2::numeric,100::numeric);
>> pow
>> --------------------------------------------------
>> 1267650600228229401496703205376.0000000000000000
>> (1 row)
>>
>> Sorry for the misinformation.
>>
>> If you'd like, I think you can overload the ^ operator to work on
>> numeric as well if you don't want to use pow(). See the following page
>> for more information.
>>
>> <http://www.postgresql.org/docs/current/static/sql-createoperator.html>
>
>
> Yep thats cool. Thanks for the research!
>
> but i still wonder if a warning or info message were
> appropriate at some stage so that people do not confuse it
> with sielent loss of accuracy . I know this example is *not* a
> case of where postgresql is truncating data at the insert level
> (like mysql does) but at the calculation level.
I agree that doing
select 2::numeric ^ 100;
should emit some sort of a warning. Because what happens here is that
the numeric value is degraded to a float8 in order to use the operator.
I don't think that
select 2 ^ 100;
should emit the same warning.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Glaesemann | 2004-08-31 14:27:11 | Re: Arbitrary precision arithmatic with pgsql |
Previous Message | Michael Glaesemann | 2004-08-31 13:49:05 | Re: casting BOOL to somthng |