----------------------------------------------------------------------- * Type cast functions * ----------------------------------------------------------------------- */
| 1192 | * ----------------------------------------------------------------------- |
| 1193 | */ |
| 1194 | static |
| 1195 | inline |
| 1196 | float8 |
| 1197 | datum_float8_cast(Datum elt, Oid element_type) { |
| 1198 | switch(element_type){ |
| 1199 | case INT2OID: |
| 1200 | return (float8) DatumGetInt16(elt); break; |
| 1201 | case INT4OID: |
| 1202 | return (float8) DatumGetInt32(elt); break; |
| 1203 | case INT8OID: |
| 1204 | return (float8) DatumGetInt64(elt); break; |
| 1205 | case FLOAT4OID: |
| 1206 | return (float8) DatumGetFloat4(elt); break; |
| 1207 | case FLOAT8OID: |
| 1208 | return (float8) DatumGetFloat8(elt); break; |
| 1209 | case NUMERICOID: |
| 1210 | return DatumGetFloat8( |
| 1211 | DirectFunctionCall1(numeric_float8_no_overflow, elt)); |
| 1212 | break; |
| 1213 | default: |
| 1214 | ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), |
| 1215 | errmsg("type is not supported"), |
| 1216 | errdetail("Arrays with element type %s are not supported.", |
| 1217 | format_type_be(element_type)))); |
| 1218 | break; |
| 1219 | } |
| 1220 | return 0.0; |
| 1221 | } |
| 1222 | |
| 1223 | static |
| 1224 | inline |
no outgoing calls
no test coverage detected