Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Bug
-
None
-
None
-
None
Description
Changing
public static final FilterProjectTransposeRule INSTANCE = new FilterProjectTransposeRule(Filter.class, Project.class, true, true, RelFactories.LOGICAL_BUILDER);
to
public static final FilterProjectTransposeRule INSTANCE = new FilterProjectTransposeRule(Filter.class, Project.class, true, false, RelFactories.LOGICAL_BUILDER);
will cause testEmptyFilterProjectUnion plan diff:
LogicalProject(X=[$0], Y=[$1])
LogicalUnion(all=[true])
LogicalFilter(condition=[>(+($0, $1), 30)])
LogicalValues(tuples=[[{ 10, 1 }, { 30, 3 }]])
LogicalFilter(condition=[>(+($0, $1), 30)])
LogicalValues(tuples=[[{ 20, 2 }]])
The expected plan is:
LogicalProject(X=[$0], Y=[$1]) LogicalValues(tuples=[[{ 30, 3 }]])
I am assuming it will generate the same plan no matter copyFilter/copyProject is on or off. Is this wrong assumption?