[ https://issues.apache.org/jira/browse/FLINK-6326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15974585#comment-15974585 ]
ASF GitHub Bot commented on FLINK-6326: --------------------------------------- Github user fhueske commented on a diff in the pull request: https://github.com/apache/flink/pull/3739#discussion_r112192763 --- Diff: flink-libraries/flink-table/src/test/scala/resources/testProjectMerge.out --- @@ -0,0 +1,156 @@ +== Abstract Syntax Tree == --- End diff -- This file can be removed, IMO. > add ProjectMergeRule at logical optimization stage > -------------------------------------------------- > > Key: FLINK-6326 > URL: https://issues.apache.org/jira/browse/FLINK-6326 > Project: Flink > Issue Type: New Feature > Components: Table API & SQL > Reporter: godfrey he > Assignee: godfrey he > > add ProjectMergeRule to merge projections. Some SQLs can not push projection > into scan without this rule. > e.g. > table1: id: int, name: string > table2: id: string, score: double, first: string, last: string > {code} > SELECT a.id, b.score FROM > (SELECT id FROM table1 WHERE id > 10) a > LEFT OUTER JOIN > (SELECT * FROM table2) b > ON CAST(a.id AS VARCHAR) = b.id > {code} > {code} > == Optimized Logical Plan without ProjectMergeRule == > DataSetCalc(select=[id, score]) > DataSetJoin(where=[=(id0, id1)], join=[id, id0, id1, score, first, last], > joinType=[LeftOuterJoin]) > DataSetCalc(select=[id, CAST(id) AS id0], where=[>(id, 10)]) > BatchTableSourceScan(table=[[table1]], fields=[id]) > BatchTableSourceScan(table=[[table2]], fields=[id, score, first, last]) > {code} > {code} > == Optimized Logical Plan with ProjectMergeRule == > DataSetCalc(select=[id, score]) > DataSetJoin(where=[=(id0, id1)], join=[id, id0, id1, score], > joinType=[LeftOuterJoin]) > DataSetCalc(select=[id, CAST(id) AS id0], where=[>(id, 10)]) > BatchTableSourceScan(table=[[table1]], fields=[id]) > BatchTableSourceScan(table=[[table2]], fields=[id, score]) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)