| 321 | } // namespace |
| 322 | |
| 323 | void RegisterVectorSelection(FunctionRegistry* registry) { |
| 324 | // Filter kernels |
| 325 | std::vector<SelectionKernelData> filter_kernels; |
| 326 | PopulateFilterKernels(&filter_kernels); |
| 327 | |
| 328 | VectorKernel filter_base; |
| 329 | filter_base.init = FilterState::Init; |
| 330 | RegisterSelectionFunction("array_filter", array_filter_doc, filter_base, |
| 331 | std::move(filter_kernels), GetDefaultFilterOptions(), |
| 332 | registry); |
| 333 | |
| 334 | DCHECK_OK(registry->AddFunction(MakeFilterMetaFunction())); |
| 335 | |
| 336 | // Take kernels |
| 337 | std::vector<SelectionKernelData> take_kernels; |
| 338 | PopulateTakeKernels(&take_kernels); |
| 339 | |
| 340 | VectorKernel take_base; |
| 341 | take_base.init = TakeState::Init; |
| 342 | take_base.can_execute_chunkwise = false; |
| 343 | RegisterSelectionFunction("array_take", array_take_doc, take_base, |
| 344 | std::move(take_kernels), GetDefaultTakeOptions(), registry); |
| 345 | |
| 346 | DCHECK_OK(registry->AddFunction(MakeTakeMetaFunction())); |
| 347 | |
| 348 | // DropNull kernel |
| 349 | DCHECK_OK(registry->AddFunction(std::make_shared<DropNullMetaFunction>())); |
| 350 | |
| 351 | DCHECK_OK(registry->AddFunction( |
| 352 | MakeIndicesNonZeroFunction("indices_nonzero", indices_nonzero_doc))); |
| 353 | } |
| 354 | |
| 355 | } // namespace internal |
| 356 | } // namespace compute |
no test coverage detected