[
https://issues.apache.org/jira/browse/ARROW-15215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated ARROW-15215:
-----------------------------------
Labels: good-second-issue pull-request-available (was: good-second-issue)
> [C++] Consolidate kernel data-copy utilities between replace_with_mask,
> case_when, coalesce, choose, fill_null_forward, fill_null_backward
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ARROW-15215
> URL: https://issues.apache.org/jira/browse/ARROW-15215
> Project: Apache Arrow
> Issue Type: Improvement
> Components: C++
> Reporter: David Li
> Assignee: Jabari Booker
> Priority: Major
> Labels: good-second-issue, pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> All six kernels use two sets of otherwise very similar kernel utilities for
> copying slices of an array into an output array. However, there's no reason
> they can't use the same utilities.
> The first set are here: "CopyFixedWidth"
> https://github.com/apache/arrow/blob/bd356295f6beaba744a2c6b498455701f53a64f8/cpp/src/arrow/compute/kernels/scalar_if_else.cc#L1282-L1284
> The second set are here: "ReplaceWithMask::CopyData"
> https://github.com/apache/arrow/blob/bd356295f6beaba744a2c6b498455701f53a64f8/cpp/src/arrow/compute/kernels/vector_replace.cc#L208-L209
> (This is a little confusing because the utilities are intertwined into the
> kernel implementation)
> They would need to be moved into a new header to share them between the
> codegen units. Also, their interfaces would need to be consolidated.
> Additionally, the utilities may be excessively verbose, or generate too much
> code for what they do. For instance, some of the utilities are templated out
> for every Arrow type. Instead, we could replace all instantiations for
> numbers, decimals, temporal types, and so on with a single one for
> FixedWidthType (an abstract base class). Care should be taken to evaluate the
> benchmarks for these kernels to ensure there is not a regression.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)