public static RelTraitSet getSortTraitSet(RelOptCluster cluster, RelTraitSet traitSet, RelCollation collation) { return traitSet.plus(collation); }
public static RelTraitSet getSortTraitSet(RelOptCluster cluster, RelTraitSet traitSet, RelCollation collation) { return traitSet.plus(collation); }
private RelNode convertToStormRel(RelNode relNode) throws RelConversionException { RelTraitSet traitSet = relNode.getTraitSet(); traitSet = traitSet.simplify(); // PlannerImpl.transform() optimizes RelNode with ruleset return planner.transform(STORM_REL_CONVERSION_RULES, traitSet.plus(StreamsLogicalConvention.INSTANCE), relNode); }
/** * Creates a HiveSortExchange. * * @param input Input relational expression * @param distribution Distribution specification * @param collation Collation specification * @param joinKeys Join Keys specification */ public static HiveSortExchange create(RelNode input, RelDistribution distribution, RelCollation collation, ImmutableList<RexNode> joinKeys) { RelOptCluster cluster = input.getCluster(); distribution = RelDistributionTraitDef.INSTANCE.canonize(distribution); collation = RelCollationTraitDef.INSTANCE.canonize(collation); RelTraitSet traitSet = RelTraitSet.createEmpty().plus(distribution).plus(collation); return new HiveSortExchange(cluster, traitSet, input, distribution, collation, joinKeys); }
@Override public DruidOuterQueryRel asBindable() { return new DruidOuterQueryRel( getCluster(), getTraitSet().plus(BindableConvention.INSTANCE), sourceRel, partialQuery, getQueryMaker() ); }
@Override public DruidQueryRel asBindable() { return new DruidQueryRel( getCluster(), getTraitSet().plus(BindableConvention.INSTANCE), table, druidTable, getQueryMaker(), partialQuery ); }
/** * Creates a HiveSortExchange. * * @param input Input relational expression * @param distribution Distribution specification * @param collation Collation specification * @param joinKeys Join Keys specification */ public static HiveSortExchange create(RelNode input, RelDistribution distribution, RelCollation collation, ImmutableList<RexNode> joinKeys) { RelOptCluster cluster = input.getCluster(); distribution = RelDistributionTraitDef.INSTANCE.canonize(distribution); collation = RelCollationTraitDef.INSTANCE.canonize(collation); RelTraitSet traitSet = RelTraitSet.createEmpty().plus(distribution).plus(collation); return new HiveSortExchange(cluster, traitSet, input, distribution, collation, joinKeys); }
@Override public DruidOuterQueryRel asDruidConvention() { return new DruidOuterQueryRel( getCluster(), getTraitSet().plus(DruidConvention.instance()), RelOptRule.convert(sourceRel, DruidConvention.instance()), partialQuery, getQueryMaker() ); }
planner.getEmptyTraitSet() .replace(DruidConvention.instance()) .plus(root.collation), root.rel );
@Override public TableScan createTableScan(List<PartitionLocation> newPartitions, boolean wasAllPartitionsPruned /* ignored */) throws Exception { GroupScan newGroupScan = createNewGroupScan(newPartitions); return new DrillScanRel(scanRel.getCluster(), scanRel.getTraitSet().plus(DrillRel.DRILL_LOGICAL), scanRel.getTable(), newGroupScan, scanRel.getRowType(), scanRel.getColumns(), true /*filter pushdown*/); }
planner.getEmptyTraitSet() .replace(BindableConvention.INSTANCE) .plus(root.collation), root.rel );
newTraits.plus(trait); final ScanPrel newScan = new ScanPrel(scan.getCluster(), newTraits.plus(Prel.DRILL_PHYSICAL), groupScan.clone(columnInfo.getFields()), columnInfo.createNewRowType(project.getInput().getCluster().getTypeFactory()), scan.getTable()); project.getTraitSet().plus(Prel.DRILL_PHYSICAL), newScan, newProjects,
@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); }
@Override public void onMatch(RelOptRuleCall call) { final SampleRel sample = (SampleRel) call.rel(0); final RelNode input = sample.getInput(); final RelNode convertedInput = convert(input, input.getTraitSet().plus(Prel.PHYSICAL)); final SamplePrel samplePrel = new SamplePrel(sample.getCluster(), sample.getTraitSet().plus(Prel.PHYSICAL), convertedInput); call.transformTo(samplePrel); } }
@Override public void onMatch(RelOptRuleCall call) { final SampleCrel sample = call.rel(0); final RelNode input = sample.getInput(); final RelNode convertedInput = convert(input, input.getTraitSet().plus(Rel.LOGICAL).simplify()); call.transformTo(new SampleRel(sample.getCluster(), convertedInput.getTraitSet().plus(Rel.LOGICAL), convertedInput)); } }
@Override public void onMatch(RelOptRuleCall call) { final Sort sort = call.rel(0); final RelNode input = sort.getInput(); final RelTraitSet traits = sort.getTraitSet().plus(Rel.LOGICAL); final RelNode convertedInput = convert(input, input.getTraitSet().plus(Rel.LOGICAL).simplify()); call.transformTo(new SortRel(sort.getCluster(), traits, convertedInput, sort.getCollation())); } }
@Override public void onMatch(RelOptRuleCall call) { final EmptyRel empty = call.rel(0); final RelTraitSet traits = empty.getTraitSet().plus(Prel.PHYSICAL); call.transformTo(new EmptyPrel(empty.getCluster(), traits, empty.getRowType(), empty.getSchema())); } }
@Override public void onMatch(RelOptRuleCall call) { final LogicalValues values = (LogicalValues) call.rel(0); final RelTraitSet traits = values.getTraitSet().plus(Rel.LOGICAL); call.transformTo(new ValuesRel(values.getCluster(), values.getRowType(), values.getTuples(), traits)); } }
@Override public void onMatch(RelOptRuleCall call) { final FilterRel filter = (FilterRel) call.rel(0); final RelNode input = filter.getInput(); RelTraitSet traits = input.getTraitSet().plus(Prel.PHYSICAL); RelNode convertedInput = convert(input, traits); boolean transform = new Subset(call).go(filter, convertedInput); if (!transform) { call.transformTo(new FilterPrel(filter.getCluster(), convertedInput.getTraitSet(), convertedInput, filter.getCondition())); } }
@Override public RelNode convert(RelNode r) { Sort rel = (Sort) r; return new SortPrel(rel.getCluster(), rel.getInput().getTraitSet().replace(Prel.PHYSICAL).plus(rel.getCollation()), convert(rel.getInput(), rel.getInput().getTraitSet().replace(Prel.PHYSICAL).simplify()), rel.getCollation()); } }