pick from master #38497 and #39342
use array<double> for array<string>
- array_avg
- array_cum_sum
- array_difference
- array_product
use array<bigint> for array<string>
- bitmap_from_array
use double first
- fmod
- pmod
let high order function throw friendly exception
- array_filter
- array_first
- array_last
- array_reverse_split
- array_sort_by
- array_split
let return type same as parameter's type
- array_push_back
- array_push_front
- array_with_constant
- if
let greatest / least work same as mysql's greatest