f
(1 row)
-SELECT 4! AS twenty_four;
- twenty_four
--------------
- 24
-(1 row)
-
-SELECT !!3 AS six;
- six
------
- 6
-(1 row)
-
SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
ten
-----
SELECT lcm(9999 * (10::numeric)^131068 + (10::numeric^131068 - 1), 2); -- overflow
ERROR: value overflows numeric format
+--
+-- Tests for factorial
+--
+SELECT 4!;
+ ?column?
+----------
+ 24
+(1 row)
+
+SELECT !!3;
+ ?column?
+----------
+ 6
+(1 row)
+
+SELECT factorial(15);
+ factorial
+---------------
+ 1307674368000
+(1 row)
+
+SELECT 100000!;
+ERROR: value overflows numeric format
+SELECT 0!;
+ ?column?
+----------
+ 1
+(1 row)
+
+SELECT -4!;
+ ?column?
+----------
+ 1
+(1 row)
+
+SELECT factorial(-4);
+ factorial
+-----------
+ 1
+(1 row)
+
SELECT int4 '1000' < int4 '999' AS false;
-SELECT 4! AS twenty_four;
-
-SELECT !!3 AS six;
-
SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
SELECT 2 + 2 / 2 AS three;
(4232.820::numeric, 132.72000::numeric)) AS v(a, b);
SELECT lcm(9999 * (10::numeric)^131068 + (10::numeric^131068 - 1), 2); -- overflow
+
+--
+-- Tests for factorial
+--
+SELECT 4!;
+SELECT !!3;
+SELECT factorial(15);
+SELECT 100000!;
+SELECT 0!;
+SELECT -4!;
+SELECT factorial(-4);