[ 
https://issues.apache.org/jira/browse/CALCITE-7472?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yu Xu updated CALCITE-7472:
---------------------------
    Description: 
Currently Arrow adapter can not push down LIKE operator to filter:

eg: 
{code:java}
select \"stringField\ from arrowdatatype where \"stringField\" LIKE '1%'"; 
{code}
plan is :
{code:java}
PLAN=EnumerableCalc(expr#0=[{inputs}], expr#1=['%2%'], expr#2=[LIKE($t0, $t1)], 
stringField=[$t0], $condition=[$t2])\n  ArrowToEnumerableConverter\n
ArrowProject(stringField=[$3])\n      
ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 11, 12, 13, 14, 15]])\n\n {code}
if we can support LIKE operator push down to ArrowFilter which would be better 
and plan should be:
{code:java}
PLAN=ArrowToEnumerableConverter\n
ArrowProject(stringField=[$3])\n
ArrowFilter(condition=[LIKE($3, '%2%')])\n
ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 11, 12, 13, 14, 15]])\n\n {code}

  was:
Currently Arrow adapter can not push down like operator to filter:

eg: 
{code:java}
select \"stringField\ from arrowdatatype where \"stringField\" like '1%'"; 
{code}
plan is :
{code:java}
PLAN=EnumerableCalc(expr#0=[{inputs}], expr#1=['%2%'], expr#2=[LIKE($t0, $t1)], 
stringField=[$t0], $condition=[$t2])\n  ArrowToEnumerableConverter\n
ArrowProject(stringField=[$3])\n      
ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 11, 12, 13, 14, 15]])\n\n {code}
if we can support like operator push down to ArrowFilter which would be better 
and plan should be:
{code:java}
PLAN=ArrowToEnumerableConverter\n
ArrowProject(stringField=[$3])\n
ArrowFilter(condition=[LIKE($3, '%2%')])\n
ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 11, 12, 13, 14, 15]])\n\n {code}


> Arrow adapter should support LIKE operator push down 
> -----------------------------------------------------
>
>                 Key: CALCITE-7472
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7472
>             Project: Calcite
>          Issue Type: Improvement
>          Components: arrow-adapter
>    Affects Versions: 1.41.0
>            Reporter: Yu Xu
>            Assignee: Yu Xu
>            Priority: Minor
>             Fix For: 1.42.0
>
>
> Currently Arrow adapter can not push down LIKE operator to filter:
> eg: 
> {code:java}
> select \"stringField\ from arrowdatatype where \"stringField\" LIKE '1%'"; 
> {code}
> plan is :
> {code:java}
> PLAN=EnumerableCalc(expr#0=[{inputs}], expr#1=['%2%'], expr#2=[LIKE($t0, 
> $t1)], stringField=[$t0], $condition=[$t2])\n  ArrowToEnumerableConverter\n
> ArrowProject(stringField=[$3])\n      
> ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 
> 7, 8, 9, 10, 11, 12, 13, 14, 15]])\n\n {code}
> if we can support LIKE operator push down to ArrowFilter which would be 
> better and plan should be:
> {code:java}
> PLAN=ArrowToEnumerableConverter\n
> ArrowProject(stringField=[$3])\n
> ArrowFilter(condition=[LIKE($3, '%2%')])\n
> ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 
> 7, 8, 9, 10, 11, 12, 13, 14, 15]])\n\n {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to