Fix numeric_mul() overflow due to too many digits after decimal point.
authorDean Rasheed <dean.a.rasheed@gmail.com>
Sat, 10 Jul 2021 11:42:59 +0000 (12:42 +0100)
committerDean Rasheed <dean.a.rasheed@gmail.com>
Sat, 10 Jul 2021 11:42:59 +0000 (12:42 +0100)
commite7fc488ad67caaad33f6d5177081884495cb81cb
treed152ba50a9e497483e443335a7caa2dbbd79ece8
parent53c38a086a8001d63401671755638bc95c7fa1c7
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/backend/utils/adt/numeric.c
src/test/regress/expected/numeric.out
src/test/regress/sql/numeric.sql