File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed
vortex-array/src/arrays/dict/vtable Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change 22// SPDX-FileCopyrightText: Copyright the Vortex contributors
33
44use vortex_buffer:: BufferHandle ;
5+ use vortex_compute:: take:: Take ;
56use vortex_dtype:: DType ;
67use vortex_dtype:: Nullability ;
78use vortex_dtype:: PType ;
@@ -16,6 +17,9 @@ use crate::ArrayRef;
1617use crate :: DeserializeMetadata ;
1718use crate :: ProstMetadata ;
1819use crate :: SerializeMetadata ;
20+ use crate :: kernel:: BindCtx ;
21+ use crate :: kernel:: KernelRef ;
22+ use crate :: kernel:: kernel;
1923use crate :: serde:: ArrayChildren ;
2024use crate :: vtable;
2125use 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}
You can’t perform that action at this time.
0 commit comments