Thanks. Patch applied. Seems I fixed the int4 case but missed int2.
---------------------------------------------------------------------------
sugita@sra.co.jp wrote:
> Attached is a patch to make factorial(0::int2) return 1.
>
> Index: backend/utils/adt/int.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/int.c,v
> retrieving revision 1.48
> diff -u -3 -p -r1.48 int.c
> --- backend/utils/adt/int.c 2002/02/23 01:01:30 1.48
> +++ backend/utils/adt/int.c 2002/05/29 15:56:11
> @@ -800,7 +800,9 @@ int2fac(PG_FUNCTION_ARGS)
> int16 arg1 = PG_GETARG_INT16(0);
> int32 result;
>
> - if (arg1 < 1)
> + if (arg1 == 0)
> + result = 1;
> + else if (arg1 < 1)
> result = 0;
> else
> for (result = 1; arg1 > 0; --arg1)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
--
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