aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/utils/adt/arrayfuncs.c6
-rw-r--r--src/backend/utils/adt/float.c20
2 files changed, 11 insertions, 15 deletions
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index e5c7e57a5de..1640d838852 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -3404,6 +3404,12 @@ construct_array_builtin(Datum *elems, int nelems, Oid elmtype)
elmalign = TYPALIGN_INT;
break;
+ case FLOAT8OID:
+ elmlen = sizeof(float8);
+ elmbyval = FLOAT8PASSBYVAL;
+ elmalign = TYPALIGN_DOUBLE;
+ break;
+
case INT2OID:
elmlen = sizeof(int16);
elmbyval = true;
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index f709c21e1fe..6fa6ffb51f5 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -2946,9 +2946,7 @@ float8_combine(PG_FUNCTION_ARGS)
transdatums[1] = Float8GetDatumFast(Sx);
transdatums[2] = Float8GetDatumFast(Sxx);
- result = construct_array(transdatums, 3,
- FLOAT8OID,
- sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
+ result = construct_array_builtin(transdatums, 3, FLOAT8OID);
PG_RETURN_ARRAYTYPE_P(result);
}
@@ -3029,9 +3027,7 @@ float8_accum(PG_FUNCTION_ARGS)
transdatums[1] = Float8GetDatumFast(Sx);
transdatums[2] = Float8GetDatumFast(Sxx);
- result = construct_array(transdatums, 3,
- FLOAT8OID,
- sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
+ result = construct_array_builtin(transdatums, 3, FLOAT8OID);
PG_RETURN_ARRAYTYPE_P(result);
}
@@ -3114,9 +3110,7 @@ float4_accum(PG_FUNCTION_ARGS)
transdatums[1] = Float8GetDatumFast(Sx);
transdatums[2] = Float8GetDatumFast(Sxx);
- result = construct_array(transdatums, 3,
- FLOAT8OID,
- sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
+ result = construct_array_builtin(transdatums, 3, FLOAT8OID);
PG_RETURN_ARRAYTYPE_P(result);
}
@@ -3359,9 +3353,7 @@ float8_regr_accum(PG_FUNCTION_ARGS)
transdatums[4] = Float8GetDatumFast(Syy);
transdatums[5] = Float8GetDatumFast(Sxy);
- result = construct_array(transdatums, 6,
- FLOAT8OID,
- sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
+ result = construct_array_builtin(transdatums, 6, FLOAT8OID);
PG_RETURN_ARRAYTYPE_P(result);
}
@@ -3500,9 +3492,7 @@ float8_regr_combine(PG_FUNCTION_ARGS)
transdatums[4] = Float8GetDatumFast(Syy);
transdatums[5] = Float8GetDatumFast(Sxy);
- result = construct_array(transdatums, 6,
- FLOAT8OID,
- sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
+ result = construct_array_builtin(transdatums, 6, FLOAT8OID);
PG_RETURN_ARRAYTYPE_P(result);
}