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)