[ignite] branch ignite-12248 updated: pending

2019-11-29 Thread gvvinblade
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

2019-11-22 Thread gvvinblade
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

2019-11-22 Thread gvvinblade
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

2019-11-19 Thread gvvinblade
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

2019-11-11 Thread gvvinblade
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

2019-11-11 Thread gvvinblade
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

2019-11-08 Thread gvvinblade
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

2019-11-07 Thread gvvinblade
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

2019-11-01 Thread gvvinblade
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

2019-11-01 Thread gvvinblade
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

2019-10-30 Thread gvvinblade
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

2019-10-28 Thread gvvinblade
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
---