Use construct_array_builtin for FLOAT8OID instead of construct_array.

Commit d746021de1 introduced construct_array_builtin() for built-in
data types, but forgot some replacements linked to FLOAT8OID.

Author: Bertrand Drouvot
Reviewed-by: Peter Eisentraut
Discussion: https://postgr.es/m/CAD21AoCERkwmttY44dqUw%3Dm_9QCctu7W%2Bp6B7w_VqxRJA1Qq_Q%40mail.gmail.com
This commit is contained in:
Masahiko Sawada 2024-10-14 09:49:29 -07:00
parent c594f1ad2b
commit 4681ad4b2f
2 changed files with 11 additions and 15 deletions

View File

@ -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;

View File

@ -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);
}