public SortRel copy( RelTraitSet traitSet, RelNode newInput, RelCollation newCollation) { return copy(traitSet, newInput, newCollation, offset, fetch); }
public SortRel copy( RelTraitSet traitSet, RelNode newInput, RelCollation newCollation) { return copy(traitSet, newInput, newCollation, offset, fetch); }
public void onMatch(RelOptRuleCall call) { ProjectRel project = call.rel(0); SortRel sort = call.rel(1); if (sort.getClass() != SortRel.class) { return; } RelNode newProject = project.copy( project.getTraitSet(), ImmutableList.of(sort.getChild())); final SortRel newSort = sort.copy( sort.getTraitSet(), newProject, sort.getCollation(), sort.offset, sort.fetch); call.transformTo(newSort); } }
sort.copy( sort.getTraitSet(), newInput,
sort.copy( sort.getTraitSet(), newInput,
@Override public void onMatch(RelOptRuleCall call) { final SortRel sort = call.rel(0); if (sort.offset == null && sort.fetch == null) { return; } final RelTraitSet traitSet = sort.getTraitSet().replace(EnumerableConvention.INSTANCE); RelNode input = sort.getChild(); if (!sort.getCollation().getFieldCollations().isEmpty()) { // Create a sort with the same sort key, but no offset or fetch. input = sort.copy( sort.getTraitSet(), input, sort.getCollation(), null, null); } RelNode x = convert( input, input.getTraitSet().replace(EnumerableConvention.INSTANCE)); call.transformTo( new EnumerableLimitRel( sort.getCluster(), traitSet, x, sort.offset, sort.fetch)); } }
@Override public void onMatch(RelOptRuleCall call) { final SortRel sort = call.rel(0); if (sort.offset == null && sort.fetch == null) { return; } final RelTraitSet traitSet = sort.getTraitSet().replace(EnumerableConvention.INSTANCE); RelNode input = sort.getChild(); if (!sort.getCollation().getFieldCollations().isEmpty()) { input = sort.copy( sort.getTraitSet().replace(RelCollationImpl.EMPTY), input, RelCollationImpl.EMPTY, null, null); } RelNode x = convert( input, input.getTraitSet().replace(EnumerableConvention.INSTANCE)); call.transformTo( new EnumerableLimitRel( sort.getCluster(), traitSet, x, sort.offset, sort.fetch)); } }
RexUtil.apply(map, sort.getCollation())); final SortRel newSort = sort.copy( sort.getTraitSet().replace(newCollation), project.getChild(),