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)

Reply via email to