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) {

Reply via email to