xzh_dz created CALCITE-3984: ------------------------------- Summary: Support exchange operator in RelFieldTrimmer Key: CALCITE-3984 URL: https://issues.apache.org/jira/browse/CALCITE-3984 Project: Calcite Issue Type: Wish Reporter: xzh_dz
RelFieldTrimmer does not support trim unused fields in exchange operator now. Such as below: {code:java} final RelBuilder builder = RelBuilder.create(config().build()); final RelNode root = builder.scan("EMP") .project(builder.field("EMPNO"), builder.field("ENAME"), builder.field("DEPTNO")) .exchange(RelDistributions.hash(Lists.newArrayList(1))) .project(builder.field("EMPNO"), builder.field("ENAME")) .build(); {code} RelNode root: {code:java} LogicalProject(EMPNO=[$0], ENAME=[$1]) LogicalExchange(distribution=[hash[1]]) LogicalProject(EMPNO=[$0], ENAME=[$1], DEPTNO=[$7]) LogicalTableScan(table=[[scott, EMP]]) {code} The right result should be: {code:java} LogicalExchange(distribution=[hash[1]]) LogicalProject(EMPNO=[$0], ENAME=[$1]) LogicalTableScan(table=[[scott, EMP]]) {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)