Skip to content

Add the array functions ARRAY_REVERSE / ARRAY_MAX / ARRAY_MIN #792

@Leomrlin

Description

@Leomrlin

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions