Add execution target that recursively canonicalises as well as canonical with canonical validity#6380
Conversation
98dd2f8 to
9c10680
Compare
Merging this PR will degrade performance by 99.99%
Performance Changes
Comparing Footnotes
|
| array | ||
| .take(indices.to_array()) | ||
| .unwrap() | ||
| .execute::<RecursiveCanonical>(&mut LEGACY_SESSION.create_execution_ctx()) |
There was a problem hiding this comment.
would be better if the ctx was created outside of the bench
vortex-array/src/canonical.rs
Outdated
| fields | ||
| .iter() | ||
| .map(|f| { | ||
| Ok(f.clone().execute::<RecursiveCanonical>(ctx)?.0.into_array()) | ||
| }) | ||
| .collect::<VortexResult<Arc<[_]>>>()?, |
There was a problem hiding this comment.
cna we do this without an alloc?
There was a problem hiding this comment.
sadly no, we could store fields though as Arc<Box<[ArrayRef]>>. Otherwise this only works with unsized locals since after unwrap you get [ArrayRef] and compiler doesn't know what to do with it
joseph-isaacs
left a comment
There was a problem hiding this comment.
Looks good, just one Q
…cal with canonical validity Signed-off-by: Robert Kruszewski <github@robertk.io>
7689e15 to
9c5f077
Compare
Should there be an explicit option to execute validity just by one step?