This is an automated email from the ASF dual-hosted git repository. amashenkov pushed a commit to branch ignite-19497 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 7e9e71671cbba8f7516dca510f9f9a2dab0510e9 Author: amashenkov <[email protected]> AuthorDate: Wed Aug 2 19:09:00 2023 +0300 Fix table-by-name resolution. --- .../sql/engine/exec/ExecutableTableRegistry.java | 4 ++++ .../engine/exec/ExecutableTableRegistryImpl.java | 6 ++++++ .../exec/ExecutionDependencyResolverImpl.java | 4 +++- .../sql/engine/schema/CatalogSqlSchemaManager.java | 16 +++++++-------- .../internal/sql/engine/schema/IgniteSchema.java | 13 +++++++----- .../sql/engine/schema/IgniteSchemaTable.java | 6 ++++-- .../sql/engine/exec/ExecutionServiceImplTest.java | 4 ++-- .../engine/exec/TestExecutableTableRegistry.java | 5 +++++ .../sql/engine/framework/TestBuilders.java | 23 +++++++++++----------- .../internal/sql/engine/framework/TestTable.java | 10 ++++++---- .../sql/engine/planner/AbstractPlannerTest.java | 6 +----- .../internal/sql/engine/util/StatementChecker.java | 11 ++++++----- 12 files changed, 64 insertions(+), 44 deletions(-) diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistry.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistry.java index 36b8cb4eb6..d921d25381 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistry.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistry.java @@ -33,4 +33,8 @@ public interface ExecutableTableRegistry { * @return An operation that returns executable table. */ CompletableFuture<ExecutableTable> getTable(int tableId, TableDescriptor tableDescriptor); + + // TODO IGNITE-19499 use tableId instead of name. + @Deprecated(forRemoval = true) + CompletableFuture<ExecutableTable> getTable(int tableId, String tableName, TableDescriptor tableDescriptor); } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java index 64c6ffc52f..4b98793906 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java @@ -71,6 +71,12 @@ public class ExecutableTableRegistryImpl implements ExecutableTableRegistry, Sch return tableCache.computeIfAbsent(tableId, (k) -> loadTable(k, tableDescriptor)); } + @Override + public CompletableFuture<ExecutableTable> getTable(int tableId, String tableName, TableDescriptor tableDescriptor) { + return tableManager.tableAsyncInternal(tableName.toUpperCase()) + .thenCompose(tbl -> loadTable(tbl.tableId(), tableDescriptor)); + } + /** {@inheritDoc} */ @Override public void onSchemaUpdated() { diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionDependencyResolverImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionDependencyResolverImpl.java index a225231077..44abad7e2f 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionDependencyResolverImpl.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionDependencyResolverImpl.java @@ -81,8 +81,10 @@ public class ExecutionDependencyResolverImpl implements ExecutionDependencyResol private void resolveTable(IgniteTable igniteTable) { int tableId = igniteTable.id(); TableDescriptor tableDescriptor = igniteTable.descriptor(); + //TODO IGNITE-19499 Use id instead of name. + String tableName = igniteTable.name(); - tableMap.computeIfAbsent(tableId, (id) -> registry.getTable(tableId, tableDescriptor)); + tableMap.computeIfAbsent(tableId, (id) -> registry.getTable(tableId, tableName, tableDescriptor)); } }; diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManager.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManager.java index 3afda9ff60..7a9204a535 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManager.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManager.java @@ -20,9 +20,10 @@ package org.apache.ignite.internal.sql.engine.schema; import static org.apache.ignite.internal.catalog.CatalogService.DEFAULT_SCHEMA_NAME; import com.github.benmanes.caffeine.cache.Caffeine; +import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; @@ -33,7 +34,6 @@ import java.util.concurrent.ConcurrentMap; import java.util.function.Supplier; import org.apache.calcite.rel.RelCollation; import org.apache.calcite.schema.SchemaPlus; -import org.apache.calcite.schema.Table; import org.apache.calcite.tools.Frameworks; import org.apache.ignite.internal.catalog.CatalogManager; import org.apache.ignite.internal.catalog.CatalogService; @@ -99,7 +99,7 @@ public class CatalogSqlSchemaManager implements SqlSchemaManager { String schemaName = descriptor.name(); int numTables = descriptor.tables().length; - Map<String, Table> schemaTables = new HashMap<>(numTables); + List<IgniteTable> schemaTables = new ArrayList<>(numTables); Map<Integer, TableDescriptorImpl> tableDescriptorMap = new LinkedHashMap<>(numTables); // Assemble sql-engine.TableDescriptors as they are required by indexes. @@ -108,7 +108,7 @@ public class CatalogSqlSchemaManager implements SqlSchemaManager { tableDescriptorMap.put(tableDescriptor.id(), descriptorImpl); } - Map<Integer, Map<String, IgniteSchemaIndex>> schemaTableIndexes = new HashMap<>(descriptor.indexes().length); + Int2ObjectMap<List<IgniteSchemaIndex>> schemaTableIndexes = new Int2ObjectArrayMap<>(descriptor.indexes().length); // Assemble indexes as they are required by tables. for (CatalogIndexDescriptor indexDescriptor : descriptor.indexes()) { @@ -116,11 +116,11 @@ public class CatalogSqlSchemaManager implements SqlSchemaManager { TableDescriptorImpl tableDescriptorImpl = tableDescriptorMap.get(tableId); assert tableDescriptorImpl != null : "Table is not found in schema: " + tableId; - Map<String, IgniteSchemaIndex> tableIndexes = schemaTableIndexes.computeIfAbsent(tableId, id -> new LinkedHashMap<>()); + List<IgniteSchemaIndex> tableIndexes = schemaTableIndexes.computeIfAbsent(tableId, id -> new ArrayList<>()); IgniteSchemaIndex schemaIndex = createSchemaIndex(indexDescriptor, tableDescriptorImpl); - tableIndexes.put(schemaIndex.name(), schemaIndex); + tableIndexes.add(schemaIndex); schemaTableIndexes.put(tableId, tableIndexes); } @@ -133,11 +133,11 @@ public class CatalogSqlSchemaManager implements SqlSchemaManager { assert descriptorImpl != null; IgniteStatistic statistic = new IgniteStatistic(() -> 0.0d, descriptorImpl.distribution()); - Map<String, IgniteSchemaIndex> tableIndexMap = schemaTableIndexes.getOrDefault(tableId, Collections.emptyMap()); + List<IgniteSchemaIndex> tableIndexMap = schemaTableIndexes.getOrDefault(tableId, Collections.emptyList()); IgniteSchemaTable schemaTable = new IgniteSchemaTable(tableName, tableId, version, descriptorImpl, statistic, tableIndexMap); - schemaTables.put(tableName, schemaTable); + schemaTables.add(schemaTable); } // create root schema diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchema.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchema.java index ef9e39f716..bc6b6b6d6f 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchema.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchema.java @@ -17,8 +17,12 @@ package org.apache.ignite.internal.sql.engine.schema; +import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; import org.apache.calcite.schema.Table; import org.apache.calcite.schema.impl.AbstractSchema; import org.jetbrains.annotations.TestOnly; @@ -32,19 +36,19 @@ public class IgniteSchema extends AbstractSchema { private final int version; - private final Map<String, Table> tableMap; + private final Map<String, IgniteTable> tableMap; /** Constructor. */ - public IgniteSchema(String name, int version, Map<String, Table> tableMap) { + public IgniteSchema(String name, int version, Collection<IgniteTable> tables) { this.name = name; this.version = version; - this.tableMap = tableMap; + this.tableMap = tables.stream().collect(Collectors.toMap(t -> t.name().toUpperCase(), Function.identity())); } /** Constructor. */ @TestOnly public IgniteSchema(String name) { - this(name, 0, Map.of()); + this(name, 0, List.of()); } @@ -68,7 +72,6 @@ public class IgniteSchema extends AbstractSchema { public IgniteTable getTable(int tableId) { //TODO: optimize this return tableMap.values().stream() - .map(IgniteTable.class::cast) .filter(t -> t.id() == tableId) .findFirst() .orElseThrow(() -> new AssertionError("No table found: tableId=" + tableId)); diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchemaTable.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchemaTable.java index 9ef7ac6a9a..f6744ccdd8 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchemaTable.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/IgniteSchemaTable.java @@ -19,6 +19,8 @@ package org.apache.ignite.internal.sql.engine.schema; import java.util.List; import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; import org.apache.calcite.config.CalciteConnectionConfig; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptTable; @@ -59,14 +61,14 @@ public final class IgniteSchemaTable extends AbstractTable implements IgniteTabl /** Constructor. */ public IgniteSchemaTable(String name, int tableId, int version, TableDescriptor desc, - IgniteStatistic statistic, Map<String, IgniteSchemaIndex> indexMap) { + IgniteStatistic statistic, List<IgniteSchemaIndex> indexes) { this.id = tableId; this.name = name; this.desc = desc; this.version = version; this.statistic = statistic; - this.indexMap = indexMap; + this.indexMap = indexes.stream().collect(Collectors.toUnmodifiableMap(t -> t.name().toUpperCase(), Function.identity())); } /** {@inheritDoc} */ diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImplTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImplTest.java index bd8a392b0e..629e208444 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImplTest.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImplTest.java @@ -139,7 +139,7 @@ public class ExecutionServiceImplTest { private final TestTable table = createTable("TEST_TBL", 1_000_000, IgniteDistributions.random(), "ID", NativeTypes.INT32, "VAL", NativeTypes.INT32); - private final IgniteSchema schema = new IgniteSchema("PUBLIC", SCHEMA_VERSION, Map.of(table.name(), table)); + private final IgniteSchema schema = new IgniteSchema("PUBLIC", SCHEMA_VERSION, List.of(table)); private final List<CapturingMailboxRegistry> mailboxes = new ArrayList<>(); @@ -877,7 +877,7 @@ public class ExecutionServiceImplTest { new TableDescriptorImpl(columns, distr), name, size, - Map.of() + List.of() ) { }; diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TestExecutableTableRegistry.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TestExecutableTableRegistry.java index 1dee68eaea..bf7e849dbe 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TestExecutableTableRegistry.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TestExecutableTableRegistry.java @@ -44,6 +44,11 @@ public final class TestExecutableTableRegistry implements ExecutableTableRegistr return CompletableFuture.completedFuture(new TestExecutableTable(tableId, colocationGroupProvider)); } + @Override + public CompletableFuture<ExecutableTable> getTable(int tableId, String tableName, TableDescriptor tableDescriptor) { + return CompletableFuture.completedFuture(new TestExecutableTable(tableId, colocationGroupProvider)); + } + private static final class TestExecutableTable implements ExecutableTable { private final int tableId; diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java index bcd1f078ce..67e5dddd5a 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java @@ -34,7 +34,6 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Collectors; import org.apache.calcite.rel.RelCollation; -import org.apache.calcite.schema.Table; import org.apache.ignite.internal.schema.NativeType; import org.apache.ignite.internal.sql.engine.exec.ArrayRowHandler; import org.apache.ignite.internal.sql.engine.exec.ExecutionContext; @@ -353,11 +352,11 @@ public class TestBuilders { } } - Map<String, Table> tableMap = tableBuilders.stream() + Map<String, IgniteTable> tableMap = tableBuilders.stream() .map(ClusterTableBuilderImpl::build) .collect(Collectors.toMap(TestTable::name, Function.identity())); - var schemaManager = new PredefinedSchemaManager(new IgniteSchema("PUBLIC", SCHEMA_VERSION, tableMap)); + var schemaManager = new PredefinedSchemaManager(new IgniteSchema("PUBLIC", SCHEMA_VERSION, tableMap.values())); var colocationGroupProvider = new TestColocationGroupProvider(tableBuilders, tableMap, nodeNames); Map<String, TestNode> nodes = nodeNames.stream() @@ -429,9 +428,9 @@ public class TestBuilders { TableDescriptorImpl tableDescriptor = new TableDescriptorImpl(columns, distribution); - Map<String, IgniteSchemaIndex> indexMap = indexBuilders.stream() + List<IgniteSchemaIndex> indexMap = indexBuilders.stream() .map(idx -> idx.build(tableDescriptor)) - .collect(Collectors.toMap(TestIndex::name, Function.identity())); + .collect(Collectors.toList()); return new TestTable( tableDescriptor, @@ -484,11 +483,11 @@ public class TestBuilders { private TestTable build() { TableDescriptorImpl tableDescriptor = new TableDescriptorImpl(columns, distribution); - Map<String, IgniteSchemaIndex> indexMap = indexBuilders.stream() + List<IgniteSchemaIndex> indexes = indexBuilders.stream() .map(idx -> idx.build(tableDescriptor)) - .collect(Collectors.toMap(TestIndex::name, Function.identity())); + .collect(Collectors.toList()); - return new TestTable(tableDescriptor, name, size, indexMap, dataProviders); + return new TestTable(tableDescriptor, name, size, indexes, dataProviders); } } @@ -877,11 +876,11 @@ public class TestBuilders { private final Map<Integer, CompletableFuture<ColocationGroup>> groups = new HashMap<>(); - TestColocationGroupProvider(List<ClusterTableBuilderImpl> tableBuilders, Map<String, Table> tableMap, List<String> nodeNames) { + TestColocationGroupProvider(List<ClusterTableBuilderImpl> tableBuilders, Map<String, IgniteTable> tableMap, + List<String> nodeNames) { for (ClusterTableBuilderImpl tableBuilder : tableBuilders) { - Table table = tableMap.get(tableBuilder.name); - IgniteTable igniteTable = (IgniteTable) table; + IgniteTable table = tableMap.get(tableBuilder.name); CompletableFuture<ColocationGroup> f; if (!tableBuilder.dataProviders.isEmpty()) { @@ -893,7 +892,7 @@ public class TestBuilders { f = CompletableFuture.completedFuture(ColocationGroup.forNodes(nodeNames)); } - groups.put(igniteTable.id(), f); + groups.put(table.id(), f); } } diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestTable.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestTable.java index 7354f59cca..05e7b3d5be 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestTable.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestTable.java @@ -22,6 +22,8 @@ import static org.apache.ignite.lang.IgniteStringFormatter.format; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; +import java.util.stream.Collectors; import org.apache.calcite.config.CalciteConnectionConfig; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptTable; @@ -68,9 +70,9 @@ public class TestTable implements IgniteTable { TableDescriptor descriptor, String name, double rowCnt, - Map<String, IgniteSchemaIndex> indexMap + List<IgniteSchemaIndex> indexes ) { - this(descriptor, name, rowCnt, indexMap, Map.of()); + this(descriptor, name, rowCnt, indexes, Map.of()); } /** Constructor. */ @@ -78,14 +80,14 @@ public class TestTable implements IgniteTable { TableDescriptor descriptor, String name, double rowCnt, - Map<String, IgniteSchemaIndex> indexMap, + List<IgniteSchemaIndex> indexList, Map<String, DataProvider<?>> dataProviders ) { this.descriptor = descriptor; this.name = name; this.rowCnt = rowCnt; this.dataProviders = dataProviders; - indexes = indexMap; + indexes = indexList.stream().collect(Collectors.toUnmodifiableMap(t -> t.name().toUpperCase(), Function.identity())); } /** diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java index 5256130ce2..01e11549f4 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java @@ -37,7 +37,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.UUID; @@ -69,7 +68,6 @@ import org.apache.calcite.rex.RexCall; import org.apache.calcite.rex.RexNode; import org.apache.calcite.schema.ColumnStrategy; import org.apache.calcite.schema.SchemaPlus; -import org.apache.calcite.schema.Table; import org.apache.calcite.sql.SqlExplainLevel; import org.apache.calcite.sql.SqlFunction; import org.apache.calcite.sql.SqlNode; @@ -630,9 +628,7 @@ public abstract class AbstractPlannerTest extends IgniteAbstractTest { * @return Schema with given name. */ protected static IgniteSchema createSchema(String schemaName, IgniteTable... tbls) { - Map<String, Table> tableMap = Arrays.stream(tbls).collect(Collectors.toMap(IgniteTable::name, Function.identity())); - - return new IgniteSchema(schemaName, 0, tableMap); + return new IgniteSchema(schemaName, 0, Arrays.asList(tbls)); } protected void checkSplitAndSerialization(IgniteRel rel, IgniteSchema publicSchema) { diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java index 4257a768f4..fc1f31d2bd 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java @@ -20,6 +20,7 @@ package org.apache.ignite.internal.sql.engine.util; import static org.apache.ignite.lang.IgniteStringFormatter.format; import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -32,7 +33,6 @@ import java.util.function.Supplier; import org.apache.calcite.plan.RelOptUtil; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rex.RexNode; -import org.apache.calcite.schema.Table; import org.apache.calcite.sql.SqlExplainFormat; import org.apache.calcite.sql.SqlExplainLevel; import org.apache.ignite.internal.schema.NativeType; @@ -46,6 +46,7 @@ import org.apache.ignite.internal.sql.engine.rel.IgniteTableScan; import org.apache.ignite.internal.sql.engine.rel.IgniteValues; import org.apache.ignite.internal.sql.engine.rel.ProjectableFilterableTableScan; import org.apache.ignite.internal.sql.engine.schema.IgniteSchema; +import org.apache.ignite.internal.sql.engine.schema.IgniteTable; import org.apache.ignite.internal.sql.engine.trait.IgniteDistributions; import org.hamcrest.CoreMatchers; import org.hamcrest.Description; @@ -198,7 +199,7 @@ public class StatementChecker { String col3, NativeType type3) { testTables.put(tableName, table -> { - return table.name(tableName.toUpperCase(Locale.US)) + return table.name(tableName) .addColumn(col1.toUpperCase(Locale.US), type1) .addColumn(col2.toUpperCase(Locale.US), type2) .addColumn(col3.toUpperCase(Locale.US), type3) @@ -351,17 +352,17 @@ public class StatementChecker { } private IgniteSchema createSchema() { - Map<String, Table> tableMap = new HashMap<>(); + List<IgniteTable> tables = new ArrayList<>(); for (Map.Entry<String, Function<TestBuilders.TableBuilder, TestTable>> entry : testTables.entrySet()) { String tableName = entry.getKey(); Function<TableBuilder, TestTable> addTable = entry.getValue(); TestTable table = addTable.apply(TestBuilders.table().name(tableName)); - tableMap.put(tableName, table); + tables.add(table); } - return new IgniteSchema("PUBLIC", 0, tableMap); + return new IgniteSchema("PUBLIC", 0, tables); } private DynamicTest shouldPass(String name, Throwable exception, Consumer<IgniteRel> check) {
