apache / apache/arrow

[C++][Gandiva] Deal with functions that have lock contention

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

Description

The Gandiva Cache code deal with expressions that contains RE2 patterns in a different way than the other expressions, as one can see in this line in code:

But it is not dealing with all available functions with RE2 patterns, it is missing the following ones:
- ILIKE
- REGEXP_REPLACE

**Reporter**: [Anthony Louis Gotlib Ferreira](https://issues.apache.org/jira/browse/ARROW-15391) / @anthonylouisbsb
#### PRs and other links:
- [GitHub Pull Request #12209](https://github.com/apache/arrow/pull/12209)

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

Contributor guide

Open the contributing guide

Research direction

Start in cpp/src/gandiva/expression_cache_key.h at the linked logic and compare how RE2-pattern functions are handled. Review pull request #12209, then verify that ILIKE and REGEXP_REPLACE receive the same cache treatment as the other listed expressions without lock contention.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.