Search in sources :

Example 6 with DingoPartScan

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

the class DingoPartScanRule method onMatch.

@Override
public void onMatch(@Nonnull RelOptRuleCall call) {
    DingoTableScan rel = call.rel(0);
    call.transformTo(new DingoPartScan(rel.getCluster(), rel.getTraitSet().replace(DingoConventions.DISTRIBUTED), rel.getTable(), rel.getFilter(), rel.getSelection()));
}
Also used : DingoPartScan(io.dingodb.calcite.rel.DingoPartScan) DingoTableScan(io.dingodb.calcite.rel.DingoTableScan)

Example 7 with DingoPartScan

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

the class TestDingoJobVisitor method testVisitExchange.

@Test
public void testVisitExchange() {
    RelOptCluster cluster = parser.getCluster();
    DingoExchange exchange = new DingoExchange(cluster, cluster.traitSetOf(DingoConventions.PARTITIONED), new DingoPartScan(cluster, cluster.traitSetOf(DingoConventions.DISTRIBUTED), table));
    Job job = DingoJobVisitor.createJob(exchange);
    Assert.job(job).taskNum(2).task(0, t -> t.operatorNum(2).location(MockMetaServiceProvider.LOC_0).sourceNum(2).source(0, s -> s.isPartScan(TABLE_ID, "0").soleOutput().isNull()).source(1, s -> s.isA(ReceiveOperator.class).soleOutput().isNull())).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) Job(io.dingodb.exec.base.Job) SendOperator(io.dingodb.exec.operator.SendOperator) DingoExchange(io.dingodb.calcite.rel.DingoExchange) Test(org.junit.jupiter.api.Test)

Example 8 with DingoPartScan

use of io.dingodb.calcite.rel.DingoPartScan 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

DingoPartScan (io.dingodb.calcite.rel.DingoPartScan)8 DingoExchange (io.dingodb.calcite.rel.DingoExchange)7 Test (org.junit.jupiter.api.Test)7 AssertRelNode (io.dingodb.calcite.assertion.AssertRelNode)4 EnumerableRoot (io.dingodb.calcite.rel.EnumerableRoot)4 RelOptNode (org.apache.calcite.plan.RelOptNode)4 RelNode (org.apache.calcite.rel.RelNode)4 ImmutableList (com.google.common.collect.ImmutableList)3 DingoConventions (io.dingodb.calcite.DingoConventions)3 DingoParser (io.dingodb.calcite.DingoParser)3 DingoParserContext (io.dingodb.calcite.DingoParserContext)3 Assert (io.dingodb.calcite.assertion.Assert)3 MockMetaServiceProvider (io.dingodb.calcite.mock.MockMetaServiceProvider)3 DingoCoalesce (io.dingodb.calcite.rel.DingoCoalesce)3 DingoDistributedValues (io.dingodb.calcite.rel.DingoDistributedValues)3 DingoPartModify (io.dingodb.calcite.rel.DingoPartModify)3 DingoValues (io.dingodb.calcite.rel.DingoValues)3 TableId (io.dingodb.common.table.TableId)3 Job (io.dingodb.exec.base.Job)3 CoalesceOperator (io.dingodb.exec.operator.CoalesceOperator)3