Switch some numeric-related functions to use soft error reporting
authorMichael Paquier <michael@paquier.xyz>
Fri, 5 Sep 2025 04:53:47 +0000 (13:53 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 5 Sep 2025 04:53:47 +0000 (13:53 +0900)
commit4246a977bad6e76c4276a0d52def8a3dced154bb
treef2d74a842b71a40112366fb948cabe3b5b47b8d3
parentae453120085f7da8f4082bb912e9668410cdccab
Switch some numeric-related functions to use soft error reporting

This commit changes some functions related to the data type numeric to
use the soft error reporting rather than a custom boolean flag (called
"have_error") that callers of these functions could rely on to bypass
the generation of ERROR reports, letting the callers do their own error
handling (timestamp, jsonpath and numeric_to_char() require them).

This results in the removal of some boilerplate code that was required
to handle both the ereport() and the "have_error" code paths bypassing
ereport(), unifying everything under the soft error reporting facility.

While on it, some duplicated error messages are removed.  The function
upgraded in this commit were suffixed with "_opt_error" in their names.
They are renamed to "_safe" instead.

This change relies on d9f7f5d32f20, that has introduced the soft error
reporting infrastructure.

Author: Amul Sul <sulamul@gmail.com>
Reviewed-by: Dean Rasheed <dean.a.rasheed@gmail.com>
Discussion: https://postgr.es/m/CAAJ_b96No5h5tRuR+KhcC44YcYUCw8WAHuLoqqyyop8_k3+JDQ@mail.gmail.com
src/backend/utils/adt/formatting.c
src/backend/utils/adt/jsonpath_exec.c
src/backend/utils/adt/numeric.c
src/backend/utils/adt/timestamp.c
src/include/utils/numeric.h