Skip to content

Commit 32f66e5

Browse files
committed
implement DictArray batched execute
Signed-off-by: Connor Tsui <[email protected]>
1 parent 1f61d99 commit 32f66e5

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;
@@ -16,6 +17,9 @@ use crate::ArrayRef;
1617
use crate::DeserializeMetadata;
1718
use crate::ProstMetadata;
1819
use crate::SerializeMetadata;
20+
use crate::kernel::BindCtx;
21+
use crate::kernel::KernelRef;
22+
use crate::kernel::kernel;
1923
use crate::serde::ArrayChildren;
2024
use crate::vtable;
2125
use crate::vtable::ArrayId;
@@ -124,4 +128,16 @@ impl VTable for DictVTable {
124128
array.values = values;
125129
Ok(())
126130
}
131+
132+
fn bind_kernel(array: &Self::Array, ctx: &mut BindCtx) -> VortexResult<KernelRef> {
133+
let values_kernel = array.values().bind_kernel(ctx)?;
134+
let codes_kernel = array.codes().bind_kernel(ctx)?;
135+
136+
Ok(kernel(move || {
137+
let values = values_kernel.execute()?;
138+
let codes = codes_kernel.execute()?.into_primitive();
139+
140+
Ok(values.take(&codes))
141+
}))
142+
}
127143
}

0 commit comments

Comments
 (0)