From a3c14a7e3199f8fa9f348dcb12700523adc838cf Mon Sep 17 00:00:00 2001 From: Nicholas Gates Date: Mon, 2 Mar 2026 12:52:43 -0500 Subject: [PATCH 1/2] feat: migrate Zstd decompressors to iterative execute ZstdVTable and ZstdBuffersVTable no longer recursively call .execute() after decompression. Instead they return Done with the decompressed intermediate, letting the scheduler re-enter execution on the result naturally. Signed-off-by: Nicholas Gates Co-Authored-By: Claude Opus 4.6 --- encodings/zstd/src/array.rs | 7 ++----- encodings/zstd/src/zstd_buffers.rs | 4 +--- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/encodings/zstd/src/array.rs b/encodings/zstd/src/array.rs index f7263939e4d..9578ebcecb8 100644 --- a/encodings/zstd/src/array.rs +++ b/encodings/zstd/src/array.rs @@ -272,11 +272,8 @@ impl VTable for ZstdVTable { Ok(()) } - fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult { - array - .decompress()? - .execute::(ctx) - .map(ExecutionStep::Done) + fn execute(array: &Self::Array, _ctx: &mut ExecutionCtx) -> VortexResult { + Ok(ExecutionStep::Done(array.decompress()?)) } fn reduce_parent( diff --git a/encodings/zstd/src/zstd_buffers.rs b/encodings/zstd/src/zstd_buffers.rs index ff733475a95..3fd2e84ce3e 100644 --- a/encodings/zstd/src/zstd_buffers.rs +++ b/encodings/zstd/src/zstd_buffers.rs @@ -470,9 +470,7 @@ impl VTable for ZstdBuffersVTable { fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult { let session = ctx.session(); let inner_array = array.decompress_and_build_inner(session)?; - inner_array - .execute::(ctx) - .map(ExecutionStep::Done) + Ok(ExecutionStep::Done(inner_array)) } } From e7e9518d9fee564956ff86a10844d69700b79bc5 Mon Sep 17 00:00:00 2001 From: Nicholas Gates Date: Mon, 2 Mar 2026 14:00:19 -0500 Subject: [PATCH 2/2] chore: regenerate public-api.lock files Signed-off-by: Nicholas Gates Co-Authored-By: Claude Opus 4.6 --- encodings/zstd/public-api.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/encodings/zstd/public-api.lock b/encodings/zstd/public-api.lock index 9f351777a4c..c863b07ac90 100644 --- a/encodings/zstd/public-api.lock +++ b/encodings/zstd/public-api.lock @@ -196,7 +196,7 @@ pub fn vortex_zstd::ZstdVTable::deserialize(bytes: &[u8], _dtype: &vortex_array: pub fn vortex_zstd::ZstdVTable::dtype(array: &vortex_zstd::ZstdArray) -> &vortex_array::dtype::DType -pub fn vortex_zstd::ZstdVTable::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_zstd::ZstdVTable::execute(array: &Self::Array, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_zstd::ZstdVTable::id(_array: &Self::Array) -> vortex_array::vtable::dyn_::ArrayId