[ 
https://issues.apache.org/jira/browse/CALCITE-3588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16995302#comment-16995302
 ] 

Jin Xing commented on CALCITE-3588:
-----------------------------------

Thanks for feedback, Julian ~

Yeah, the test and exception is as below:

 
{code:java}
// RelToSqlConverterTest.java

@Test public void testJoinConditionWithSimilarTo() {
  String query = ""
      + "select * from \"product\" join \"sales_fact_1997\"\n"
      + "on \"product\".\"product_id\" = \"sales_fact_1997\".\"product_id\"\n"
      + "and \"brand_name\" similar to 'abc'";
  String expected = ""
      + "SELECT *\n"
      + "FROM \"foodmart\".\"product\"\n"
      + "INNER JOIN \"foodmart\".\"sales_fact_1997\" "
      + "ON \"product\".\"product_id\" = \"sales_fact_1997\".\"product_id\" "
      + "AND \"product\".\"brand_name\" SIMILAR TO 'abc'";
  sql(query).ok(expected);
}

Caused by: java.lang.RuntimeException: While invoking method 'public 
org.apache.calcite.rel.rel2sql.SqlImplementor$Result 
org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(org.apache.calcite.rel.core.Join)'
        at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:527)
        at 
org.apache.calcite.rel.rel2sql.RelToSqlConverter.dispatch(RelToSqlConverter.java:123)
        at 
org.apache.calcite.rel.rel2sql.RelToSqlConverter.visitChild(RelToSqlConverter.java:129)
        at 
org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(RelToSqlConverter.java:223)
        ... 70 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524)
        ... 73 more
Caused by: java.lang.AssertionError: SIMILAR TO($2, 'abc')
        at 
org.apache.calcite.rel.rel2sql.SqlImplementor.convertConditionToSqlNode(SqlImplementor.java:290)
        at 
org.apache.calcite.rel.rel2sql.SqlImplementor.convertConditionToSqlNode(SqlImplementor.java:227)
        at 
org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(RelToSqlConverter.java:153)
        ... 78 more
{code}
I will update the tile soon.

 

> Support more operators in Join condition when convert RelNode to SqlNode
> ------------------------------------------------------------------------
>
>                 Key: CALCITE-3588
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3588
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Jin Xing
>            Assignee: Jin Xing
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> Currently Calcite fail to convert RelNode to SqlNode when Join condition 
> contains operators like 'SIMILAR_TO', 'IS_TRUE', 'IS_NOT_TRUE'. 
> AssertionError will be thrown from [1]
>  
> [1] 
> https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java#L290



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to