Add the array functions `ARRAY_REVERSE` / `ARRAY_MAX` / `ARRAY_MIN`
- Dominant language
- Java
- Stars
- 808
- Forks
- 188
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 2
Description
### What & why
`udf/table/array/` currently has just four functions (`ArrayAppend`,
`ArrayContains`, `ArrayDistinct`, `ArrayUnion`). Adding `ARRAY_REVERSE` and
`ARRAY_MAX` / `ARRAY_MIN` rounds out array handling and is a nice exercise in
Java generics and edge-case thinking.
数组函数目录现在只有四个。补上 `ARRAY_REVERSE`(反转)、`ARRAY_MAX`/`ARRAY_MIN`(取最值),
能让数组处理更完整,也是练 Java 泛型和边界思维的好题。
### The task
- `array_reverse(arr)` → reversed array
- `array_max(arr)` / `array_min(arr)` → max/min element (handle numeric types and null elements)
### Where to look
1. There are two patterns to borrow: `ArrayDistinct.java` (array in → array out)
and `ArrayContains.java` (array in → scalar out). Add `ArrayReverse.java`,
`ArrayMax.java`, `ArrayMin.java`.
2. Register in `BuildInSqlFunctionTable.java`.
3. Test empty arrays, arrays with null elements, and single-element arrays.
### Done when
- [ ] Three functions implemented and registered
- [ ] Empty / null-element / single-element cases clearly handled
- [ ] Your policy for null elements in `array_max/min` is explained in the PR
- [ ] Tests pass
Contributor guide
Assessment
This issue has not been assessed yet.