[ https://issues.apache.org/jira/browse/FLINK-29088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17585069#comment-17585069 ]
Aitozi commented on FLINK-29088: -------------------------------- I propose to support this level reuse by this way: 1) Detect the same TableScan with different fields but to the same table. 2) Create a new TableScan with the common fields to replace both, so that they will have the same digest 3) Create extra project to the TableScan if the scan fields changed > 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 > 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)