apache / apache/geaflow

Add the array functions `ARRAY_REVERSE` / `ARRAY_MAX` / `ARRAY_MIN`

Open
#792 1 comment 0 reactions 1 assignee Claimed by @Leomrlin View on GitHub
enhancement good first issue
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.