Search in sources :

Example 1 with DingoCoalesce

use of io.dingodb.calcite.rel.DingoCoalesce in project dingo by dingodb.

the class DingoCoalesceRule method onMatch.

@Override
public void onMatch(@Nonnull RelOptRuleCall call) {
    RelNode rel = call.rel(0);
    RelOptCluster cluster = rel.getCluster();
    call.transformTo(new DingoCoalesce(cluster, rel.getTraitSet().replace(DingoConventions.ROOT), rel));
}
Also used : RelOptCluster(org.apache.calcite.plan.RelOptCluster) RelNode(org.apache.calcite.rel.RelNode) DingoCoalesce(io.dingodb.calcite.rel.DingoCoalesce)

Example 2 with DingoCoalesce

use of io.dingodb.calcite.rel.DingoCoalesce in project dingo by dingodb.

the class TestDingoJobVisitor method testVisitCoalesce.

@Test
public void testVisitCoalesce() {
    RelOptCluster cluster = parser.getCluster();
    DingoCoalesce coalesce = new DingoCoalesce(cluster, cluster.traitSetOf(DingoConventions.ROOT), new DingoExchange(cluster, cluster.traitSetOf(DingoConventions.PARTITIONED), new DingoPartScan(cluster, cluster.traitSetOf(DingoConventions.DISTRIBUTED), table)));
    Job job = DingoJobVisitor.createJob(coalesce);
    Assert.job(job).taskNum(2).task(0, t -> t.operatorNum(3).location(MockMetaServiceProvider.LOC_0).sourceNum(2).source(0, s -> s.isPartScan(TABLE_ID, "0").soleOutput().isA(CoalesceOperator.class)).source(1, s -> s.isA(ReceiveOperator.class).soleOutput().isA(CoalesceOperator.class))).task(1, t -> t.operatorNum(2).location(MockMetaServiceProvider.LOC_1).soleSource().isPartScan(TABLE_ID, "1").soleOutput().isA(SendOperator.class));
}
Also used : RelOptCluster(org.apache.calcite.plan.RelOptCluster) DingoExchange(io.dingodb.calcite.rel.DingoExchange) RelDataTypeFactory(org.apache.calcite.rel.type.RelDataTypeFactory) DingoParserContext(io.dingodb.calcite.DingoParserContext) ValuesOperator(io.dingodb.exec.operator.ValuesOperator) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Assert(io.dingodb.calcite.assertion.Assert) DingoDistributedValues(io.dingodb.calcite.rel.DingoDistributedValues) RelOptTable(org.apache.calcite.plan.RelOptTable) Job(io.dingodb.exec.base.Job) BigDecimal(java.math.BigDecimal) DingoConventions(io.dingodb.calcite.DingoConventions) DingoPartModify(io.dingodb.calcite.rel.DingoPartModify) ImmutableList(com.google.common.collect.ImmutableList) BeforeAll(org.junit.jupiter.api.BeforeAll) DingoCoalesce(io.dingodb.calcite.rel.DingoCoalesce) MockMetaServiceProvider(io.dingodb.calcite.mock.MockMetaServiceProvider) TableModify(org.apache.calcite.rel.core.TableModify) PartModifyOperator(io.dingodb.exec.operator.PartModifyOperator) RelOptCluster(org.apache.calcite.plan.RelOptCluster) RelDataType(org.apache.calcite.rel.type.RelDataType) SqlTypeName(org.apache.calcite.sql.type.SqlTypeName) TableId(io.dingodb.common.table.TableId) StandardCharsets(java.nio.charset.StandardCharsets) Test(org.junit.jupiter.api.Test) DingoParser(io.dingodb.calcite.DingoParser) SendOperator(io.dingodb.exec.operator.SendOperator) List(java.util.List) DingoPartScan(io.dingodb.calcite.rel.DingoPartScan) ReceiveOperator(io.dingodb.exec.operator.ReceiveOperator) DingoValues(io.dingodb.calcite.rel.DingoValues) CoalesceOperator(io.dingodb.exec.operator.CoalesceOperator) ReceiveOperator(io.dingodb.exec.operator.ReceiveOperator) DingoPartScan(io.dingodb.calcite.rel.DingoPartScan) CoalesceOperator(io.dingodb.exec.operator.CoalesceOperator) DingoCoalesce(io.dingodb.calcite.rel.DingoCoalesce) Job(io.dingodb.exec.base.Job) SendOperator(io.dingodb.exec.operator.SendOperator) DingoExchange(io.dingodb.calcite.rel.DingoExchange) Test(org.junit.jupiter.api.Test)

Aggregations

DingoCoalesce (io.dingodb.calcite.rel.DingoCoalesce)2 RelOptCluster (org.apache.calcite.plan.RelOptCluster)2 ImmutableList (com.google.common.collect.ImmutableList)1 DingoConventions (io.dingodb.calcite.DingoConventions)1 DingoParser (io.dingodb.calcite.DingoParser)1 DingoParserContext (io.dingodb.calcite.DingoParserContext)1 Assert (io.dingodb.calcite.assertion.Assert)1 MockMetaServiceProvider (io.dingodb.calcite.mock.MockMetaServiceProvider)1 DingoDistributedValues (io.dingodb.calcite.rel.DingoDistributedValues)1 DingoExchange (io.dingodb.calcite.rel.DingoExchange)1 DingoPartModify (io.dingodb.calcite.rel.DingoPartModify)1 DingoPartScan (io.dingodb.calcite.rel.DingoPartScan)1 DingoValues (io.dingodb.calcite.rel.DingoValues)1 TableId (io.dingodb.common.table.TableId)1 Job (io.dingodb.exec.base.Job)1 CoalesceOperator (io.dingodb.exec.operator.CoalesceOperator)1 PartModifyOperator (io.dingodb.exec.operator.PartModifyOperator)1 ReceiveOperator (io.dingodb.exec.operator.ReceiveOperator)1 SendOperator (io.dingodb.exec.operator.SendOperator)1 ValuesOperator (io.dingodb.exec.operator.ValuesOperator)1