fix[vortex-array]: fix panic caused by take on listview during compression#6785
fix[vortex-array]: fix panic caused by take on listview during compression#6785
Conversation
657f5ca to
b4ddd9f
Compare
|
I still need to clean this PR up a little, but wanted to see if the direction was appropriate. Is there a more ergonomic way to execute the validity? I see |
c4b9f7a to
d975b8b
Compare
Merging this PR will degrade performance by 10.2%
Performance Changes
Comparing Footnotes
|
d975b8b to
fae0685
Compare
|
Ideally we would fix this at the problematic call sight in the compressor. Since we don't want to force evaluation of the mask in the scan path |
I think I might need a pointer. This fill null is a result of a |
…ssion If a ListView is a child of a Dictionary which is canonicalized during compression, Take is executed on the ListView and subsequently its validity slice. This could result in a lazy FillNull array wrapping the validity which was never executed, causing a panic on serialization "Array vortex.fill_null does not support serialization". This PR executes the validity on rebuild, similar to how offsets/sizes are already executed implicitly via to_primitive. Signed-off-by: Alfonso Subiotto Marques <alfonso.subiotto@polarsignals.com>
fae0685 to
6f59c9a
Compare
|
This is the fix: https://github.com/vortex-data/vortex/pull/6797/changes |
Ok, thanks! Much cleaner |
|
Superseded by #6797 |
If a ListView is a child of a Dictionary which is canonicalized during compression, Take is executed on the ListView and subsequently its validity slice. This could result in a lazy FillNull array wrapping the validity which was never executed, causing a panic on serialization "Array vortex.fill_null does not support serialization". This PR executes the validity on rebuild, similar to how offsets/sizes are already executed implicitly via to_primitive.
Summary
Fixes a panic writing complex nested types -> dict<struct>
Testing
A high-level regression test was added