Fixed avg functions when float8 is pass by reference - #131

This commit is contained in:
Andrew Kane
2023-05-17 12:01:08 -07:00
parent 18e7319a40
commit 5b3878b7fe

View File

@@ -827,12 +827,12 @@ vector_accum(PG_FUNCTION_ARGS)
n = statevalues[0] + 1.0; n = statevalues[0] + 1.0;
statedatums = CreateStateDatums(dim); statedatums = CreateStateDatums(dim);
statedatums[0] = Float8GetDatumFast(n); statedatums[0] = Float8GetDatum(n);
if (newarr) if (newarr)
{ {
for (int i = 0; i < dim; i++) for (int i = 0; i < dim; i++)
statedatums[i + 1] = Float8GetDatumFast((double) x[i]); statedatums[i + 1] = Float8GetDatum((double) x[i]);
} }
else else
{ {
@@ -843,7 +843,7 @@ vector_accum(PG_FUNCTION_ARGS)
if (isinf(v)) if (isinf(v))
float_overflow_error(); float_overflow_error();
statedatums[i + 1] = Float8GetDatumFast(v); statedatums[i + 1] = Float8GetDatum(v);
} }
} }
@@ -888,7 +888,7 @@ vector_combine(PG_FUNCTION_ARGS)
dim = STATE_DIMS(statearray2); dim = STATE_DIMS(statearray2);
statedatums = CreateStateDatums(dim); statedatums = CreateStateDatums(dim);
for (int i = 1; i <= dim; i++) for (int i = 1; i <= dim; i++)
statedatums[i] = Float8GetDatumFast(statevalues2[i]); statedatums[i] = Float8GetDatum(statevalues2[i]);
} }
else if (n2 == 0.0) else if (n2 == 0.0)
{ {
@@ -896,7 +896,7 @@ vector_combine(PG_FUNCTION_ARGS)
dim = STATE_DIMS(statearray1); dim = STATE_DIMS(statearray1);
statedatums = CreateStateDatums(dim); statedatums = CreateStateDatums(dim);
for (int i = 1; i <= dim; i++) for (int i = 1; i <= dim; i++)
statedatums[i] = Float8GetDatumFast(statevalues1[i]); statedatums[i] = Float8GetDatum(statevalues1[i]);
} }
else else
{ {
@@ -911,11 +911,11 @@ vector_combine(PG_FUNCTION_ARGS)
if (isinf(v)) if (isinf(v))
float_overflow_error(); float_overflow_error();
statedatums[i] = Float8GetDatumFast(v); statedatums[i] = Float8GetDatum(v);
} }
} }
statedatums[0] = Float8GetDatumFast(n); statedatums[0] = Float8GetDatum(n);
result = construct_array(statedatums, dim + 1, result = construct_array(statedatums, dim + 1,
FLOAT8OID, FLOAT8OID,