aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/numeric.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/numeric.c')
-rw-r--r--src/backend/utils/adt/numeric.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index 201784bbf66..a00db3ce7a8 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -2605,6 +2605,9 @@ numeric_div_opt_error(Numeric num1, Numeric num2, bool *have_error)
Numeric res;
int rscale;
+ if (have_error)
+ *have_error = false;
+
/*
* Handle NaN
*/
@@ -2721,6 +2724,9 @@ numeric_mod_opt_error(Numeric num1, Numeric num2, bool *have_error)
NumericVar arg2;
NumericVar result;
+ if (have_error)
+ *have_error = false;
+
if (NUMERIC_IS_NAN(num1) || NUMERIC_IS_NAN(num2))
return make_result(&const_nan);
@@ -3207,6 +3213,9 @@ numeric_int4_opt_error(Numeric num, bool *have_error)
NumericVar x;
int32 result;
+ if (have_error)
+ *have_error = false;
+
/* XXX would it be better to return NULL? */
if (NUMERIC_IS_NAN(num))
{
@@ -6249,6 +6258,9 @@ make_result_opt_error(const NumericVar *var, bool *have_error)
int n;
Size len;
+ if (have_error)
+ *have_error = false;
+
if (sign == NUMERIC_NAN)
{
result = (Numeric) palloc(NUMERIC_HDRSZ_SHORT);