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 ;
@@ -14,6 +15,9 @@ use super::DictMetadata;
1415use crate :: DeserializeMetadata ;
1516use crate :: ProstMetadata ;
1617use crate :: SerializeMetadata ;
18+ use crate :: kernel:: BindCtx ;
19+ use crate :: kernel:: KernelRef ;
20+ use crate :: kernel:: kernel;
1721use crate :: serde:: ArrayChildren ;
1822use crate :: vtable;
1923use 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}
You can’t perform that action at this time.
0 commit comments