@Override public RelNode createExchange( RelNode input, RelDistribution distribution) { return LogicalExchange.create(input, distribution); } }
public RelNode convert(RelOptPlanner planner, RelNode rel, RelDistribution toDistribution, boolean allowInfiniteCostConverters) { if (toDistribution == RelDistributions.ANY) { return rel; } // Create a logical sort, then ask the planner to convert its remaining // traits (e.g. convert it to an EnumerableSortRel if rel is enumerable // convention) final Exchange exchange = LogicalExchange.create(rel, toDistribution); RelNode newRel = planner.register(exchange, rel); final RelTraitSet newTraitSet = rel.getTraitSet().replace(toDistribution); if (!newRel.getTraitSet().equals(newTraitSet)) { newRel = planner.changeTraits(newRel, newTraitSet); } return newRel; }
public RelNode convert(RelOptPlanner planner, RelNode rel, RelDistribution toDistribution, boolean allowInfiniteCostConverters) { if (toDistribution == RelDistributions.ANY) { return rel; } // Create a logical sort, then ask the planner to convert its remaining // traits (e.g. convert it to an EnumerableSortRel if rel is enumerable // convention) final Exchange exchange = LogicalExchange.create(rel, toDistribution); RelNode newRel = planner.register(exchange, rel); final RelTraitSet newTraitSet = rel.getTraitSet().replace(toDistribution); if (!newRel.getTraitSet().equals(newTraitSet)) { newRel = planner.changeTraits(newRel, newTraitSet); } return newRel; }
@Test public void testDistributionHash() { final RelNode rel = convertSql("select * from emp"); final RelDistribution dist = RelDistributions.hash(ImmutableList.of(1)); final LogicalExchange exchange = LogicalExchange.create(rel, dist); final RelMetadataQuery mq = RelMetadataQuery.instance(); RelDistribution d = mq.getDistribution(exchange); assertThat(d, is(dist)); }
@Test public void testDistributionSingleton() { final RelNode rel = convertSql("select * from emp"); final RelDistribution dist = RelDistributions.SINGLETON; final LogicalExchange exchange = LogicalExchange.create(rel, dist); final RelMetadataQuery mq = RelMetadataQuery.instance(); RelDistribution d = mq.getDistribution(exchange); assertThat(d, is(dist)); }
@Test public void testDistributionHash() { final RelNode rel = convertSql("select * from emp"); final RelDistribution dist = RelDistributions.hash(ImmutableList.of(1)); final LogicalExchange exchange = LogicalExchange.create(rel, dist); final RelMetadataQuery mq = RelMetadataQuery.instance(); RelDistribution d = mq.getDistribution(exchange); assertThat(d, is(dist)); }
@Test public void testDistributionHashEmpty() { final RelNode rel = convertSql("select * from emp"); final RelDistribution dist = RelDistributions.hash(ImmutableList.<Integer>of()); final LogicalExchange exchange = LogicalExchange.create(rel, dist); final RelMetadataQuery mq = RelMetadataQuery.instance(); RelDistribution d = mq.getDistribution(exchange); assertThat(d, is(dist)); }
@Test public void testDistributionHashEmpty() { final RelNode rel = convertSql("select * from emp"); final RelDistribution dist = RelDistributions.hash(ImmutableList.<Integer>of()); final LogicalExchange exchange = LogicalExchange.create(rel, dist); final RelMetadataQuery mq = RelMetadataQuery.instance(); RelDistribution d = mq.getDistribution(exchange); assertThat(d, is(dist)); }
@Test public void testDistributionSingleton() { final RelNode rel = convertSql("select * from emp"); final RelDistribution dist = RelDistributions.SINGLETON; final LogicalExchange exchange = LogicalExchange.create(rel, dist); final RelMetadataQuery mq = RelMetadataQuery.instance(); RelDistribution d = mq.getDistribution(exchange); assertThat(d, is(dist)); }
case EXCHANGE: final MutableExchange exchange = (MutableExchange) node; return LogicalExchange.create( fromMutable(exchange.getInput(), relBuilder), exchange.distribution); case COLLECT: {
case EXCHANGE: final MutableExchange exchange = (MutableExchange) node; return LogicalExchange.create( fromMutable(exchange.getInput(), relBuilder), exchange.distribution); case COLLECT: {