Skip to content

Perf: simplify LargeList constant haystack in array_has to InList expr #15389

@davidhewitt

Description

@davidhewitt

Is your feature request related to a problem or challenge?

Followup to #15354

We were able to simplify array_has(<constant-size list>, needle) to needle IN <constant-size list> for List scalar values, but not for LargeList.

Describe the solution you'd like

explain with test AS (SELECT substr(md5(i)::text, 1, 32) as needle FROM generate_series(1, 100000) t(i))
select count(*) from test WHERE array_has(arrow_cast(['7f4b18de3cfeb9b4ac78c381ee2ad278', 'a', 'b', 'c'], 'LargeList(Utf8View)'), needle);

This query should demonstrate rewriting of the UDF to IN expression.

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions