[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new 96281cf pending 96281cf is described below commit 96281cf31517959b9ef33afae48e63c3091f93ad Author: Igor Seliverstov AuthorDate: Fri Nov 29 17:04:41 2019 +0300 pending --- .../query/calcite/cluster/RegistryImpl.java| 6 +- .../NoOpFactory.java => exchange/EndMarker.java} | 18 +-- .../query/calcite/exchange/ExchangeService.java| 30 .../processors/query/calcite/exchange/Inbox.java | 23 +++ .../processors/query/calcite/exchange/Outbox.java | 166 + .../NoOpFactory.java => exec/AbstractNode.java}| 29 ++-- .../NoOpFactory.java => exec/FilterNode.java} | 32 ++-- .../processors/query/calcite/exec/JoinNode.java| 101 + .../processors/query/calcite/exec/Node.java| 27 .../NoOpFactory.java => exec/SingleNode.java} | 24 +-- .../{trait/NoOpFactory.java => exec/Sink.java} | 29 ++-- .../processors/query/calcite/exec/Source.java | 24 +++ .../query/calcite/metadata/FragmentInfo.java | 20 +-- .../calcite/metadata/IgniteMdFragmentInfo.java | 3 +- .../query/calcite/metadata/NodesMapping.java | 19 ++- .../processors/query/calcite/rel/Receiver.java | 39 ++--- .../processors/query/calcite/rel/Sender.java | 41 ++--- .../calcite/serialize/relation/ReceiverNode.java | 16 +- .../calcite/serialize/relation/SenderNode.java | 15 +- .../query/calcite/splitter/Fragment.java | 80 +- .../query/calcite/splitter/QueryPlan.java | 3 +- .../Source.java} | 38 ++--- .../NoOpFactory.java => splitter/SourceImpl.java} | 24 +-- .../query/calcite/splitter/Splitter.java | 8 +- .../NoOpFactory.java => splitter/Target.java} | 24 +-- .../SenderNode.java => splitter/TargetImpl.java} | 33 ++-- .../query/calcite/trait/AllTargetsFactory.java | 4 +- .../query/calcite/trait/HashFunctionFactory.java | 4 +- .../query/calcite/trait/NoOpFactory.java | 4 +- .../query/calcite/trait/RandomTargetFactory.java | 4 +- .../query/calcite/trait/SingleTargetFactory.java | 7 +- .../query/calcite/CalciteQueryProcessorTest.java | 54 +-- .../query/calcite/exchange/OutboxTest.java | 133 + .../ignite/testsuites/IgniteCalciteTestSuite.java | 5 +- 34 files changed, 754 insertions(+), 333 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java index 8e5773b..71f8077 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java @@ -43,6 +43,8 @@ import org.apache.ignite.internal.processors.query.calcite.util.Commons; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; +import static org.apache.ignite.internal.processors.query.calcite.metadata.NodesMapping.DEDUPLICATED; + /** * */ @@ -65,13 +67,13 @@ public class RegistryImpl implements DistributionRegistry, LocationRegistry { } @Override public NodesMapping local() { -return new NodesMapping(Collections.singletonList(ctx.discovery().localNode().id()), null, (byte) 0); +return new NodesMapping(Collections.singletonList(ctx.discovery().localNode().id()), null, DEDUPLICATED); } @Override public NodesMapping random(AffinityTopologyVersion topVer) { List nodes = ctx.discovery().discoCache(topVer).serverNodes(); -return new NodesMapping(Commons.transform(nodes, ClusterNode::id), null, (byte) 0); +return new NodesMapping(Commons.transform(nodes, ClusterNode::id), null, DEDUPLICATED); } @Override public NodesMapping distributed(int cacheId, AffinityTopologyVersion topVer) { diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/NoOpFactory.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/EndMarker.java similarity index 59% copy from modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/NoOpFactory.java copy to modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/EndMarker.java index 1988671..ecbfef2 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/NoOpFactory.java +++
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new 7895303 pending 7895303 is described below commit 7895303c5ac06ed35867ea42153c8c39556bf943 Author: Igor Seliverstov AuthorDate: Fri Nov 22 17:38:31 2019 +0300 pending --- .../query/calcite/metadata/FragmentInfo.java | 25 ++-- .../query/calcite/schema/IgniteTable.java | 2 +- .../calcite/serialize/GraphToRelConverter.java | 29 -- .../query/calcite/serialize/RelGraphNode.java | 4 +- .../calcite/serialize/SerializedCorrelationId.java | 46 -- ...rializedTraitSet.java => SerializedTraits.java} | 4 +- .../query/calcite/splitter/Fragment.java | 7 .../processors/query/calcite/util/Commons.java | 2 - 8 files changed, 9 insertions(+), 110 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentInfo.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentInfo.java index 6d6aa1b..9badd91 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentInfo.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentInfo.java @@ -17,7 +17,6 @@ package org.apache.ignite.internal.processors.query.calcite.metadata; import com.google.common.collect.ImmutableList; -import org.apache.calcite.util.ImmutableIntList; import org.apache.ignite.internal.processors.query.calcite.splitter.Fragment; /** @@ -26,18 +25,16 @@ import org.apache.ignite.internal.processors.query.calcite.splitter.Fragment; public class FragmentInfo { private final NodesMapping mapping; private final ImmutableList remoteInputs; -private final ImmutableIntList localInputs; public FragmentInfo(Fragment remoteInput) { -this(null, ImmutableList.of(remoteInput), null); +this(ImmutableList.of(remoteInput), null); } -public FragmentInfo(int localInput, NodesMapping mapping) { -this(ImmutableIntList.of(localInput), null, mapping); +public FragmentInfo(NodesMapping mapping) { +this(null, mapping); } -public FragmentInfo(ImmutableIntList localInputs, ImmutableList remoteInputs, NodesMapping mapping) { -this.localInputs = localInputs; +public FragmentInfo(ImmutableList remoteInputs, NodesMapping mapping) { this.remoteInputs = remoteInputs; this.mapping = mapping; } @@ -50,13 +47,8 @@ public class FragmentInfo { return remoteInputs; } -public ImmutableIntList localInputs() { -return localInputs; -} - public FragmentInfo merge(FragmentInfo other) throws LocationMappingException { return new FragmentInfo( -merge(localInputs(), other.localInputs()), merge(remoteInputs(), other.remoteInputs()), merge(mapping(), other.mapping())); } @@ -78,13 +70,4 @@ public class FragmentInfo { return ImmutableList.builder().addAll(left).addAll(right).build(); } - -private static ImmutableIntList merge(ImmutableIntList left, ImmutableIntList right) { -if (left == null) -return right; -if (right == null) -return left; - -return left.appendAll(right); -} } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java index 25d1931..b14ea3b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java @@ -83,7 +83,7 @@ public class IgniteTable extends AbstractTable implements TranslatableTable { public FragmentInfo fragmentInfo(Context ctx) { int cacheId = CU.cacheId(cacheName); -return new FragmentInfo(cacheId, locationRegistry(ctx).distributed(cacheId, topologyVersion(ctx))); +return new FragmentInfo(locationRegistry(ctx).distributed(cacheId, topologyVersion(ctx))); } private LocationRegistry locationRegistry(Context ctx) { diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/serialize/GraphToRelConverter.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/serialize/GraphToRelConverter.java deleted file mode 100644 index abf4cdf..000 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/serialize/GraphToRelConverter.java +++
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new ecbb326 pending ecbb326 is described below commit ecbb326567bf7a0d53a5a6ad74f005ee0ed0c34e Author: Igor Seliverstov AuthorDate: Fri Nov 22 15:51:19 2019 +0300 pending --- .../query/calcite/cluster/RegistryImpl.java| 75 -- .../calcite/metadata/IgniteMdFragmentInfo.java | 2 +- .../query/calcite/metadata/NodesMapping.java | 52 +- .../query/calcite/prepare/IgnitePlanner.java | 56 +-- .../processors/query/calcite/rel/Receiver.java | 35 ++- .../processors/query/calcite/rel/Sender.java | 22 + .../query/calcite/serialize/ConversionContext.java | 92 ++ ...Expression.java => DynamicParamExpression.java} | 8 +- .../{ExpressionType.java => ExpDataType.java} | 6 +- .../query/calcite/serialize/ExpImplementor.java| 2 + .../calcite/serialize/ExpToRexTranslator.java | 4 + .../query/calcite/serialize/FilterNode.java| 50 ++ .../processors/query/calcite/serialize/Graph.java | 52 ++ .../query/calcite/serialize/GraphNode.java | 4 +- .../{GraphNode.java => GraphToRelConverter.java} | 8 +- .../calcite/serialize/InputRefExpression.java | 4 +- .../query/calcite/serialize/JoinNode.java | 68 + .../query/calcite/serialize/LiteralExpression.java | 4 +- .../calcite/serialize/LocalRefExpression.java | 4 +- .../query/calcite/serialize/ProjectNode.java | 46 + .../query/calcite/serialize/ReceiverNode.java | 46 + .../serialize/{GraphNode.java => RelGraph.java}| 2 +- .../query/calcite/serialize/RelGraphNode.java | 17 ++-- .../calcite/serialize/RelToGraphConverter.java | 95 ++ .../calcite/serialize/RexToExpTranslator.java | 2 +- .../query/calcite/serialize/SenderNode.java| 21 ++-- ...GraphNode.java => SerializedCorrelationId.java} | 26 +++-- .../calcite/serialize/SerializedTraitSet.java | 75 ++ .../serialize/{FieldType.java => SimpleType.java} | 10 +- .../query/calcite/serialize/StructType.java| 12 +-- .../{LiteralExpression.java => TableScanNode.java} | 22 +++-- .../query/calcite/splitter/Fragment.java | 32 -- .../query/calcite/trait/AllTargetsFactory.java | 11 ++- .../query/calcite/trait/DestinationFunction.java | 4 +- .../query/calcite/trait/DistributionTrait.java | 35 +-- .../query/calcite/trait/HashFunctionFactory.java | 13 ++- .../query/calcite/trait/IgniteDistributions.java | 15 ++- .../query/calcite/trait/NoOpFactory.java | 7 +- .../query/calcite/trait/RandomTargetFactory.java | 10 +- .../query/calcite/trait/SingleTargetFactory.java | 13 ++- .../processors/query/calcite/util/Commons.java | 108 +++-- .../query/calcite/CalciteQueryProcessorTest.java | 85 +++- 42 files changed, 949 insertions(+), 306 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java index 95ad49f..8e5773b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java @@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.query.calcite.cluster; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.UUID; import java.util.function.ToIntFunction; import org.apache.calcite.plan.Context; import org.apache.calcite.util.ImmutableIntList; @@ -29,6 +30,7 @@ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.CacheGroupContext; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState; +import org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology; import org.apache.ignite.internal.processors.query.calcite.metadata.DistributionRegistry; import org.apache.ignite.internal.processors.query.calcite.metadata.LocationRegistry; import org.apache.ignite.internal.processors.query.calcite.metadata.NodesMapping; @@ -37,6 +39,7 @@ import org.apache.ignite.internal.processors.query.calcite.trait.DestinationFunc import org.apache.ignite.internal.processors.query.calcite.trait.DistributionTrait; import
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new c082b7b pending c082b7b is described below commit c082b7b14dae76455ca40c8a279598f373d7410a Author: Igor Seliverstov AuthorDate: Tue Nov 19 20:04:59 2019 +0300 pending --- .../query/calcite/CalciteQueryProcessor.java | 4 +- .../query/calcite/cluster/RegistryImpl.java| 6 +- .../calcite/metadata/DistributionRegistry.java | 2 +- .../query/calcite/metadata/NodesMapping.java | 13 +-- .../query/calcite/prepare/IgnitePlanner.java | 21 +++-- .../query/calcite/rel/IgniteExchange.java | 4 +- .../processors/query/calcite/rel/IgniteFilter.java | 4 +- .../processors/query/calcite/rel/IgniteJoin.java | 4 +- .../query/calcite/rel/IgniteProject.java | 4 +- .../processors/query/calcite/rel/IgniteRel.java| 4 +- .../query/calcite/rel/IgniteTableScan.java | 4 +- .../processors/query/calcite/rel/Receiver.java | 4 +- .../processors/query/calcite/rel/Sender.java | 12 ++- .../query/calcite/rule/IgniteJoinRule.java | 4 +- .../query/calcite/schema/IgniteTable.java | 1 + .../query/calcite/serialize/CallExpression.java| 29 +++ ...rializationContext.java => ExpImplementor.java} | 18 ++-- .../calcite/serialize/ExpToRexTranslator.java | 96 ++ .../{Expression.java => ExpressionType.java} | 13 ++- .../query/calcite/serialize/FieldType.java | 59 + .../processors/query/calcite/serialize/Graph.java | 3 +- .../calcite/serialize/InputRefExpression.java | 14 ++-- .../query/calcite/serialize/LiteralExpression.java | 14 ++-- .../calcite/serialize/LocalRefExpression.java | 15 ++-- .../{Expression.java => LogicalExpression.java}| 7 +- .../{Expression.java => RelGraphNode.java} | 13 ++- .../calcite/serialize/RelToGraphConverter.java | 53 +++- .../calcite/serialize/RexToExpTranslator.java | 52 ++-- .../SenderNode.java} | 18 ++-- .../query/calcite/serialize/StructType.java| 51 ...ava => AbstractDestinationFunctionFactory.java} | 32 +++- ...FunctionFactory.java => AllTargetsFactory.java} | 16 +++- .../calcite/trait/DestinationFunctionFactory.java | 7 +- .../query/calcite/trait/DistributionTrait.java | 28 --- .../query/calcite/trait/DistributionType.java | 4 +- .../query/calcite/trait/HashFunctionFactory.java | 67 +++ .../query/calcite/trait/IgniteDistributions.java | 82 ++ ...nationFunctionFactory.java => NoOpFactory.java} | 12 ++- ...nctionFactory.java => RandomTargetFactory.java} | 19 - ...nctionFactory.java => SingleTargetFactory.java} | 16 +++- .../IgniteTypeFactory.java}| 16 ++-- .../IgniteTypeSystem.java} | 11 +-- .../query/calcite/{schema => type}/RowType.java| 2 +- .../processors/query/calcite/util/Commons.java | 2 +- .../util/{Implementor.java => RelImplementor.java} | 2 +- .../query/calcite/CalciteQueryProcessorTest.java | 69 ++-- 46 files changed, 623 insertions(+), 308 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java index f188665..760a71c 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java @@ -23,7 +23,6 @@ import org.apache.calcite.config.Lex; import org.apache.calcite.plan.Context; import org.apache.calcite.plan.Contexts; import org.apache.calcite.plan.RelTraitDef; -import org.apache.calcite.rel.type.RelDataTypeSystem; import org.apache.calcite.schema.SchemaPlus; import org.apache.calcite.sql.fun.SqlLibrary; import org.apache.calcite.sql.fun.SqlLibraryOperatorTableFactory; @@ -43,6 +42,7 @@ import org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner import org.apache.ignite.internal.processors.query.calcite.prepare.Query; import org.apache.ignite.internal.processors.query.calcite.prepare.QueryExecution; import org.apache.ignite.internal.processors.query.calcite.schema.CalciteSchemaHolder; +import org.apache.ignite.internal.processors.query.calcite.type.IgniteTypeSystem; import org.apache.ignite.internal.processors.query.calcite.util.Commons; import org.apache.ignite.internal.processors.subscription.GridInternalSubscriptionProcessor; import org.apache.ignite.resources.LoggerResource; @@ -83,7 +83,7 @@ public class
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new b85b901 pending b85b901 is described below commit b85b9013578a2c8623c0f33491860feae1f89e75 Author: Igor Seliverstov AuthorDate: Mon Nov 11 20:11:37 2019 +0300 pending --- .../internal/processors/query/calcite/rule/IgniteFilterRule.java | 3 ++- .../internal/processors/query/calcite/rule/IgniteProjectRule.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteFilterRule.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteFilterRule.java index 2ec33a06..3c3a5eb 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteFilterRule.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteFilterRule.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.calcite.rule; +import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptRule; import org.apache.calcite.plan.RelOptRuleCall; import org.apache.calcite.plan.RelTraitSet; @@ -49,6 +50,6 @@ public class IgniteFilterRule extends RelOptRule { RelOp transformOp = Commons.transformSubset(call, converted, IgniteFilter::create); if (!transformOp.go(filter)) -call.transformTo(LogicalFilter.create(converted, filter.getCondition())); +call.transformTo(filter.copy(filter.getTraitSet(), ImmutableList.of(converted))); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteProjectRule.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteProjectRule.java index 4c2993e..9f7e3cc 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteProjectRule.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteProjectRule.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.calcite.rule; +import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptRule; import org.apache.calcite.plan.RelOptRuleCall; import org.apache.calcite.plan.RelTraitSet; @@ -49,6 +50,6 @@ public class IgniteProjectRule extends RelOptRule { RelOp transformOp = Commons.transformSubset(call, converted, IgniteProject::create); if (!transformOp.go(project)) -call.transformTo(LogicalProject.create(converted, project.getProjects(), project.getRowType())); +call.transformTo(project.copy(project.getTraitSet(), ImmutableList.of(converted))); } }
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new 525dfdb pending 525dfdb is described below commit 525dfdbd9e2ec1a3b250f22c5b420e8e0ef27a9b Author: Igor Seliverstov AuthorDate: Mon Nov 11 20:08:56 2019 +0300 pending --- .../calcite/metadata/IgniteMdDistribution.java | 10 +- .../query/calcite/rule/IgniteFilterRule.java | 2 +- .../query/calcite/rule/IgniteHashJoinRule.java | 81 ++- .../query/calcite/rule/IgniteProjectRule.java | 2 +- .../processors/query/calcite/rule/IgniteRules.java | 4 +- .../query/calcite/trait/IgniteDistributions.java | 21 +++ .../processors/query/calcite/util/Commons.java | 13 ++ .../query/calcite/CalciteQueryProcessorTest.java | 160 ++--- 8 files changed, 164 insertions(+), 129 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdDistribution.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdDistribution.java index b2f91a9..d58902a 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdDistribution.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdDistribution.java @@ -37,11 +37,13 @@ import org.apache.calcite.rex.RexNode; import org.apache.calcite.rex.RexSlot; import org.apache.calcite.sql.SqlKind; import org.apache.calcite.util.ImmutableIntList; +import org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan; import org.apache.ignite.internal.processors.query.calcite.trait.DistributionTrait; import org.apache.ignite.internal.processors.query.calcite.trait.DistributionTraitDef; import org.apache.ignite.internal.processors.query.calcite.trait.IgniteDistributions; import org.apache.ignite.internal.processors.query.calcite.util.IgniteMethod; +import static org.apache.ignite.internal.processors.query.calcite.trait.DistributionType.BROADCAST; import static org.apache.ignite.internal.processors.query.calcite.trait.DistributionType.HASH; /** @@ -76,6 +78,10 @@ public class IgniteMdDistribution implements MetadataHandler projects) { DistributionTrait trait = distribution(input, mq); @@ -120,7 +126,9 @@ public class IgniteMdDistribution implements MetadataHandler transformOp = Commons.transformSubset(call, converted, IgniteFilter::create); if (!transformOp.go(filter)) -call.transformTo(IgniteFilter.create(filter, converted)); +call.transformTo(LogicalFilter.create(converted, filter.getCondition())); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteHashJoinRule.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteHashJoinRule.java index cc17c24..5bb537f 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteHashJoinRule.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/IgniteHashJoinRule.java @@ -17,6 +17,9 @@ package org.apache.ignite.internal.processors.query.calcite.rule; +import com.google.common.collect.ImmutableList; +import java.util.List; +import java.util.Objects; import org.apache.calcite.plan.RelOptRule; import org.apache.calcite.plan.RelOptRuleCall; import org.apache.calcite.plan.RelTraitSet; @@ -27,10 +30,15 @@ import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.ignite.internal.processors.query.calcite.metadata.IgniteMdDistribution; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteHashJoin; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteRel; +import org.apache.ignite.internal.processors.query.calcite.trait.DistributionTrait; import org.apache.ignite.internal.processors.query.calcite.trait.DistributionTraitDef; import org.apache.ignite.internal.processors.query.calcite.trait.IgniteDistributions; import org.apache.ignite.internal.processors.query.calcite.util.Commons; +import static org.apache.ignite.internal.processors.query.calcite.trait.DistributionType.BROADCAST; +import static org.apache.ignite.internal.processors.query.calcite.trait.DistributionType.HASH; +import static org.apache.ignite.internal.processors.query.calcite.trait.DistributionType.SINGLE; + /** * */ @@ -38,25 +46,59 @@ public class IgniteHashJoinRule extends RelOptRule { public static final RelOptRule INSTANCE = new IgniteHashJoinRule(); public IgniteHashJoinRule() { -super(Commons.any(LogicalJoin.class, RelNode.class), RelFactories.LOGICAL_BUILDER, "IgniteJoinRule"); +
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new c33076c pending c33076c is described below commit c33076cef111f72582152c29cb4a1b80e5c42b32 Author: Igor Seliverstov AuthorDate: Fri Nov 8 12:25:25 2019 +0300 pending --- .../query/calcite/prepare/DistributedExecution.java | 2 +- .../processors/query/calcite/rel/IgniteFilter.java | 2 +- .../processors/query/calcite/rel/IgniteProject.java | 2 +- .../processors/query/calcite/rel/IgniteRel.java | 5 +++-- .../query/calcite/rule/IgniteFilterRule.java | 2 +- .../query/calcite/rule/IgniteHashJoinRule.java | 6 +++--- .../query/calcite/rule/IgniteProjectRule.java| 2 +- .../processors/query/calcite/schema/IgniteTable.java | 2 +- .../query/calcite/trait/DistributionTraitDef.java| 2 +- .../query/calcite/CalciteQueryProcessorTest.java | 20 ++-- 10 files changed, 23 insertions(+), 22 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/DistributedExecution.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/DistributedExecution.java index 54ac726..fdaee5a 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/DistributedExecution.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/DistributedExecution.java @@ -86,7 +86,7 @@ public class DistributedExecution implements QueryExecution { RelTraitSet desired = rel.getTraitSet() .replace(relRoot.collation) -.replace(IgniteRel.LOGICAL_CONVENTION) +.replace(IgniteRel.IGNITE_CONVENTION) .replace(RelDistributions.ANY) .simplify(); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java index ed8b52f..c1991e8 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java @@ -54,7 +54,7 @@ public final class IgniteFilter extends Filter implements IgniteRel { public static IgniteFilter create(Filter filter, RelNode input) { RelTraitSet traits = filter.getTraitSet() -.replace(IgniteRel.LOGICAL_CONVENTION) +.replace(IgniteRel.IGNITE_CONVENTION) .replaceIf(DistributionTraitDef.INSTANCE, () -> IgniteMdDistribution.filter(RelMetadataQueryEx.instance(), input, filter.getCondition())); return new IgniteFilter(filter.getCluster(), traits, input, filter.getCondition(), filter.getVariablesSet()); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java index 79408cd..1f3eaf2 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java @@ -44,7 +44,7 @@ public final class IgniteProject extends Project implements IgniteRel { public static IgniteProject create(Project project, RelNode input) { RelTraitSet traits = project.getTraitSet() -.replace(IgniteRel.LOGICAL_CONVENTION) +.replace(IgniteRel.IGNITE_CONVENTION) .replaceIf(DistributionTraitDef.INSTANCE, () -> IgniteMdDistribution.project(RelMetadataQueryEx.instance(), input, project.getProjects())); return new IgniteProject(project.getCluster(), traits, input, project.getProjects(), project.getRowType()); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteRel.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteRel.java index 9a761ad..d444f4b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteRel.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteRel.java @@ -25,10 +25,11 @@ import org.apache.calcite.rel.RelNode; * */ public interface IgniteRel extends RelNode { -Convention LOGICAL_CONVENTION = new Convention.Impl("IGNITE_LOGICAL", IgniteRel.class) { +Convention IGNITE_CONVENTION = new Convention.Impl("IGNITE_LOGICAL", IgniteRel.class) { /** */ @Override public boolean
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new 9125a61 pending 9125a61 is described below commit 9125a610a1e560ee89db2d655f7ec726261cf975 Author: Igor Seliverstov AuthorDate: Thu Nov 7 19:04:59 2019 +0300 pending --- .../query/calcite/CalciteQueryProcessor.java | 2 + .../query/calcite/cluster/RegistryImpl.java| 173 .../DistributionRegistry.java} | 10 +- .../FragmentLocation.java} | 12 +- .../calcite/metadata/IgniteMdDistribution.java | 7 +- .../calcite/metadata/IgniteMdFragmentLocation.java | 161 +++ .../metadata/IgniteMdSourceDistribution.java | 128 -- .../query/calcite/metadata/IgniteMetadata.java | 17 +- .../query/calcite/metadata/Location.java | 165 .../LocationMappingException.java} | 11 +- .../LocationRegistry.java} | 10 +- .../OptimisticPlanningException.java} | 18 +- .../query/calcite/metadata/RelMetadataQueryEx.java | 47 +-- .../processors/query/calcite/rel/CloneContext.java | 48 --- .../query/calcite/rel/IgniteExchange.java | 4 - .../processors/query/calcite/rel/IgniteFilter.java | 4 - .../query/calcite/rel/IgniteHashJoin.java | 4 - .../query/calcite/rel/IgniteProject.java | 6 +- .../processors/query/calcite/rel/IgniteRel.java| 2 - .../query/calcite/rel/IgniteTableScan.java | 10 +- .../processors/query/calcite/rel/Receiver.java | 23 +- .../processors/query/calcite/rel/Sender.java | 48 ++- .../query/calcite/schema/IgniteTable.java | 33 +- .../query/calcite/splitter/Fragment.java | 51 ++- .../calcite/splitter/PartitionsDistribution.java | 196 - .../query/calcite/splitter/QueryPlan.java | 56 ++- .../query/calcite/splitter/Splitter.java | 48 ++- ...utionFunction.java => DestinationFunction.java} | 2 +- ...actory.java => DestinationFunctionFactory.java} | 6 +- .../query/calcite/trait/DistributionTrait.java | 72 ++-- .../query/calcite/trait/DistributionTraitImpl.java | 71 ...nFunctionFactory.java => DistributionType.java} | 30 +- .../query/calcite/trait/IgniteDistributions.java | 70 +++- .../processors/query/calcite/util/Commons.java | 93 + .../Edge.java} | 29 +- .../query/calcite/util/IgniteMethod.java | 4 +- .../query/calcite/util/IgniteRelShuttle.java | 83 .../query/calcite/CalciteQueryProcessorTest.java | 461 ++--- 38 files changed, 1483 insertions(+), 732 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java index b036397..f188665 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java @@ -37,6 +37,7 @@ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.query.IgniteSQLException; import org.apache.ignite.internal.processors.query.QueryContext; import org.apache.ignite.internal.processors.query.QueryEngine; +import org.apache.ignite.internal.processors.query.calcite.cluster.RegistryImpl; import org.apache.ignite.internal.processors.query.calcite.prepare.DistributedExecution; import org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner; import org.apache.ignite.internal.processors.query.calcite.prepare.Query; @@ -148,6 +149,7 @@ public class CalciteQueryProcessor implements QueryEngine { return Contexts.chain(ctx, config.getContext(), Contexts.of( new Query(query, params), +new RegistryImpl(kernalContext), provided(ctx, SchemaPlus.class, schemaHolder::schema), provided(ctx, AffinityTopologyVersion.class, this::readyAffinityVersion))); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java new file mode 100644 index 000..4ad7d48 --- /dev/null +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/cluster/RegistryImpl.java @@ -0,0 +1,173 @@ +/* + * Copyright 2019 GridGain Systems, Inc. and Contributors. + * + * Licensed under the GridGain Community Edition License (the
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new e33767e pending e33767e is described below commit e33767e8abcc6a34b93064ac7c6f4bc24bed7c34 Author: Igor Seliverstov AuthorDate: Fri Nov 1 16:51:05 2019 +0300 pending --- .../calcite/metadata/IgniteMdSourceDistribution.java | 8 .../processors/query/calcite/rel/CloneContext.java | 10 -- .../IgniteLogicalExchange.java => IgniteExchange.java} | 12 +--- .../IgniteLogicalFilter.java => IgniteFilter.java} | 18 -- .../IgniteLogicalJoin.java => IgniteHashJoin.java} | 14 ++ .../IgniteLogicalProject.java => IgniteProject.java} | 18 -- ...gniteLogicalTableScan.java => IgniteTableScan.java} | 10 -- .../query/calcite/{exchange => rel}/Receiver.java | 4 +--- .../query/calcite/{exchange => rel}/Sender.java| 4 +--- .../calcite/rule/{logical => }/IgniteFilterRule.java | 8 .../IgniteJoinRule.java => IgniteHashJoinRule.java}| 12 ++-- .../calcite/rule/{logical => }/IgniteProjectRule.java | 8 .../processors/query/calcite/rule/IgniteRules.java | 5 + .../processors/query/calcite/schema/IgniteTable.java | 4 ++-- .../processors/query/calcite/splitter/Fragment.java| 4 ++-- .../query/calcite/splitter/SourceDistribution.java | 2 +- .../processors/query/calcite/splitter/Splitter.java| 10 +- .../query/calcite/trait/DistributionTraitDef.java | 4 ++-- 18 files changed, 68 insertions(+), 87 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdSourceDistribution.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdSourceDistribution.java index 6cb5bcf..a944db1 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdSourceDistribution.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdSourceDistribution.java @@ -27,10 +27,10 @@ import org.apache.calcite.rel.metadata.MetadataHandler; import org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider; import org.apache.calcite.rel.metadata.RelMetadataProvider; import org.apache.calcite.rel.metadata.RelMetadataQuery; -import org.apache.ignite.internal.processors.query.calcite.exchange.Receiver; -import org.apache.ignite.internal.processors.query.calcite.exchange.Sender; import org.apache.ignite.internal.processors.query.calcite.metadata.IgniteMetadata.SourceDistributionMetadata; -import org.apache.ignite.internal.processors.query.calcite.rel.logical.IgniteLogicalTableScan; +import org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan; +import org.apache.ignite.internal.processors.query.calcite.rel.Receiver; +import org.apache.ignite.internal.processors.query.calcite.rel.Sender; import org.apache.ignite.internal.processors.query.calcite.splitter.PartitionsDistribution; import org.apache.ignite.internal.processors.query.calcite.splitter.SourceDistribution; import org.apache.ignite.internal.processors.query.calcite.util.IgniteMethod; @@ -79,7 +79,7 @@ public class IgniteMdSourceDistribution implements MetadataHandler T clone(RelNode src) { -try { -return (T) mapping.computeIfAbsent((IgniteRel) src, this::clone0); -} -catch (ClassCastException e) { +public T clone(T src) { +if (!(src instanceof IgniteRel)) throw new IllegalStateException("Unexpected node type: " + src.getClass()); -} + +return (T) mapping.computeIfAbsent((IgniteRel) src, this::clone0); } private IgniteRel clone0(IgniteRel src) { diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalExchange.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteExchange.java similarity index 80% rename from modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalExchange.java rename to modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteExchange.java index dd2ad05..1bd637c 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalExchange.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteExchange.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.apache.ignite.internal.processors.query.calcite.rel.logical; +package org.apache.ignite.internal.processors.query.calcite.rel;
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new 1995d3b pending 1995d3b is described below commit 1995d3b417cdd350abc4e8020bb61b847bef9228 Author: Igor Seliverstov AuthorDate: Fri Nov 1 15:27:02 2019 +0300 pending --- .../query/calcite/exchange/Receiver.java | 6 +- .../processors/query/calcite/exchange/Sender.java | 10 +- .../metadata/IgniteMdSourceDistribution.java | 6 +- .../processors/query/calcite/prepare/Query.java| 20 ++ .../processors/query/calcite/rel/CloneContext.java | 50 +++ .../processors/query/calcite/rel/IgniteRel.java| 2 +- .../query/calcite/rel/IgniteVisitor.java | 45 --- .../calcite/rel/logical/IgniteLogicalExchange.java | 6 +- .../calcite/rel/logical/IgniteLogicalFilter.java | 10 +- .../calcite/rel/logical/IgniteLogicalJoin.java | 10 +- .../calcite/rel/logical/IgniteLogicalProject.java | 10 +- .../rel/logical/IgniteLogicalTableScan.java| 15 +- .../query/calcite/schema/IgniteTable.java | 10 +- .../query/calcite/splitter/Fragment.java | 22 +- .../calcite/splitter/PartitionsDistribution.java | 2 +- .../splitter/PartitionsDistributionRegistry.java | 6 +- .../query/calcite/splitter/QueryPlan.java | 15 + .../query/calcite/splitter/Splitter.java | 66 +--- .../processors/query/calcite/util/Commons.java | 9 + .../query/calcite/CalciteQueryProcessorTest.java | 385 - 20 files changed, 556 insertions(+), 149 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java index fe35b52..dda7840 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java @@ -22,8 +22,8 @@ import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.SingleRel; import org.apache.ignite.internal.processors.query.calcite.metadata.RelMetadataQueryEx; +import org.apache.ignite.internal.processors.query.calcite.rel.CloneContext; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteRel; -import org.apache.ignite.internal.processors.query.calcite.rel.IgniteVisitor; import org.apache.ignite.internal.processors.query.calcite.splitter.SourceDistribution; /** @@ -51,8 +51,8 @@ public class Receiver extends SingleRel implements IgniteRel { return new Receiver(getCluster(), traitSet, (Sender) sole(inputs)); } -@Override public T accept(IgniteVisitor visitor) { -return visitor.visitReceiver(this); +@Override public IgniteRel clone(CloneContext ctx) { +return new Receiver(ctx.getCluster(), getTraitSet(), ctx.clone(getInput())); } public void init(SourceDistribution targetDistribution, RelMetadataQueryEx mq) { diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Sender.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Sender.java index f9bd762..7c1cd83 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Sender.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Sender.java @@ -23,8 +23,8 @@ import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.SingleRel; import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.ignite.internal.processors.query.calcite.metadata.RelMetadataQueryEx; +import org.apache.ignite.internal.processors.query.calcite.rel.CloneContext; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteRel; -import org.apache.ignite.internal.processors.query.calcite.rel.IgniteVisitor; import org.apache.ignite.internal.processors.query.calcite.splitter.SourceDistribution; import org.apache.ignite.internal.processors.query.calcite.trait.DistributionFunction; import org.apache.ignite.internal.processors.query.calcite.trait.DistributionTrait; @@ -49,12 +49,12 @@ public class Sender extends SingleRel implements IgniteRel { super(cluster, traits, input); } -@Override public RelNode copy(RelTraitSet traitSet, List inputs) { -return new Sender(getCluster(), traitSet, sole(inputs)); +@Override public IgniteRel clone(CloneContext ctx) { +return new Sender(ctx.getCluster(), getTraitSet(), ctx.clone(getInput())); } -@Override public T accept(IgniteVisitor visitor) { -
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new e18d8a1 pending e18d8a1 is described below commit e18d8a17a211b61b15213ddedcc8ac637b4f5888 Author: Igor Seliverstov AuthorDate: Wed Oct 30 19:46:03 2019 +0300 pending --- modules/calcite/pom.xml| 7 ++ .../query/calcite/CalciteQueryProcessor.java | 6 +- .../query/calcite/exchange/Receiver.java | 14 .../processors/query/calcite/exchange/Sender.java | 38 ++ .../calcite/metadata/IgniteMdDistribution.java | 2 +- .../metadata/IgniteMdSourceDistribution.java | 5 ++ .../calcite/rel/logical/IgniteLogicalExchange.java | 15 ++-- .../calcite/rel/logical/IgniteLogicalFilter.java | 7 +- .../calcite/rel/logical/IgniteLogicalProject.java | 7 +- .../rel/logical/IgniteLogicalTableScan.java| 3 +- .../processors/query/calcite/rule/IgniteRules.java | 8 +-- .../query/calcite/rule/logical/IgniteJoinRule.java | 7 +- .../query/calcite/schema/IgniteTable.java | 18 +++-- .../query/calcite/splitter/Fragment.java | 68 ++ .../calcite/splitter/PartitionsDistribution.java | 2 +- .../splitter/PartitionsDistributionRegistry.java | 4 +- .../splitter/{SplitTask.java => QueryPlan.java}| 24 +++ .../splitter/{TaskSplitter.java => Splitter.java} | 37 -- .../DistributionFunction.java} | 9 +-- .../DistributionFunctionFactory.java} | 9 +-- .../query/calcite/trait/DistributionTrait.java | 8 ++- .../query/calcite/trait/DistributionTraitDef.java | 2 +- .../query/calcite/trait/DistributionTraitImpl.java | 8 ++- .../query/calcite/trait/IgniteDistributions.java | 35 -- .../processors/query/calcite/util/Commons.java | 21 +- .../query/calcite/CalciteQueryProcessorTest.java | 81 ++ 26 files changed, 304 insertions(+), 141 deletions(-) diff --git a/modules/calcite/pom.xml b/modules/calcite/pom.xml index 1fa26fa..d654edb 100644 --- a/modules/calcite/pom.xml +++ b/modules/calcite/pom.xml @@ -79,6 +79,13 @@ +org.slf4j +slf4j-log4j12 +${slf4j.version} +test + + + org.springframework spring-beans ${spring.version} diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java index d1ad130..b036397 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java @@ -48,7 +48,7 @@ import org.apache.ignite.resources.LoggerResource; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import static org.apache.ignite.internal.processors.query.calcite.util.Commons.contextParameter; +import static org.apache.ignite.internal.processors.query.calcite.util.Commons.provided; /** * @@ -148,8 +148,8 @@ public class CalciteQueryProcessor implements QueryEngine { return Contexts.chain(ctx, config.getContext(), Contexts.of( new Query(query, params), -contextParameter(ctx, SchemaPlus.class, schemaHolder::schema), -contextParameter(ctx, AffinityTopologyVersion.class, this::readyAffinityVersion))); +provided(ctx, SchemaPlus.class, schemaHolder::schema), +provided(ctx, AffinityTopologyVersion.class, this::readyAffinityVersion))); } private QueryExecution prepare(Context ctx) { diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java index 993f55b..fe35b52 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java @@ -21,13 +21,17 @@ import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.SingleRel; +import org.apache.ignite.internal.processors.query.calcite.metadata.RelMetadataQueryEx; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteRel; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteVisitor; +import
[ignite] branch ignite-12248 updated: pending
This is an automated email from the ASF dual-hosted git repository. gvvinblade pushed a commit to branch ignite-12248 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-12248 by this push: new e797a6e pending e797a6e is described below commit e797a6eba85738b9c8b9d8b2fe500e590a776a2f Author: Igor Seliverstov AuthorDate: Mon Oct 28 21:06:03 2019 +0300 pending --- .../query/calcite/CalciteQueryProcessor.java | 5 +- .../query/calcite/exchange/Receiver.java | 7 +- .../processors/query/calcite/exchange/Sender.java | 7 +- .../calcite/metadata/IgniteMdDistribution.java | 28 +-- .../metadata/IgniteMdSourceDistribution.java | 94 -- .../query/calcite/metadata/IgniteMetadata.java | 20 +-- .../query/calcite/metadata/RelMetadataQueryEx.java | 88 + .../processors/query/calcite/rel/IgniteRel.java| 4 +- .../query/calcite/rel/IgniteVisitor.java | 24 ++- .../calcite/rel/logical/IgniteLogicalExchange.java | 5 + .../calcite/rel/logical/IgniteLogicalFilter.java | 5 + .../calcite/rel/logical/IgniteLogicalJoin.java | 5 + .../calcite/rel/logical/IgniteLogicalProject.java | 5 + .../rel/logical/IgniteLogicalTableScan.java| 5 + .../query/calcite/schema/IgniteTable.java | 13 +- .../calcite/splitter/PartitionsDistribution.java | 196 + .../PartitionsDistributionRegistry.java} | 8 +- .../query/calcite/splitter/SourceDistribution.java | 4 +- .../query/calcite/splitter/SplitTask.java | 9 + .../query/calcite/splitter/TaskSplitter.java | 84 - .../query/calcite/util/IgniteMethod.java | 8 +- .../query/calcite/CalciteQueryProcessorTest.java | 37 +++- 22 files changed, 543 insertions(+), 118 deletions(-) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java index a024027..d1ad130 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java @@ -145,12 +145,11 @@ public class CalciteQueryProcessor implements QueryEngine { * @return Query execution context. */ Context context(@NotNull Context ctx, String query, Object[] params) { // Package private visibility for tests. -return Contexts.chain(ctx, +return Contexts.chain(ctx, config.getContext(), Contexts.of( new Query(query, params), contextParameter(ctx, SchemaPlus.class, schemaHolder::schema), -contextParameter(ctx, AffinityTopologyVersion.class, this::readyAffinityVersion)), -config.getContext()); +contextParameter(ctx, AffinityTopologyVersion.class, this::readyAffinityVersion))); } private QueryExecution prepare(Context ctx) { diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java index 8d2ee1c..993f55b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Receiver.java @@ -22,6 +22,7 @@ import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.SingleRel; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteRel; +import org.apache.ignite.internal.processors.query.calcite.rel.IgniteVisitor; /** * @@ -32,7 +33,7 @@ public class Receiver extends SingleRel implements IgniteRel { * @param traits Trait set. * @param sender Corresponding sender. */ -protected Receiver(RelOptCluster cluster, RelTraitSet traits, Sender sender) { +public Receiver(RelOptCluster cluster, RelTraitSet traits, Sender sender) { super(cluster, traits, sender); } @@ -45,4 +46,8 @@ public class Receiver extends SingleRel implements IgniteRel { @Override public RelNode copy(RelTraitSet traitSet, List inputs) { return new Receiver(getCluster(), traitSet, (Sender) sole(inputs)); } + +@Override public T accept(IgniteVisitor visitor) { +return visitor.visitReceiver(this); +} } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Sender.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exchange/Sender.java index 5049250..63cf8f7 100644 ---