[
https://issues.apache.org/jira/browse/CALCITE-4413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17244727#comment-17244727
]
Jiatao Tao commented on CALCITE-4413:
-------------------------------------
[~julianhyde] Rand will be pushed into the join and make the number of rows on
both sides very different.
The original plan was after the join was completed, and finally filtered by
Rand. As a result, Rand was pushed down into the subquery. Cause the final data
volume to change.
> Duplicate RAND() after pushdown when optimizing
> -----------------------------------------------
>
> Key: CALCITE-4413
> URL: https://issues.apache.org/jira/browse/CALCITE-4413
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Jiatao Tao
> Assignee: Jiatao Tao
> Priority: Major
>
> In CsvTest:
> SQL:
> {code:java}
> select *
> from
> (
> select empno, rand(1) as ran
> from EMPS
> where gender <> 'M'
> ) t
> where ran > 0.6
> {code}
>
> PLAN:
> {code:java}
> EnumerableProject(EMPNO=[$0], RAN=[RAND(1)])
> EnumerableInterpreter
> BindableTableScan(table=[[SALES, EMPS]], filters=[[AND(<>($3, 'M'),
> >(RAND(1), 0.6:DECIMAL(2, 1)))]])
> {code}
> We can see there are two "RAND(1)" and it changes the semantics.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)