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 <[email protected]> Reviewed-by: Dean Rasheed <[email protected]> Discussion: https://postgr.es/m/caaj_b96no5h5trur+khcc44ycyucw8wahuloqqyyop8_k3+...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/4246a977bad6e76c4276a0d52def8a3dced154bb Modified Files -------------- src/backend/utils/adt/formatting.c | 6 +- src/backend/utils/adt/jsonpath_exec.c | 62 ++++---- src/backend/utils/adt/numeric.c | 266 +++++++++++----------------------- src/backend/utils/adt/timestamp.c | 46 +++--- src/include/utils/numeric.h | 22 ++- 5 files changed, 152 insertions(+), 250 deletions(-)
