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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy