[
https://issues.apache.org/jira/browse/CALCITE-3207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xurenhe updated CALCITE-3207:
-----------------------------
Summary: Fail to convert Join RelNode with like condition to sql statement
(was: Bug of 'JoinRelNode Convert SqlStatement')
> Fail to convert Join RelNode with like condition to sql statement
> -----------------------------------------------------------------
>
> Key: CALCITE-3207
> URL: https://issues.apache.org/jira/browse/CALCITE-3207
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Xurenhe
> Priority: Minor
> Labels: pull-request-available
> Attachments: image-2019-07-22-23-15-32-107.png
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> Hi all
> I have a problem when using calcite, which is 'relnode convert sql statement
> example:
>
> I create a test like below
> {code:java}
> // RelToSqlConverterTest.java
> @Test public void testLeftJoinRel2Sql() {
> final RelBuilder builder = relBuilder();
> final RelNode rel = builder
> .scan("EMP")
> .scan("DEPT")
> .join(JoinRelType.LEFT, builder.and(
> builder.call(SqlStdOperatorTable.EQUALS,
> builder.field(2, 0, "DEPTNO"),
> builder.field(2, 1, "DEPTNO")
> ), builder.call(SqlStdOperatorTable.LIKE,
> builder.field(2, 1, "DNAME"),
> builder.literal("ACCOUNTING"))))
> .build();
> final String sql = toSql(rel);
> final String expectedSql = "SELECT *\n" +
> "FROM \"scott\".\"EMP\"\n" +
> "LEFT JOIN \"scott\".\"DEPT\" ON \"EMP\".\"DEPTNO\" =
> \"DEPT\".\"DEPTNO\"\n" +
> "AND \"DEPT\".\"DNAME\" LIKE 'ACCOUNTING'";
> assertThat(sql, isLinux(expectedSql));
> }{code}
>
> this relNode cannot convert sql statement.
> I try to debug it,
> `org.apache.calcite.rel.rel2sql.SqlImplementor#convertConditionToSqlNode` may
> forgot to handle this case, which sqlKind is SqlKind.LIKE.
> If it is a bug, I am willing to fix it.
> Thanks.
>
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)