Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Is your feature request related to a problem or challenge?
This ticket is a follow on to #10918 where we implemented enough initial support for StringView / BinaryView that we can show some pretty sweet ClickBench results
Describe the solution you'd like
This epic tracks remaining work to complete the "initial" work which I would like to define as "enable using StringView when reading Strings from Parquet by default"
I am sure there will be additional work / support to add StringView to various other features of DataFusion that we can maybe track with another follow on ticket
Required for enabling StringView by default:
- Enable reading StringView by default from Parquet (
schema_force_string_view) by default #11682 - Support string concat
||forStringViewArray#11766 - COUNT(DISTINCT) on StringView panics:
unreachable code: Utf8/Binary should use ArrowBytesSet#11767 - Support protobuf serialization for
ScalarValue::Utf8ViewandScalarValue::BinaryView#12117 - Support substrait serialization for
ScalarValue::Utf8ViewandScalarValue::BinaryView#12118 - Convert
Utf8View/BinaryView-->Utf8/Binaryat output #12119 - Parquet statistics missing when reading
Utf8asUtf8View#12123 - Support StringView for binary operators like
~,!~, etc #12180 - Support applying parquet bloom filters to StringView columns #12499
- Support Binary --> String coercion for StringView/BinaryView in
LIKE#12500 - Casting from Binary --> Utf8 to evaluate
LIKEslows down some ClickBench queries #12509
Could work around but really should be fixed upstream
- Support casting
BinaryView-->Utf8andLargeUtf8arrow-rs#6162 - Add support for
StringViewandBinaryViewstatistics inStatisticsConverterarrow-rs#6164 - Utf8View / BinaryView /
StringViewArray::slice()andBinaryViewArray::slice()are slow (they allocate) arrow-rs#6408
Additional "Nice to have" Features
- [Epic] Native
StringViewsupport for string functions #11790 - Reduce copying in
CoalesceBatchesExecfor StringViews #11628 - Cast Utf8 -> Utf8View (not the other way around) for binary operators #11881
- Improve performance of SUBSTR for StringViewArray #12031
- Improve performance of REPEAT functions #12015
- [Epic] Complete Initial
StringViewin DataFusion #11752 - Automate testing / ensuring that string functions get the same answer for String, LargeString, StringView, DictionaryString, etc #12415
Reacted by Yongting You, kamille and Xwg
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
alamb commentedon Aug 22, 2024
An update here is that @XiangpengHao has a PR with various changes in #11862
We still need to check that PR and figure out what else is in that PR is needed to be enabled "for real" (with tests, etc)
alamb commentedon Aug 22, 2024
My ideal resolution here is that we end up in the state where the only change we need to enable string view by default is switch the config setting. I will do some more ticket triage later today to outline other items I know of
2010YOUY01 commentedon Aug 24, 2024
Do we have tickets for regexp binary operators? (like
~,!~...)https://datafusion.apache.org/user-guide/sql/operators.html#op-re-match
I noticed stringview is not supported on them yet and they have separate implementation than regexp functions
Details
alamb commentedon Aug 24, 2024
Not that I know of -- it would be great to add them
alamb commentedon Aug 26, 2024
Filed #12180
alamb commentedon Oct 5, 2024
I am going to try and polish up PR to enable string view by default PR (with the arrow upgrade and various recent improvements) and see how close we are #12092
alamb commentedon Oct 30, 2024
StringView by default is finally merged into DataFusion: #13101 so I am claiming success and completion of this issue