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

Yu Xu updated CALCITE-7014:
---------------------------
    Description: 
Currently CalcitePrepare can not support convert 
Equal/GreaterThanOrEqual/LessThanOrEqua expression to RexNode, when can related 
JDBC query would error out:
{code:java}
unknown expression type Equal e.empid == 150
java.lang.UnsupportedOperationException: unknown expression type Equal e.empid 
== 150
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
    at 
org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
    at 
org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
 {code}
{code:java}
unknown expression type GreaterThanOrEqual e.empid >= 150
java.lang.UnsupportedOperationException: unknown expression type 
GreaterThanOrEqual e.empid >= 150     
     at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
     
     at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
     
     at 
org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
     
     at 
org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
     
     at 
org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
     
     at 
org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
{code}
{code:java}
unknown expression type LessThanOrEqual e.empid <= 150
java.lang.UnsupportedOperationException: unknown expression type 
GreaterThanOrEqual e.empid >= 150
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
    at 
org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
    at 
org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
 {code}

  was:
Currently CalcitePrepare can not support convert 
Equal/GreaterThanOrEqual/LessThanOrEqua expression to RexNode, when can related 
JDBC query would error out:
{code:java}
unknown expression type Equal e.empid == 150
java.lang.UnsupportedOperationException: unknown expression type Equal e.empid 
== 150
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
    at 
org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
    at 
org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
 {code}
{code:java}
unknown expression type GreaterThanOrEqual e.empid >= 150 
java.lang.UnsupportedOperationException: unknown expression type 
GreaterThanOrEqual e.empid >= 150     at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
     at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
     at 
org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
     at 
org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
     at 
org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
     at 
org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
{code}
{code:java}
unknown expression type LessThanOrEqual e.empid <= 150
java.lang.UnsupportedOperationException: unknown expression type 
GreaterThanOrEqual e.empid >= 150
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
    at 
org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
    at 
org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
    at 
org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
    at 
org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
 {code}


> Support EQUAL/GreaterThanOrEqual/LessThanOrEqual expressions to RexNode In 
> CalcitePrepare
> -----------------------------------------------------------------------------------------
>
>                 Key: CALCITE-7014
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7014
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.39.0
>            Reporter: Yu Xu
>            Assignee: Yu Xu
>            Priority: Major
>             Fix For: 1.40.0
>
>
> Currently CalcitePrepare can not support convert 
> Equal/GreaterThanOrEqual/LessThanOrEqua expression to RexNode, when can 
> related JDBC query would error out:
> {code:java}
> unknown expression type Equal e.empid == 150
> java.lang.UnsupportedOperationException: unknown expression type Equal 
> e.empid == 150
>     at 
> org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
>     at 
> org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
>     at 
> org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
>     at 
> org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
>     at 
> org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
>     at 
> org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
>  {code}
> {code:java}
> unknown expression type GreaterThanOrEqual e.empid >= 150
> java.lang.UnsupportedOperationException: unknown expression type 
> GreaterThanOrEqual e.empid >= 150     
>      at 
> org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
>      
>      at 
> org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
>      
>      at 
> org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
>      
>      at 
> org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
>      
>      at 
> org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
>      
>      at 
> org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
> {code}
> {code:java}
> unknown expression type LessThanOrEqual e.empid <= 150
> java.lang.UnsupportedOperationException: unknown expression type 
> GreaterThanOrEqual e.empid >= 150
>     at 
> org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1379)
>     at 
> org.apache.calcite.prepare.CalcitePrepareImpl$EmptyScalarTranslator.toRex(CalcitePrepareImpl.java:1302)
>     at 
> org.apache.calcite.prepare.LixToRelTranslator.toRex(LixToRelTranslator.java:208)
>     at 
> org.apache.calcite.prepare.QueryableRelBuilder.where(QueryableRelBuilder.java:760)
>     at 
> org.apache.calcite.linq4j.QueryableRecorder$99.replay(QueryableRecorder.java:1016)
>     at 
> org.apache.calcite.prepare.QueryableRelBuilder.toRel(QueryableRelBuilder.java:98)
>  {code}



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

Reply via email to