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

Aitozi commented on FLINK-29088:
--------------------------------

[~twalthr] Thanks for your inputs. 

> I guess the implementation can be a nicely separable logical rule

I'm not sure whether we can detect a same source node in the Logical rule, My 
current solution is working around the {{SubplanReuser}} to find the similar 
source except the project list. And the recreate a new source with the union 
fields of all the projects. 

Do you think it's a reasonable solution?

> Project push down cause the source reuse can not work
> -----------------------------------------------------
>
>                 Key: FLINK-29088
>                 URL: https://issues.apache.org/jira/browse/FLINK-29088
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table SQL / Planner
>            Reporter: Aitozi
>            Assignee: Aitozi
>            Priority: Major
>
> It can be reproduce by 
> {code:java}
>     util.addTable(
>       s"""
>          |create table newX(
>          |  a int,
>          |  b bigint,
>          |  c varchar
>          |) with (
>          |  'connector' = 'values'
>          |  ,'enable-projection-push-down' = 'true'
>          |)
>        """.stripMargin)
>     val sqlQuery =
>       """
>         | SELECT b from newX WHERE a > 10
>         | UNION ALL
>         | SELECT b from newX WHERE b > 10
>       """.stripMargin
>     util.verifyExecPlan(sqlQuery)
> {code}
> if 'enable-projection-push-down' set to true, the source will not be reused. 
> If set to false, the source will be reused. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to