private Prel newScreen(Prel child) { return new ScreenPrel(cluster, traits, child); }
private Prel newScreen(Prel child) { return new ScreenPrel(cluster, traits, child); }
@Override public ScreenPrel copy(RelTraitSet traitSet, List<RelNode> inputs) { return new ScreenPrel(getCluster(), traitSet, sole(inputs)); }
@Override public void onMatch(RelOptRuleCall call) { final ScreenRelBase screen = (ScreenRelBase) call.rel(0); final RelNode input = call.rel(1); final RelTraitSet traits = input.getTraitSet().plus(Prel.PHYSICAL).plus(DistributionTrait.SINGLETON); final RelNode convertedInput = convert(input, traits); ScreenRelBase newScreen = new ScreenPrel(screen.getCluster(), screen.getTraitSet().plus(Prel.PHYSICAL).plus(DistributionTrait.SINGLETON), convertedInput); call.transformTo(newScreen); }