Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 4681ad4

Browse files
Use construct_array_builtin for FLOAT8OID instead of construct_array.
Commit d746021 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
1 parent c594f1a commit 4681ad4

File tree

2 files changed

+11
-15
lines changed

2 files changed

+11
-15
lines changed

src/backend/utils/adt/arrayfuncs.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3404,6 +3404,12 @@ construct_array_builtin(Datum *elems, int nelems, Oid elmtype)
34043404
elmalign = TYPALIGN_INT;
34053405
break;
34063406

3407+
case FLOAT8OID:
3408+
elmlen = sizeof(float8);
3409+
elmbyval = FLOAT8PASSBYVAL;
3410+
elmalign = TYPALIGN_DOUBLE;
3411+
break;
3412+
34073413
case INT2OID:
34083414
elmlen = sizeof(int16);
34093415
elmbyval = true;

src/backend/utils/adt/float.c

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2946,9 +2946,7 @@ float8_combine(PG_FUNCTION_ARGS)
29462946
transdatums[1] = Float8GetDatumFast(Sx);
29472947
transdatums[2] = Float8GetDatumFast(Sxx);
29482948

2949-
result = construct_array(transdatums, 3,
2950-
FLOAT8OID,
2951-
sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
2949+
result = construct_array_builtin(transdatums, 3, FLOAT8OID);
29522950

29532951
PG_RETURN_ARRAYTYPE_P(result);
29542952
}
@@ -3029,9 +3027,7 @@ float8_accum(PG_FUNCTION_ARGS)
30293027
transdatums[1] = Float8GetDatumFast(Sx);
30303028
transdatums[2] = Float8GetDatumFast(Sxx);
30313029

3032-
result = construct_array(transdatums, 3,
3033-
FLOAT8OID,
3034-
sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
3030+
result = construct_array_builtin(transdatums, 3, FLOAT8OID);
30353031

30363032
PG_RETURN_ARRAYTYPE_P(result);
30373033
}
@@ -3114,9 +3110,7 @@ float4_accum(PG_FUNCTION_ARGS)
31143110
transdatums[1] = Float8GetDatumFast(Sx);
31153111
transdatums[2] = Float8GetDatumFast(Sxx);
31163112

3117-
result = construct_array(transdatums, 3,
3118-
FLOAT8OID,
3119-
sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
3113+
result = construct_array_builtin(transdatums, 3, FLOAT8OID);
31203114

31213115
PG_RETURN_ARRAYTYPE_P(result);
31223116
}
@@ -3359,9 +3353,7 @@ float8_regr_accum(PG_FUNCTION_ARGS)
33593353
transdatums[4] = Float8GetDatumFast(Syy);
33603354
transdatums[5] = Float8GetDatumFast(Sxy);
33613355

3362-
result = construct_array(transdatums, 6,
3363-
FLOAT8OID,
3364-
sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
3356+
result = construct_array_builtin(transdatums, 6, FLOAT8OID);
33653357

33663358
PG_RETURN_ARRAYTYPE_P(result);
33673359
}
@@ -3500,9 +3492,7 @@ float8_regr_combine(PG_FUNCTION_ARGS)
35003492
transdatums[4] = Float8GetDatumFast(Syy);
35013493
transdatums[5] = Float8GetDatumFast(Sxy);
35023494

3503-
result = construct_array(transdatums, 6,
3504-
FLOAT8OID,
3505-
sizeof(float8), FLOAT8PASSBYVAL, TYPALIGN_DOUBLE);
3495+
result = construct_array_builtin(transdatums, 6, FLOAT8OID);
35063496

35073497
PG_RETURN_ARRAYTYPE_P(result);
35083498
}

0 commit comments

Comments
 (0)