Fix multiple bugs in numeric_poly_deserialize().
authorTom Lane <[email protected]>
Sat, 3 Sep 2016 18:18:55 +0000 (14:18 -0400)
committerTom Lane <[email protected]>
Sat, 3 Sep 2016 18:18:55 +0000 (14:18 -0400)
These were evidently introduced by yesterday's commit 9cca11c91,
which perhaps needs more review than it got.

Per report from Andreas Seltenreich and additional examination
of nearby code.

Report: <[email protected]>

src/backend/utils/adt/numeric.c

index 27efd310abbcdf803b6816cd712ebf81e56ccc29..384e672c8322cd7dae486d4fc50adbed4556c813 100644 (file)
@@ -4193,11 +4193,11 @@ numeric_poly_deserialize(PG_FUNCTION_ARGS)
        accum_sum_add(&result->sumX, &sumX_var);
 #endif
 
-       set_var_from_num(DatumGetNumeric(sumX2), &sumX2_var);
+       init_var_from_num(DatumGetNumeric(sumX2), &sumX2_var);
 #ifdef HAVE_INT128
        numericvar_to_int128(&sumX2_var, &result->sumX2);
 #else
-       accum_sum_add(&result->sumX2, &sumX_var);
+       accum_sum_add(&result->sumX2, &sumX2_var);
 #endif
 
        pq_getmsgend(&buf);