From 06883d58ff29cf4fb8c32fd13ce9947796b9fb0f Mon Sep 17 00:00:00 2001 From: Dean Rasheed Date: Sat, 10 Jul 2021 12:45:00 +0100 Subject: Fix numeric_mul() overflow due to too many digits after decimal point. This fixes an overflow error when using the numeric * operator if the result has more than 16383 digits after the decimal point by rounding the result. Overflow errors should only occur if the result has too many digits *before* the decimal point. Discussion: https://postgr.es/m/CAEZATCUmeFWCrq2dNzZpRj5+6LfN85jYiDoqm+ucSXhb9U2TbA@mail.gmail.com --- src/test/regress/sql/numeric.sql | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/test/regress/sql/numeric.sql') diff --git a/src/test/regress/sql/numeric.sql b/src/test/regress/sql/numeric.sql index db812c813a3..2e7507639a9 100644 --- a/src/test/regress/sql/numeric.sql +++ b/src/test/regress/sql/numeric.sql @@ -1044,6 +1044,8 @@ select 4770999999999999999999999999999999999999999999999999999999999999999999999 select 4769999999999999999999999999999999999999999999999999999999999999999999999999999999999999 * 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; +select trim_scale((0.1 - 2e-16383) * (0.1 - 3e-16383)); + -- -- Test some corner cases for division -- -- cgit v1.2.3