[
https://issues.apache.org/jira/browse/CALCITE-3850?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
fa zheng updated CALCITE-3850:
------------------------------
Description:
I execute following sql with calcite 1.21.0 in flink 1.10. When the two
conditions of left outer join are like"ON t1.a=t2.a" and "ON t1.a=t3.a ", it
execute successfully. However, when the two conditions of left outer join are
like "ON IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t2.a" and "ON
IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t3.a", it gets a assert error in
method getRootField.
It also can execute successfully with "ON t1.a=t2.a" and "ON
IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t3.a".
But failed with "ON IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t2.a" and "ON
t1.a=t3.a"
SELECT
...
FROM
(
SELECT
...
) t1
LEFT OUTER JOIN
(
SELECT
...
) t2
ON ...
LEFT OUTER JOIN
(
SELECT
...
) t3
ON ...
was:
I execute following sql with calcite 1.21.0 in flink 1.10. When the two
conditions of left outer join are like"ON t1.a=t2.a" and "ON t1.a=t3.a ", it
execute successfully. However, when the two conditions of left outer join are
like "ON IF(t1.a='...',STRING(RAND(123)),t1.a)=t2.a" and "ON
IF(t1.a='...',STRING(RAND(123)),t1.a)=t3.a", it gets a assert error in method
getRootField.
It also can execute successfully with "ON t1.a=t2.a" and "ON
IF(t1.a='...',STRING(RAND(123)),t1.a)=t3.a".
But failed with "ON IF(t1.a='...',STRING(RAND(123)),t1.a)=t2.a" and "ON
t1.a=t3.a"
SELECT
...
FROM
(
SELECT
...
) t1
LEFT OUTER JOIN
(
SELECT
...
) t2
ON ...
LEFT OUTER JOIN
(
SELECT
...
) t3
ON ...
> AssertionError when converts a SQL parse tree into a relational algebra
> expression
> ----------------------------------------------------------------------------------
>
> Key: CALCITE-3850
> URL: https://issues.apache.org/jira/browse/CALCITE-3850
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.21.0
> Reporter: fa zheng
> Priority: Major
>
> I execute following sql with calcite 1.21.0 in flink 1.10. When the two
> conditions of left outer join are like"ON t1.a=t2.a" and "ON t1.a=t3.a ", it
> execute successfully. However, when the two conditions of left outer join are
> like "ON IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t2.a" and "ON
> IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t3.a", it gets a assert error
> in method getRootField.
> It also can execute successfully with "ON t1.a=t2.a" and "ON
> IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t3.a".
> But failed with "ON IF(t1.a='...',CAST(RAND(123) AS STRING),t1.a)=t2.a" and
> "ON t1.a=t3.a"
> SELECT
> ...
> FROM
> (
> SELECT
> ...
> ) t1
> LEFT OUTER JOIN
> (
> SELECT
> ...
> ) t2
> ON ...
> LEFT OUTER JOIN
> (
> SELECT
> ...
> ) t3
> ON ...
--
This message was sent by Atlassian Jira
(v8.3.4#803005)