| 499 | */ |
| 500 | PG_FUNCTION_INFO_V1(array_abs_sum); |
| 501 | Datum |
| 502 | array_abs_sum(PG_FUNCTION_ARGS){ |
| 503 | if (PG_ARGISNULL(0)) { PG_RETURN_NULL(); } |
| 504 | |
| 505 | ArrayType *v = PG_GETARG_ARRAYTYPE_P(0); |
| 506 | Oid element_type = ARR_ELEMTYPE(v); |
| 507 | |
| 508 | Datum res = General_Array_to_Element(v, Float8GetDatum(0), 0.0, |
| 509 | element_abs_sum, noop_finalize); |
| 510 | |
| 511 | PG_FREE_IF_COPY(v, 0); |
| 512 | |
| 513 | return float8_datum_cast(DatumGetFloat8(res), element_type); |
| 514 | } |
| 515 | |
| 516 | |
| 517 | /* |
nothing calls this directly
no test coverage detected