This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new ed6493a563 IGNITE-20167 Always use version to get SQL schema (#2413)
ed6493a563 is described below
commit ed6493a56390858edac369df2af3bf3da8a14080
Author: Andrew V. Mashenkov <[email protected]>
AuthorDate: Mon Aug 7 18:56:25 2023 +0300
IGNITE-20167 Always use version to get SQL schema (#2413)
---
.../internal/catalog/CatalogManagerImpl.java | 5 ++
.../ignite/internal/catalog/CatalogService.java | 8 ++
.../ignite/internal/sql/api/ItCommonApiTest.java | 13 +--
.../internal/sql/engine/SqlQueryProcessor.java | 10 ++-
.../sql/engine/exec/ExecutionServiceImpl.java | 8 +-
.../internal/sql/engine/prepare/CacheKey.java | 26 +++---
.../sql/engine/prepare/PrepareServiceImpl.java | 3 +-
.../sql/engine/schema/CatalogSqlSchemaManager.java | 94 +++++++++++-----------
.../sql/engine/schema/IgniteSchemaTable.java | 4 +-
.../sql/engine/schema/SqlSchemaManager.java | 20 ++---
.../sql/engine/schema/SqlSchemaManagerImpl.java | 33 ++++----
.../sql/engine/exec/ExecutionServiceImplTest.java | 4 +-
.../sql/engine/exec/MockedStructuresTest.java | 7 ++
.../engine/exec/schema/SqlSchemaManagerTest.java | 37 +++++----
.../engine/framework/PredefinedSchemaManager.java | 34 ++++----
.../internal/sql/engine/framework/TestNode.java | 3 +-
.../engine/schema/CatalogSqlSchemaManagerTest.java | 20 ++---
17 files changed, 170 insertions(+), 159 deletions(-)
diff --git
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java
index 81dd621748..752877429e 100644
---
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java
+++
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java
@@ -282,6 +282,11 @@ public class CatalogManagerImpl extends
Producer<CatalogEvent, CatalogEventParam
return catalogByVer.lastEntry().getKey();
}
+ @Override
+ public CompletableFuture<Void> catalogReadyFuture(int version) {
+ return versionTracker.waitFor(version);
+ }
+
private Catalog catalog(int version) {
return catalogByVer.get(version);
}
diff --git
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogService.java
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogService.java
index 66535869ba..26d55827d6 100644
---
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogService.java
+++
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogService.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.catalog;
import java.util.Collection;
+import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.catalog.descriptors.CatalogIndexDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogSchemaDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
@@ -78,5 +79,12 @@ public interface CatalogService {
*/
int latestCatalogVersion();
+ /**
+ * Returns a future, which completes, when catalog of given version will
be available.
+ *
+ * @param version Catalog version to wait for.
+ */
+ CompletableFuture<Void> catalogReadyFuture(int version);
+
void listen(CatalogEvent evt, EventListener<CatalogEventParameters>
closure);
}
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItCommonApiTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItCommonApiTest.java
index 5474073978..3fa83733d8 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItCommonApiTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItCommonApiTest.java
@@ -222,15 +222,16 @@ public class ItCommonApiTest extends
ClusterPerClassIntegrationTest {
}
private static class ErroneousSchemaManager implements SqlSchemaManager {
+
/** {@inheritDoc} */
@Override
- public SchemaPlus schema(@Nullable String schema) {
+ public @Nullable SchemaPlus schema(@Nullable String name, int version)
{
return null;
}
/** {@inheritDoc} */
@Override
- public SchemaPlus schema(@Nullable String name, int version) {
+ public @Nullable SchemaPlus schema(@Nullable String name, long
timestamp) {
return null;
}
@@ -242,13 +243,7 @@ public class ItCommonApiTest extends
ClusterPerClassIntegrationTest {
/** {@inheritDoc} */
@Override
- public CompletableFuture<SchemaPlus> actualSchemaAsync(long ver) {
- throw new UnsupportedOperationException();
- }
-
- /** {@inheritDoc} */
- @Override
- public SchemaPlus activeSchema(@Nullable String name, long timestamp) {
+ public CompletableFuture<Void> schemaReadyFuture(long version) {
throw new UnsupportedOperationException();
}
}
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
index 24db718b90..fc133d6c2f 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
@@ -43,6 +43,7 @@ import org.apache.calcite.util.Pair;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.distributionzones.DistributionZoneManager;
import org.apache.ignite.internal.hlc.HybridClock;
+import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.index.IndexManager;
import org.apache.ignite.internal.index.event.IndexEvent;
import org.apache.ignite.internal.index.event.IndexEventParameters;
@@ -443,9 +444,14 @@ public class SqlQueryProcessor implements QueryProcessor {
boolean implicitTxRequired = outerTx == null;
- tx.set(implicitTxRequired ? txManager.begin(!rwOp, null) :
outerTx);
+ InternalTransaction currentTx = implicitTxRequired ?
txManager.begin(!rwOp, null) : outerTx;
- SchemaPlus schema = sqlSchemaManager.schema(schemaName);
+ tx.set(currentTx);
+
+ // TODO IGNITE-18733: wait for actual metadata for TX.
+ HybridTimestamp txTimestamp = currentTx.startTimestamp();
+
+ SchemaPlus schema = sqlSchemaManager.schema(schemaName,
txTimestamp.longValue());
if (schema == null) {
return CompletableFuture.failedFuture(new
SchemaNotFoundException(schemaName));
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImpl.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImpl.java
index 6b483f8b0e..420a5f11be 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImpl.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImpl.java
@@ -239,13 +239,13 @@ public class ExecutionServiceImpl<RowT> implements
ExecutionService, TopologyEve
return queryManager.execute(tx, plan);
}
- private BaseQueryContext createQueryContext(UUID queryId, @Nullable String
schema, Object[] params) {
+ private BaseQueryContext createQueryContext(UUID queryId, long
schemaVersion, @Nullable String schema, Object[] params) {
return BaseQueryContext.builder()
.queryId(queryId)
.parameters(params)
.frameworkConfig(
Frameworks.newConfigBuilder(FRAMEWORK_CONFIG)
- .defaultSchema(sqlSchemaManager.schema(schema))
+ .defaultSchema(sqlSchemaManager.schema(schema,
(int) schemaVersion))
.build()
)
.logger(LOG)
@@ -330,7 +330,7 @@ public class ExecutionServiceImpl<RowT> implements
ExecutionService, TopologyEve
private void onMessage(String nodeName, QueryStartRequest msg) {
assert nodeName != null && msg != null;
- CompletableFuture<?> fut =
sqlSchemaManager.actualSchemaAsync(msg.schemaVersion());
+ CompletableFuture<Void> fut =
sqlSchemaManager.schemaReadyFuture(msg.schemaVersion());
if (fut.isDone()) {
submitFragment(nodeName, msg);
@@ -427,7 +427,7 @@ public class ExecutionServiceImpl<RowT> implements
ExecutionService, TopologyEve
private DistributedQueryManager getOrCreateQueryManager(QueryStartRequest
msg) {
return queryManagerMap.computeIfAbsent(msg.queryId(), key -> {
- BaseQueryContext ctx = createQueryContext(key, msg.schema(),
msg.parameters());
+ BaseQueryContext ctx = createQueryContext(key,
msg.schemaVersion(), msg.schema(), msg.parameters());
return new DistributedQueryManager(ctx);
});
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/CacheKey.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/CacheKey.java
index 89cd57d3a2..ae84daaf49 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/CacheKey.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/CacheKey.java
@@ -26,7 +26,9 @@ import java.util.Objects;
* context could be schema name, dynamic parameters, and so on...
*/
public class CacheKey {
- public static final Class[] EMPTY_CLASS_ARRAY = {};
+ static final Class<?>[] EMPTY_CLASS_ARRAY = {};
+
+ private final long catalogVersion;
private final String schemaName;
@@ -34,34 +36,26 @@ public class CacheKey {
private final Object contextKey;
- private final Class[] paramTypes;
+ private final Class<?>[] paramTypes;
/**
* Constructor.
*
+ * @param catalogVersion Catalog version.
* @param schemaName Schema name.
* @param query Query string.
* @param contextKey Optional context key to differ queries with and
without/different flags, having an impact on result plan (like
* LOCAL flag)
* @param paramTypes Types of all dynamic parameters, no any type can be
{@code null}.
*/
- public CacheKey(String schemaName, String query, Object contextKey,
Class[] paramTypes) {
+ public CacheKey(long catalogVersion, String schemaName, String query,
Object contextKey, Class<?>[] paramTypes) {
+ this.catalogVersion = catalogVersion;
this.schemaName = schemaName;
this.query = query;
this.contextKey = contextKey;
this.paramTypes = paramTypes;
}
- /**
- * Constructor.
- *
- * @param schemaName Schema name.
- * @param query Query string.
- */
- public CacheKey(String schemaName, String query) {
- this(schemaName, query, null, EMPTY_CLASS_ARRAY);
- }
-
/** {@inheritDoc} */
@Override
public boolean equals(Object o) {
@@ -74,6 +68,9 @@ public class CacheKey {
CacheKey cacheKey = (CacheKey) o;
+ if (catalogVersion != cacheKey.catalogVersion) {
+ return false;
+ }
if (!schemaName.equals(cacheKey.schemaName)) {
return false;
}
@@ -89,7 +86,8 @@ public class CacheKey {
@Override
public int hashCode() {
- int result = schemaName.hashCode();
+ int result = Long.hashCode(catalogVersion);
+ result = 31 * result + schemaName.hashCode();
result = 31 * result + query.hashCode();
result = 31 * result + (contextKey != null ? contextKey.hashCode() :
0);
result = 31 * result + Arrays.deepHashCode(paramTypes);
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
index ae7f38842e..81b58c958f 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
@@ -310,12 +310,13 @@ public class PrepareServiceImpl implements
PrepareService, SchemaUpdateListener
private static CacheKey createCacheKey(ParsedResult parsedResult,
PlanningContext ctx) {
boolean distributed = distributionPresent(ctx.config().getTraitDefs());
+ long catalogVersion =
ctx.unwrap(BaseQueryContext.class).schemaVersion();
Class[] paramTypes = ctx.parameters().length == 0
? EMPTY_CLASS_ARRAY :
Arrays.stream(ctx.parameters()).map(p -> (p != null) ?
p.getClass() : Void.class).toArray(Class[]::new);
- return new CacheKey(ctx.schemaName(), parsedResult.normalizedQuery(),
distributed, paramTypes);
+ return new CacheKey(catalogVersion, ctx.schemaName(),
parsedResult.normalizedQuery(), distributed, paramTypes);
}
private ResultSetMetadata resultSetMetadata(
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 ed27b83e91..79c3023d75 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,6 +20,8 @@ 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.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -69,17 +71,21 @@ public class CatalogSqlSchemaManager implements
SqlSchemaManager {
/** {@inheritDoc} */
@Override
- public SchemaPlus schema(@Nullable String schema) {
- // Should be removed -schema(name, version) must be used instead
- throw new UnsupportedOperationException();
+ public SchemaPlus schema(@Nullable String name, int version) {
+ String schemaName = name == null ? DEFAULT_SCHEMA_NAME : name;
+
+ Entry<String, Integer> entry = Map.entry(schemaName, version);
+ return cache.computeIfAbsent(entry, (e) ->
createSqlSchema(e.getValue(), catalogManager.schema(e.getKey(), e.getValue())));
}
/** {@inheritDoc} */
@Override
- public SchemaPlus schema(String name, int version) {
+ public SchemaPlus schema(@Nullable String name, long timestamp) {
String schemaName = name == null ? DEFAULT_SCHEMA_NAME : name;
- Entry<String, Integer> entry = Map.entry(schemaName, version);
+ int schemaVersion = catalogManager.activeCatalogVersion(timestamp);
+
+ Entry<String, Integer> entry = Map.entry(schemaName, schemaVersion);
return cache.computeIfAbsent(entry, (e) ->
createSqlSchema(e.getValue(), catalogManager.schema(e.getKey(), e.getValue())));
}
@@ -92,74 +98,52 @@ public class CatalogSqlSchemaManager implements
SqlSchemaManager {
/** {@inheritDoc} */
@Override
- public CompletableFuture<?> actualSchemaAsync(long ver) {
- return CompletableFuture.completedFuture(catalogManager.schema((int)
ver));
+ public CompletableFuture<Void> schemaReadyFuture(long version) {
+ // SqlSchemaManager creates SQL schema lazily on-demand, thus waiting
for Catalog version is enough.
+ return catalogManager.catalogReadyFuture((int) version);
}
- /** {@inheritDoc} */
- @Override
- public SchemaPlus activeSchema(@Nullable String name, long timestamp) {
- String schemaName = name == null ? DEFAULT_SCHEMA_NAME : name;
-
- int version = catalogManager.activeCatalogVersion(timestamp);
-
- CatalogSchemaDescriptor descriptor = catalogManager.schema(schemaName,
version);
+ private static SchemaPlus createSqlSchema(int version,
CatalogSchemaDescriptor schemaDescriptor) {
+ String schemaName = schemaDescriptor.name();
- Entry<String, Integer> entry = Map.entry(schemaName, version);
- return cache.computeIfAbsent(entry, (v) ->
createSqlSchema(v.getValue(), descriptor));
- }
-
- private SchemaPlus createSqlSchema(int version, CatalogSchemaDescriptor
descriptor) {
- String schemaName = descriptor.name();
-
- int numTables = descriptor.tables().length;
+ int numTables = schemaDescriptor.tables().length;
Map<String, Table> schemaTables = new HashMap<>(numTables);
- Map<Integer, TableDescriptorImpl> tableDescriptorMap = new
LinkedHashMap<>(numTables);
+ Int2ObjectMap<TableDescriptor> tableDescriptorMap = new
Int2ObjectOpenHashMap<>(numTables);
// Assemble sql-engine.TableDescriptors as they are required by
indexes.
- for (CatalogTableDescriptor tableDescriptor : descriptor.tables()) {
- TableDescriptorImpl descriptorImpl =
createTableDescriptor(tableDescriptor);
- tableDescriptorMap.put(tableDescriptor.id(), descriptorImpl);
+ for (CatalogTableDescriptor tableDescriptor :
schemaDescriptor.tables()) {
+ TableDescriptor descriptor =
createTableDescriptor(tableDescriptor);
+ tableDescriptorMap.put(tableDescriptor.id(), descriptor);
}
- Map<Integer, Map<String, IgniteSchemaIndex>> schemaTableIndexes = new
HashMap<>(descriptor.indexes().length);
+ Int2ObjectMap<Map<String, IgniteSchemaIndex>> schemaTableIndexes = new
Int2ObjectOpenHashMap<>(schemaDescriptor.indexes().length);
// Assemble indexes as they are required by tables.
- for (CatalogIndexDescriptor indexDescriptor : descriptor.indexes()) {
+ for (CatalogIndexDescriptor indexDescriptor :
schemaDescriptor.indexes()) {
int tableId = indexDescriptor.tableId();
- TableDescriptorImpl tableDescriptorImpl =
tableDescriptorMap.get(tableId);
- assert tableDescriptorImpl != null : "Table is not found in
schema: " + tableId;
+ TableDescriptor tableDescriptor = tableDescriptorMap.get(tableId);
+ assert tableDescriptor != null : "Table is not found in schema: "
+ tableId;
String indexName = indexDescriptor.name();
Map<String, IgniteSchemaIndex> tableIndexes =
schemaTableIndexes.computeIfAbsent(tableId, id -> new LinkedHashMap<>());
- Type type;
- if (indexDescriptor instanceof CatalogSortedIndexDescriptor) {
- type = Type.SORTED;
- } else if (indexDescriptor instanceof CatalogHashIndexDescriptor) {
- type = Type.HASH;
- } else {
- throw new IllegalArgumentException("Unexpected index type: " +
indexDescriptor);
- }
-
- RelCollation indexCollation =
IgniteSchemaIndex.createIndexCollation(indexDescriptor, tableDescriptorImpl);
- IgniteSchemaIndex schemaIndex = new IgniteSchemaIndex(indexName,
type, tableDescriptorImpl.distribution(), indexCollation);
+ IgniteSchemaIndex schemaIndex = createSchemaIndex(indexDescriptor,
tableDescriptor);
tableIndexes.put(indexName, schemaIndex);
schemaTableIndexes.put(tableId, tableIndexes);
}
// Assemble tables.
- for (CatalogTableDescriptor tableDescriptor : descriptor.tables()) {
+ for (CatalogTableDescriptor tableDescriptor :
schemaDescriptor.tables()) {
int tableId = tableDescriptor.id();
String tableName = tableDescriptor.name();
- TableDescriptorImpl descriptorImpl =
tableDescriptorMap.get(tableId);
- assert descriptorImpl != null;
+ TableDescriptor descriptor = tableDescriptorMap.get(tableId);
+ assert descriptor != null;
- IgniteStatistic statistic = new IgniteStatistic(() -> 0.0d,
descriptorImpl.distribution());
+ IgniteStatistic statistic = new IgniteStatistic(() -> 0.0d,
descriptor.distribution());
Map<String, IgniteSchemaIndex> tableIndexMap =
schemaTableIndexes.getOrDefault(tableId, Collections.emptyMap());
- IgniteSchemaTable schemaTable = new IgniteSchemaTable(tableName,
tableId, version, descriptorImpl, statistic, tableIndexMap);
+ IgniteSchemaTable schemaTable = new IgniteSchemaTable(tableName,
tableId, version, descriptor, statistic, tableIndexMap);
schemaTables.put(tableName, schemaTable);
}
@@ -170,7 +154,21 @@ public class CatalogSqlSchemaManager implements
SqlSchemaManager {
return rootSchema.add(schemaName, igniteSchema);
}
- private static TableDescriptorImpl
createTableDescriptor(CatalogTableDescriptor descriptor) {
+ private static IgniteSchemaIndex createSchemaIndex(CatalogIndexDescriptor
indexDescriptor, TableDescriptor tableDescriptor) {
+ Type type;
+ if (indexDescriptor instanceof CatalogSortedIndexDescriptor) {
+ type = Type.SORTED;
+ } else if (indexDescriptor instanceof CatalogHashIndexDescriptor) {
+ type = Type.HASH;
+ } else {
+ throw new IllegalArgumentException("Unexpected index type: " +
indexDescriptor);
+ }
+
+ RelCollation indexCollation =
IgniteSchemaIndex.createIndexCollation(indexDescriptor, tableDescriptor);
+ return new IgniteSchemaIndex(indexDescriptor.name(), type,
tableDescriptor.distribution(), indexCollation);
+ }
+
+ private static TableDescriptor
createTableDescriptor(CatalogTableDescriptor descriptor) {
List<ColumnDescriptor> colDescriptors = new ArrayList<>();
List<Integer> colocationColumns = new ArrayList<>();
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 b27768ddca..74cee2f891 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
@@ -187,8 +187,8 @@ public final class IgniteSchemaTable extends AbstractTable
implements IgniteTabl
/** {@inheritDoc} */
@Override
public <C> @Nullable C unwrap(Class<C> cls) {
- if (cls.isInstance(this)) {
- return cls.cast(this);
+ if (cls.isInstance(desc)) {
+ return cls.cast(desc);
}
return super.unwrap(cls);
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManager.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManager.java
index ef45bc8598..beed01fe86 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManager.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManager.java
@@ -26,31 +26,27 @@ import org.jetbrains.annotations.Nullable;
*/
public interface SqlSchemaManager {
/**
- * Returns a required schema if specified, or default schema otherwise.
+ * Returns schema with given name and by the given version, if name is not
specified, returns default schema of the given version.
*/
- SchemaPlus schema(@Nullable String schema);
+ SchemaPlus schema(@Nullable String name, int version);
/**
- * Returns schema with given name and by the given version, if name is not
specified, returns default schema of the given version.
+ * Returns schema with given name and by the given timestamp, if name is
not specified, returns default schema of the given version.
*/
- SchemaPlus schema(@Nullable String name, int version);
+ SchemaPlus schema(@Nullable String name, long timestamp);
/**
* Returns a table by given id.
*
* @param id An id of required table.
- *
* @return The table.
*/
IgniteTable tableById(int id);
/**
- * Wait for {@code ver} schema version, just a stub, need to be removed
after IGNITE-18733.
- */
- CompletableFuture<?> actualSchemaAsync(long ver);
-
- /**
- * Returns a required schema if specified, or default schema otherwise.
+ * Returns a future to wait for given SQL schema version readiness.
+ *
+ * @param version SQL schema version to wait.
*/
- SchemaPlus activeSchema(@Nullable String name, long timestamp);
+ CompletableFuture<Void> schemaReadyFuture(long version);
}
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java
index 1722d86074..c2ec8e2300 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java
@@ -64,6 +64,7 @@ import org.apache.ignite.internal.util.IgniteSpinBusyLock;
import org.apache.ignite.lang.IgniteInternalException;
import org.apache.ignite.lang.NodeStoppingException;
import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.TestOnly;
/**
* Holds actual schema and mutates it on schema change, requested by Ignite.
@@ -139,9 +140,9 @@ public class SqlSchemaManagerImpl implements
SqlSchemaManager {
});
}
- /** {@inheritDoc} */
- @Override
- public SchemaPlus schema(@Nullable String schema) {
+ /** Returns latest schema. */
+ @TestOnly
+ public SchemaPlus latestSchema(@Nullable String schema) {
// stub for waiting pk indexes, more clear place is IgniteSchema
CompletableFuture.allOf(pkIdxReady.values().toArray(CompletableFuture[]::new)).join();
@@ -152,25 +153,31 @@ public class SqlSchemaManagerImpl implements
SqlSchemaManager {
/** {@inheritDoc} */
@Override
- public SchemaPlus schema(String name, int version) {
- throw new UnsupportedOperationException();
+ public SchemaPlus schema(@Nullable String name, int version) {
+ return latestSchema(name);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SchemaPlus schema(@Nullable String name, long timestamp) {
+ return latestSchema(name);
}
/** {@inheritDoc} */
@Override
- public CompletableFuture<?> actualSchemaAsync(long ver) {
+ public CompletableFuture<Void> schemaReadyFuture(long version) {
if (!busyLock.enterBusy()) {
throw new IgniteInternalException(NODE_STOPPING_ERR, new
NodeStoppingException());
}
try {
- if (ver == IgniteSchema.INITIAL_VERSION) {
- return completedFuture(calciteSchemaVv.latest());
+ if (version == IgniteSchema.INITIAL_VERSION) {
+ return completedFuture(null);
}
- CompletableFuture<SchemaPlus> lastSchemaFut;
+ CompletableFuture<Void> lastSchemaFut;
try {
- lastSchemaFut = calciteSchemaVv.get(ver);
+ lastSchemaFut = calciteSchemaVv.get(version).thenAccept(ignore
-> {});
} catch (OutdatedTokenException e) {
return completedFuture(null);
}
@@ -181,12 +188,6 @@ public class SqlSchemaManagerImpl implements
SqlSchemaManager {
}
}
- /** {@inheritDoc} */
- @Override
- public SchemaPlus activeSchema(@Nullable String name, long timestamp) {
- throw new UnsupportedOperationException();
- }
-
/** {@inheritDoc} */
@Override
public IgniteTable tableById(int id) {
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 103e7077b8..4a5a0a6a1c 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
@@ -594,7 +594,7 @@ public class ExecutionServiceImplTest {
when(schemaManagerMock.tableById(anyInt())).thenReturn(table);
-
when(schemaManagerMock.actualSchemaAsync(isA(long.class))).thenReturn(CompletableFuture.completedFuture(null));
+
when(schemaManagerMock.schemaReadyFuture(isA(long.class))).thenReturn(CompletableFuture.completedFuture(null));
TestExecutableTableRegistry executableTableRegistry = new
TestExecutableTableRegistry();
executableTableRegistry.setColocatioGroupProvider((tableId) -> {
@@ -612,7 +612,7 @@ public class ExecutionServiceImplTest {
rootSch.add(schema.getName(), schema);
SchemaPlus plus = rootSch.plus().getSubSchema(schema.getName());
- when(schemaManagerMock.schema(any())).thenReturn(plus);
+ when(schemaManagerMock.schema(any(), anyInt())).thenReturn(plus);
var executionService = new ExecutionServiceImpl<>(
messageService,
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
index 294e66ab2a..775154da8e 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
@@ -30,6 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.mock;
@@ -58,6 +59,7 @@ import
org.apache.ignite.internal.distributionzones.DistributionZoneManager;
import
org.apache.ignite.internal.distributionzones.DistributionZoneNotFoundException;
import
org.apache.ignite.internal.distributionzones.configuration.DistributionZonesConfiguration;
import org.apache.ignite.internal.hlc.HybridClock;
+import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.index.IndexManager;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Operation;
@@ -95,6 +97,7 @@ import
org.apache.ignite.internal.table.distributed.TableManager;
import
org.apache.ignite.internal.table.distributed.raft.snapshot.outgoing.OutgoingSnapshotsManager;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.apache.ignite.internal.testframework.IgniteTestUtils;
+import org.apache.ignite.internal.tx.InternalTransaction;
import org.apache.ignite.internal.tx.TxManager;
import org.apache.ignite.internal.vault.VaultManager;
import org.apache.ignite.lang.ByteArray;
@@ -579,6 +582,10 @@ public class MockedStructuresTest extends
IgniteAbstractTest {
return ret;
});
+ InternalTransaction tx = mock(InternalTransaction.class);
+ when(tx.startTimestamp()).thenReturn(HybridTimestamp.MAX_VALUE);
+ when(tm.begin(anyBoolean(), any())).thenReturn(tx);
+
when(replicaManager.stopReplica(any())).thenReturn(completedFuture(true));
return createTableManager();
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/schema/SqlSchemaManagerTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/schema/SqlSchemaManagerTest.java
index eb63c18ebe..c74ab32423 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/schema/SqlSchemaManagerTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/schema/SqlSchemaManagerTest.java
@@ -40,7 +40,7 @@ import java.util.function.Consumer;
import java.util.function.LongFunction;
import org.apache.calcite.schema.SchemaPlus;
import org.apache.calcite.schema.Table;
-import org.apache.ignite.internal.index.Index;
+import org.apache.ignite.internal.catalog.CatalogService;
import org.apache.ignite.internal.index.IndexDescriptor;
import org.apache.ignite.internal.schema.Column;
import org.apache.ignite.internal.schema.NativeTypes;
@@ -70,6 +70,8 @@ import org.mockito.junit.jupiter.MockitoExtension;
*/
@ExtendWith(MockitoExtension.class)
public class SqlSchemaManagerTest extends BaseIgniteAbstractTest {
+ private static final String SCHEMA_NAME =
CatalogService.DEFAULT_SCHEMA_NAME;
+
private final int tableId = 1;
private final int indexId = 2;
@@ -89,9 +91,6 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
@Mock
private TableImpl table;
- @Mock
- private Index<IndexDescriptor> index;
-
@Mock
private SchemaRegistryImpl schemaRegistry;
@@ -133,7 +132,7 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
when(schemaManager.schemaRegistry(anyLong(),
anyInt())).thenReturn(completedFuture(schemaRegistry));
- sqlSchemaManager.onTableCreated("PUBLIC", tableId,
testRevisionRegister.actualToken() + 1);
+ sqlSchemaManager.onTableCreated(SCHEMA_NAME, tableId,
testRevisionRegister.actualToken() + 1);
testRevisionRegister.moveForward();
TestHashIndex testHashIndex = TestHashIndex.create(List.of("ID"),
"pk_idx", tableId);
@@ -147,16 +146,16 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
testRevisionRegister.moveForward();
- Table schemaTable = sqlSchemaManager.schema("PUBLIC").getTable("T");
+ Table schemaTable =
sqlSchemaManager.latestSchema(SCHEMA_NAME).getTable("T");
assertNotNull(schemaTable);
IgniteTableImpl igniteTable = assertInstanceOf(IgniteTableImpl.class,
schemaTable);
assertEquals(tableId, igniteTable.id());
- sqlSchemaManager.onTableDropped("PUBLIC", tableId,
testRevisionRegister.actualToken() + 1);
+ sqlSchemaManager.onTableDropped(SCHEMA_NAME, tableId,
testRevisionRegister.actualToken() + 1);
testRevisionRegister.moveForward();
- assertNull(sqlSchemaManager.schema("PUBLIC").getTable("T"));
+ assertNull(sqlSchemaManager.latestSchema(SCHEMA_NAME).getTable("T"));
}
@Test
@@ -171,7 +170,7 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
when(schemaRegistry.lastSchemaVersion()).thenReturn(schemaDescriptor.version());
when(schemaManager.schemaRegistry(anyLong(),
anyInt())).thenReturn(completedFuture(schemaRegistry));
- sqlSchemaManager.onTableCreated("PUBLIC", tableId,
testRevisionRegister.actualToken() + 1);
+ sqlSchemaManager.onTableCreated(SCHEMA_NAME, tableId,
testRevisionRegister.actualToken() + 1);
testRevisionRegister.moveForward();
TestHashIndex testHashIndex = TestHashIndex.create(List.of("ID"),
"pk_idx", tableId);
@@ -185,7 +184,7 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
testRevisionRegister.moveForward();
- assertEquals(1, ((IgniteTableImpl)
sqlSchemaManager.schema("PUBLIC").getTable("T")).indexes().size());
+ assertEquals(1, ((IgniteTableImpl)
sqlSchemaManager.latestSchema(SCHEMA_NAME).getTable("T")).indexes().size());
IndexDescriptor descMock = mock(IndexDescriptor.class);
when(descMock.columns()).thenReturn(List.of());
@@ -195,7 +194,7 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
testRevisionRegister.moveForward();
- IgniteSchema schema =
sqlSchemaManager.schema("PUBLIC").unwrap(IgniteSchema.class);
+ IgniteSchema schema =
sqlSchemaManager.latestSchema(SCHEMA_NAME).unwrap(IgniteSchema.class);
Table schemaTable = schema.getTable("T");
IgniteIndex igniteIndex = schema.index(indexId);
@@ -206,10 +205,10 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
assertEquals(igniteTable.id(), igniteIndex.tableId());
assertSame(igniteIndex, igniteTable.indexes().get("PUBLIC.I"));
- sqlSchemaManager.onIndexDropped("PUBLIC", igniteTable.id(), indexId,
testRevisionRegister.actualToken() + 1);
+ sqlSchemaManager.onIndexDropped(SCHEMA_NAME, igniteTable.id(),
indexId, testRevisionRegister.actualToken() + 1);
testRevisionRegister.moveForward();
-
assertNull(sqlSchemaManager.schema("PUBLIC").unwrap(IgniteSchema.class).index(indexId));
+
assertNull(sqlSchemaManager.latestSchema(SCHEMA_NAME).unwrap(IgniteSchema.class).index(indexId));
verifyNoMoreInteractions(tableManager);
}
@@ -227,7 +226,7 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
when(schemaRegistry.lastSchemaVersion()).thenReturn(schemaDescriptor.version());
when(schemaManager.schemaRegistry(anyLong(),
anyInt())).thenReturn(completedFuture(schemaRegistry));
- sqlSchemaManager.onTableCreated("PUBLIC", table.tableId(),
testRevisionRegister.actualToken() + 1);
+ sqlSchemaManager.onTableCreated(SCHEMA_NAME, table.tableId(),
testRevisionRegister.actualToken() + 1);
testRevisionRegister.moveForward();
TestHashIndex testHashIndex = TestHashIndex.create(List.of("ID"),
"pk_idx", tableId);
@@ -248,12 +247,12 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
when(descMock.name()).thenReturn(idxName);
{
- SchemaPlus schema1 = sqlSchemaManager.schema("PUBLIC");
+ SchemaPlus schema1 = sqlSchemaManager.latestSchema(SCHEMA_NAME);
sqlSchemaManager.onIndexCreated(tableId, indexId, descMock,
testRevisionRegister.actualToken() + 1);
testRevisionRegister.moveForward();
- SchemaPlus schema2 = sqlSchemaManager.schema("PUBLIC");
+ SchemaPlus schema2 = sqlSchemaManager.latestSchema(SCHEMA_NAME);
// Validate schema snapshot.
assertNotSame(schema1, schema2);
@@ -266,11 +265,11 @@ public class SqlSchemaManagerTest extends
BaseIgniteAbstractTest {
assertNotNull(((IgniteTable)
schema2.getTable("T")).getIndex(idxName));
}
{
- sqlSchemaManager.onIndexDropped("PUBLIC", table.tableId(),
indexId, testRevisionRegister.actualToken() + 1);
- SchemaPlus schema1 = sqlSchemaManager.schema("PUBLIC");
+ sqlSchemaManager.onIndexDropped(SCHEMA_NAME, table.tableId(),
indexId, testRevisionRegister.actualToken() + 1);
+ SchemaPlus schema1 = sqlSchemaManager.latestSchema(SCHEMA_NAME);
testRevisionRegister.moveForward();
- SchemaPlus schema2 = sqlSchemaManager.schema("PUBLIC");
+ SchemaPlus schema2 = sqlSchemaManager.latestSchema(SCHEMA_NAME);
// Validate schema snapshot.
assertNotSame(schema1, schema2);
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/PredefinedSchemaManager.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/PredefinedSchemaManager.java
index c98b745510..e497e2564f 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/PredefinedSchemaManager.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/PredefinedSchemaManager.java
@@ -17,13 +17,15 @@
package org.apache.ignite.internal.sql.engine.framework;
+import static java.util.concurrent.CompletableFuture.completedFuture;
+import static java.util.function.Function.identity;
+import static
org.apache.ignite.internal.util.CollectionUtils.toIntMapCollector;
+
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import java.util.Collection;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.CompletableFuture;
-import java.util.function.Function;
-import java.util.stream.Collectors;
import org.apache.calcite.schema.SchemaPlus;
import org.apache.calcite.tools.Frameworks;
import org.apache.ignite.internal.sql.engine.schema.IgniteSchema;
@@ -42,7 +44,7 @@ import org.jetbrains.annotations.Nullable;
*/
public class PredefinedSchemaManager implements SqlSchemaManager {
private final SchemaPlus root;
- private final Map<Integer, IgniteTable> tableById;
+ private final Int2ObjectMap<IgniteTable> tableById;
/** Constructs schema manager from a single schema. */
PredefinedSchemaManager(IgniteSchema schema) {
@@ -52,7 +54,7 @@ public class PredefinedSchemaManager implements
SqlSchemaManager {
/** Constructs schema manager from a collection of schemas. */
PredefinedSchemaManager(Collection<IgniteSchema> schemas) {
this.root = Frameworks.createRootSchema(false);
- this.tableById = new HashMap<>();
+ this.tableById = new Int2ObjectOpenHashMap<>();
for (IgniteSchema schema : schemas) {
root.add(schema.getName(), schema);
@@ -61,33 +63,27 @@ public class PredefinedSchemaManager implements
SqlSchemaManager {
schema.getTableNames().stream()
.map(schema::getTable)
.map(IgniteTable.class::cast)
- .collect(Collectors.toMap(IgniteTable::id,
Function.identity()))
+ .collect(toIntMapCollector(IgniteTable::id,
identity()))
);
}
}
/** {@inheritDoc} */
@Override
- public SchemaPlus schema(@Nullable String schema) {
- return schema == null ? root : root.getSubSchema(schema);
- }
-
- /** {@inheritDoc} */
- @Override
- public SchemaPlus schema(String name, int version) {
- return schema(name);
+ public SchemaPlus schema(@Nullable String name, int version) {
+ return name == null ? root : root.getSubSchema(name);
}
/** {@inheritDoc} */
@Override
- public CompletableFuture<?> actualSchemaAsync(long ver) {
- return CompletableFuture.completedFuture(root);
+ public SchemaPlus schema(@Nullable String name, long timestamp) {
+ return name == null ? root : root.getSubSchema(name);
}
/** {@inheritDoc} */
@Override
- public SchemaPlus activeSchema(@Nullable String name, long timestamp) {
- return schema(name);
+ public CompletableFuture<Void> schemaReadyFuture(long version) {
+ return completedFuture(null);
}
/** {@inheritDoc} */
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java
index 5cf322fc81..3eaa2abc2d 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java
@@ -29,6 +29,7 @@ import java.util.List;
import java.util.stream.Collectors;
import org.apache.calcite.schema.SchemaPlus;
import org.apache.calcite.tools.Frameworks;
+import org.apache.ignite.internal.catalog.CatalogService;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.sql.engine.AsyncCursor;
import org.apache.ignite.internal.sql.engine.QueryCancel;
@@ -103,7 +104,7 @@ public class TestNode implements LifecycleAware {
this.nodeName = nodeName;
var ps = new PrepareServiceImpl(nodeName, 0,
mock(DdlSqlToCommandConverter.class), PLANNING_TIMEOUT,
mock(MetricManager.class));
this.prepareService = registerService(ps);
- this.schema = schemaManager.schema("PUBLIC");
+ this.schema = schemaManager.schema(CatalogService.DEFAULT_SCHEMA_NAME,
-1);
TopologyService topologyService = clusterService.topologyService();
MessagingService messagingService = clusterService.messagingService();
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManagerTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManagerTest.java
index 18b64e3644..6deea7d40d 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManagerTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/CatalogSqlSchemaManagerTest.java
@@ -99,7 +99,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
assertEquals(testSchema.name, schema.getName());
@@ -156,7 +156,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
IgniteSchemaTable table = getTable(schema, testTable);
@@ -197,7 +197,7 @@ public class CatalogSqlSchemaManagerTest {
SqlSchemaManager sqlSchemaManager = newSchemaManager();
{
- SchemaPlus schemaPlus =
sqlSchemaManager.activeSchema(testSchema.name, testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
assertEquals(DEFAULT_SCHEMA_NAME, schema.getName());
@@ -205,7 +205,7 @@ public class CatalogSqlSchemaManagerTest {
}
{
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(null,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(null,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
assertEquals(DEFAULT_SCHEMA_NAME, schema.getName());
@@ -234,7 +234,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
IgniteTable table = getTable(schema, testTable);
@@ -274,7 +274,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
IgniteTable table = (IgniteTable) schema.getTable(testTable.name);
@@ -302,7 +302,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
IgniteTable table = (IgniteTable) schema.getTable(testTable.name);
@@ -336,7 +336,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
IgniteTable table = (IgniteTable) schema.getTable(testTable.name);
@@ -369,7 +369,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
IgniteSchemaTable table = (IgniteSchemaTable)
schema.getTable(testTable.name);
@@ -413,7 +413,7 @@ public class CatalogSqlSchemaManagerTest {
testSchema.init(catalogManager);
SqlSchemaManager sqlSchemaManager = newSchemaManager();
- SchemaPlus schemaPlus = sqlSchemaManager.activeSchema(testSchema.name,
testSchema.timestamp);
+ SchemaPlus schemaPlus = sqlSchemaManager.schema(testSchema.name,
testSchema.timestamp);
IgniteCatalogSchema schema = unwrapSchema(schemaPlus);
IgniteSchemaTable table = (IgniteSchemaTable)
schema.getTable(testTable.name);