mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-07 13:10:56 +08:00
Fixed avg functions when float8 is pass by reference - #131
This commit is contained in:
14
src/vector.c
14
src/vector.c
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user