pgsql-bugs@postgresql.org wrote:
> Janko Richter (j.richter@wallstreet-develop.de) reports a bug
> with a severity of 3 The lower the number the more severe it
> is.
>
> Short Description factorial function
>
> Long Description 1. The factorial function returns 0 when the
> argument is 0. The factorial Funtion is defined as: factorial(0)=1
I have fixed factorial(0)=1 in 7.3.
> 2. It would be better to define a factorial function returning
> double precision. The factorial function returning bigint produces
> false values with arguments larger then 20.
>
> Notice: I'm using the factorial function for statistical functions
> (for example poisson distribution)
>
> Thank you.
>
>
> Sample Code test=# select factorial(0);
> factorial -----------
> 0
> (1 row)
>
> janko=# select factorial(21::bigint);
> factorial ----------------------
> -4249290049419214848 (1 row)
The problem here is that we don't have a bigint version of factorial,
just an int8 version. This is now on the TODO list:
* Change factorial to return a numeric
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026