diff --git a/src/test/regress/expected/int4.out b/src/test/regress/expected/int4.out index c384af18ee..77f43739a7 100644 --- a/src/test/regress/expected/int4.out +++ b/src/test/regress/expected/int4.out @@ -299,18 +299,6 @@ SELECT int4 '1000' < int4 '999' AS false; 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 ----- diff --git a/src/test/regress/expected/numeric.out b/src/test/regress/expected/numeric.out index c7fe63d037..b255be7c85 100644 --- a/src/test/regress/expected/numeric.out +++ b/src/test/regress/expected/numeric.out @@ -2315,3 +2315,44 @@ FROM (VALUES (0::numeric, 0::numeric), 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) + diff --git a/src/test/regress/sql/int4.sql b/src/test/regress/sql/int4.sql index a9e90a96c4..b00c9dea2a 100644 --- a/src/test/regress/sql/int4.sql +++ b/src/test/regress/sql/int4.sql @@ -114,10 +114,6 @@ SELECT int2 '2' * int4 '2' = int4 '16' / int2 '4' AS true; 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; diff --git a/src/test/regress/sql/numeric.sql b/src/test/regress/sql/numeric.sql index 41475a9a24..1332a9cf07 100644 --- a/src/test/regress/sql/numeric.sql +++ b/src/test/regress/sql/numeric.sql @@ -1111,3 +1111,14 @@ FROM (VALUES (0::numeric, 0::numeric), (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);