SubhamSinghal opened a new pull request, #22459:
URL: https://github.com/apache/datafusion/pull/22459
## Which issue does this PR close?
- Partially closes
[#21536](https://github.com/apache/datafusion/issues/21536) (array_add — first
PR in the vector math series).
## Rationale for this change
## What changes are included in this PR?
## Are these changes tested?
Yes, via SLT only (`array_add.slt`). Coverage:
- Happy paths: basic, negative components, single-element, empty,
multi-row.
- NULL propagation: whole-row NULL on each side / both sides;
element-level NULL on each side / both sides at same
and different positions.
- Type / variant: integer literals, mixed int+float,
`LargeList`×`LargeList`, mixed `List`+`LargeList`,
`FixedSizeList` → `List` coercion, `Float32` leaf, `Int64` leaf.
- Decimal handling: `Decimal128` / `Decimal256` rejected at planning;
explicit `cast to DOUBLE` opt-in works.
- Error paths: per-row length mismatch (exec), unsupported non-list input
(plan), non-numeric leaf (plan), boolean
leaf (plan), nested list (plan), wrong arg count.
- Aliases: `list_add` single-row + multi-row.
- Composition: `array_add(array_add(...), ...)` chained — single-row, with
element NULLs propagating across both
layers, and multi-row with row-level NULL.
## Are there any user-facing changes?
Yes — two new functions:
- `array_add(array1, array2) → List<Float64>` / `LargeList<Float64>`
- `list_add(...)` alias
Both exposed via `expr_fn` and registered in
`all_default_nested_functions()`. Documented inline via `#[user_doc]`
(description, syntax, SQL example, argument descriptions).
No breaking API changes.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]