apache / apache/arrow

[C++] Duplicate functions array_filter/array_take and filter/take

Open
#18,821 3 comments 0 reactions 0 assignees View on GitHub
Component: C++ Type: bug
Dominant language
C++
Stars
17.1k
Forks
4.3k
Avg merge
3d 13h
Merged PRs (30d)
88

Description

This has been explained to me as a metafunction and a backend but in that case the backend should not be registered with the function registry. Note both:

```cpp

const FunctionDoc filter_doc(
"Filter with a boolean selection filter",
("The output is populated with values from the input at positions\n"
"where the selection filter is non-zero. Nulls in the selection filter\n"
"are handled based on FilterOptions."),
{"input", "selection_filter"}, "FilterOptions");
```

and

```cpp

const FunctionDoc array_filter_doc(
"Filter with a boolean selection filter",
("The output is populated with values from the input `array` at positions\n"
"where the selection filter is non-zero. Nulls in the selection filter\n"
"are handled based on FilterOptions."),
{"array", "selection_filter"}, "FilterOptions");
```

which seems wrong as well.

Also sort_indices / array_sort_indices

**Reporter**: [Weston Pace](https://issues.apache.org/jira/browse/ARROW-13873) / @westonpace
#### Related issues:
- [[Python] Hide hash_* functions from pyarrow.compute](https://github.com/apache/arrow/issues/29552) (relates to)
- [[Python][C++] index_in_meta_binary/is_in_meta_binary should not show up in functions list](https://github.com/apache/arrow/issues/29556) (relates to)

**Note**: *This issue was originally created as [ARROW-13873](https://issues.apache.org/jira/browse/ARROW-13873). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Contributor guide

Open the contributing guide

Research direction

Start at the function registry and compare the registrations and FunctionDoc definitions for filter/array_filter and take/array_take, then inspect the related sort_indices variants. Confirm which entries are metafunctions versus backend functions and define done as removing duplicate or unintended registry exposure while preserving the intended public functions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.