This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-20503
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/ignite-20503 by this push:
new 3b581b6329 wip
3b581b6329 is described below
commit 3b581b6329aeb7beecc9e3b48beb45dd781c7422
Author: amashenkov <[email protected]>
AuthorDate: Thu Jun 20 19:58:49 2024 +0300
wip
---
.../internal/sql/engine/exec/mapping/MappingContext.java | 7 ++-----
.../engine/exec/mapping/ExecutionTargetFactorySelfTest.java | 10 ++++++++++
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingContext.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingContext.java
index 4d559694aa..b230df95ab 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingContext.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingContext.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.sql.engine.exec.mapping;
import java.util.List;
import org.apache.calcite.plan.RelOptCluster;
+import
org.apache.ignite.internal.sql.engine.exec.mapping.largecluster.LargeClusterFactory;
import
org.apache.ignite.internal.sql.engine.exec.mapping.smallcluster.SmallClusterFactory;
import org.apache.ignite.internal.sql.engine.util.Commons;
@@ -37,11 +38,7 @@ class MappingContext {
this.localNode = localNode;
this.nodes = nodes;
- if (nodes.size() > 64) {
- throw new
UnsupportedOperationException("https://issues.apache.org/jira/browse/IGNITE-20503");
- }
-
- this.targetFactory = new SmallClusterFactory(nodes);
+ this.targetFactory = nodes.size() > 64 ? new
LargeClusterFactory(nodes) : new SmallClusterFactory(nodes);
}
public RelOptCluster cluster() {
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java
index 550481a9be..0f1a0b90ea 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java
@@ -30,10 +30,12 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
+import java.util.stream.IntStream;
import org.apache.ignite.internal.sql.engine.exec.NodeWithConsistencyToken;
import
org.apache.ignite.internal.sql.engine.exec.mapping.largecluster.LargeClusterFactory;
import
org.apache.ignite.internal.sql.engine.exec.mapping.smallcluster.SmallClusterFactory;
import org.hamcrest.Matcher;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
@@ -58,6 +60,14 @@ public class ExecutionTargetFactorySelfTest {
);
}
+ @SuppressWarnings({"ResultOfObjectAllocationIgnored",
"ThrowableNotThrown"})
+ @Test
+ void smallClusterFactory() {
+ List<String> nodes = IntStream.range(0, 65).mapToObj(i ->
"node").collect(Collectors.toList());
+
+ assertThrows(IllegalArgumentException.class, () -> new
SmallClusterFactory(nodes),"Supported up to 64 nodes");
+ }
+
@ParameterizedTest
@MethodSource("clusterFactory")
void targetsResolution(ExecutionTargetFactory f) {