From ab786f6299b86aa9e58e7e9a5d664faa4de7eb85 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sat, 23 Feb 2002 01:01:30 +0000
Subject: [PATCH] Make factorial(0) return 1, as per spec.

---
 src/backend/utils/adt/int.c  | 6 ++++--
 src/backend/utils/adt/int8.c | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/backend/utils/adt/int.c b/src/backend/utils/adt/int.c
index e04ae89cea0..99c61558474 100644
--- a/src/backend/utils/adt/int.c
+++ b/src/backend/utils/adt/int.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.47 2001/06/07 00:09:29 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.48 2002/02/23 01:01:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -784,7 +784,9 @@ int4fac(PG_FUNCTION_ARGS)
 	int32		arg1 = PG_GETARG_INT32(0);
 	int32		result;
 
-	if (arg1 < 1)
+	if (arg1 == 0)
+		result = 1;
+	else if (arg1 < 1)
 		result = 0;
 	else
 		for (result = 1; arg1 > 0; --arg1)
diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c
index 380e0238238..6a5eb15d749 100644
--- a/src/backend/utils/adt/int8.c
+++ b/src/backend/utils/adt/int8.c
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.36 2001/11/24 19:57:06 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.37 2002/02/23 01:01:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -515,7 +515,9 @@ int8fac(PG_FUNCTION_ARGS)
 	int64		result;
 	int64		i;
 
-	if (arg1 < 1)
+	if (arg1 == 0)
+		result = 1;
+	else if (arg1 < 1)
 		result = 0;
 	else
 		for (i = arg1, result = 1; i > 0; --i)
-- 
GitLab