Convert list operator to function in `sql_expr_to_logical_expr`
- Dominant language
- Rust
- Stars
- 9.3k
- Forks
- 2.4k
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 344
Description
Like what we have done for `[] -> MakeArray`.
It is possible to have the similar conversion for other List Operator in the early stage (Sql to LogicExpr).
- List || List -> array_concat #8636
- List || non-List -> array_append #8636
- non-List || List -> array_prepend #8636
TODO
- left <@ right -> array_has_all(right, left)
- left @> right -> array_has_all(left, right)
- list && list -> array_intersect #8496
Other: clean up list/array coercion in `datafusion/expr/src/type_coercion/binary.rs`
_Originally posted by @viirya in https://github.com/apache/arrow-datafusion/pull/8496#discussion_r1423031611_
Contributor guide
Research direction
Start at sql_expr_to_logical_expr and compare the existing [] -> MakeArray conversion with the listed TODO mappings. Review datafusion/expr/src/type_coercion/binary.rs for the related list/array coercion cleanup, using PRs #8636 and #8496 as context. Done means the specified list operators convert to the corresponding array functions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, sql
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100