Skip to content

Commit 18ba5b0

Browse files
committed
implement DictArray batched execute
Signed-off-by: Connor Tsui <[email protected]>
1 parent f95caac commit 18ba5b0

File tree

1 file changed

+16
-0
lines changed
  • vortex-array/src/arrays/dict/vtable

1 file changed

+16
-0
lines changed

vortex-array/src/arrays/dict/vtable/mod.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-FileCopyrightText: Copyright the Vortex contributors
33

44
use vortex_buffer::BufferHandle;
5+
use vortex_compute::take::Take;
56
use vortex_dtype::DType;
67
use vortex_dtype::Nullability;
78
use vortex_dtype::PType;
@@ -14,6 +15,9 @@ use super::DictMetadata;
1415
use crate::DeserializeMetadata;
1516
use crate::ProstMetadata;
1617
use crate::SerializeMetadata;
18+
use crate::kernel::BindCtx;
19+
use crate::kernel::KernelRef;
20+
use crate::kernel::kernel;
1721
use crate::serde::ArrayChildren;
1822
use crate::vtable;
1923
use crate::vtable::ArrayId;
@@ -108,4 +112,16 @@ impl VTable for DictVTable {
108112
DictArray::new_unchecked(codes, values).set_all_values_referenced(all_values_referenced)
109113
})
110114
}
115+
116+
fn bind_kernel(array: &Self::Array, ctx: &mut BindCtx) -> VortexResult<KernelRef> {
117+
let values_kernel = array.values().bind_kernel(ctx)?;
118+
let codes_kernel = array.codes().bind_kernel(ctx)?;
119+
120+
Ok(kernel(move || {
121+
let values = values_kernel.execute()?;
122+
let codes = codes_kernel.execute()?.into_primitive();
123+
124+
Ok(values.take(&codes))
125+
}))
126+
}
111127
}

0 commit comments

Comments
 (0)