Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
I noticed this behavior while working on support for DictionaryArrays and wanted to capture it in a ticket in case someone has time to work on it.
In order to implement an equality predicate to a constant such as d1 = 'three', DataFusion effectively creates an array with the same value 'three' repeated over and over again and uses the equality compute kernel. This is ... suboptimal.
Here is what the predicate looks like:
predicate: BinaryExpr { left: CastExpr { expr: Column { name: "d1", }, cast_type: Utf8, }, op: Eq, right: Literal { value: Utf8("three"), }, },
Attachments
Issue Links
- relates to
-
ARROW-8907 [Rust] implement scalar comparison operations
- Resolved
-
ARROW-8908 [Rust][DataFusion] improve performance of building literal arrays
- Closed
- links to