Part 2 of making Variant a canonical array#7143
Conversation
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
b2879b8 to
5a25819
Compare
| Canonical::Extension(a) => { | ||
| Canonical::Extension(mask_validity_extension(a, validity_mask, ctx)?) | ||
| } | ||
| Canonical::Variant(_) => { |
There was a problem hiding this comment.
Is it not worth doing the push-down now?
| Canonical::Extension(ExtensionArray::new(a.ext_dtype().clone(), filtered_storage)) | ||
| } | ||
| Canonical::Variant(_) => { | ||
| vortex_panic!("Variant arrays don't support filtering") |
There was a problem hiding this comment.
Is it not worth doing the push-down now?
| Canonical::Struct(a) => Canonical::Struct(take_struct(&a, codes)), | ||
| Canonical::Extension(a) => Canonical::Extension(take_extension(&a, codes, ctx)), | ||
| Canonical::Variant(_) => { | ||
| vortex_bail!("Variant arrays don't support Take") |
There was a problem hiding this comment.
Is it not worth doing the push-down now?
|
re pushdown - mostly figured I'll do it as part of/after the next PR, so I have a more concrete thing to test this end to end. |
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Merging this PR will degrade performance by 15.51%
Performance Changes
Comparing Footnotes
|
Summary
Filling up missing parts of making Variant a canonical array. It still not fully supported but this is a step towards it.
These changes started as part of #7130, but I figured they are just noise in that already too big of a PR.
API Changes
Makes variant officially a canonical array and type.