* Template for element-wise help functions */
| 1252 | * Template for element-wise help functions |
| 1253 | */ |
| 1254 | static |
| 1255 | inline |
| 1256 | Datum |
| 1257 | element_op(Datum element, Oid elt_type, Datum result, |
| 1258 | Oid result_type, Datum opt_elt, Oid opt_type, |
| 1259 | float8 (*op)(float8, float8, float8)) { |
| 1260 | if (op == float8_div && |
| 1261 | (result_type == INT2OID || |
| 1262 | result_type == INT4OID || |
| 1263 | result_type == INT8OID)) { |
| 1264 | int64 num = datum_int64_cast(element, elt_type); |
| 1265 | int64 denom = datum_int64_cast(opt_elt, opt_type); |
| 1266 | return int64_datum_cast(int64_div(num, denom), result_type); |
| 1267 | } |
| 1268 | float8 elt = datum_float8_cast(element, elt_type ); |
| 1269 | float8 res = datum_float8_cast(result , result_type); |
| 1270 | float8 opt = datum_float8_cast(opt_elt, opt_type ); |
| 1271 | return float8_datum_cast((*op)(elt, res, opt), result_type); |
| 1272 | } |
| 1273 | |
| 1274 | |
| 1275 | // ------------------------------------------------------------------------ |
no test coverage detected