Hi, team
I'm using ProjectRemoveRule to simplify my logical plan, But the plan
sometimes miss its project alias, I find the rule hasn't checked the alias
for project row type identity equation, so I think it may be a bug, I have
tried to reproduce the problem, but I failed to build two projects.
I have tried the following but the plan always ignores the alias:
final Function<RelBuilder, RelNode> relFn = b -> {
RelNode plan = b.scan("EMP")
.project(
b.field("DEPTNO"),
b.field("ENAME")
)
.project(
b.alias(b.field(0), "DEPTNO_ALIAS"),
b.alias(b.field(1), "ENAME_ALIAS")
)
.build();
return plan;
};
relFn(relFn)
.withRule(
CoreRules.PROJECT_REMOVE)
.withRelBuilderConfig(b -> b.withBloat(-1))
.check();
So I resort to modifying existing test case to reproduce, I change
the testUnionMergeRule test case in RelOptRulesTest.java. I change its
final projection *** to *name as ename, deptno as edeptno*,
and the plan miss the alias again. I think the hep rules shouldn't remove
the alias which are output column label.