Search in sources :

Example 1 with TableImpl

use of org.apache.ignite.internal.table.TableImpl in project ignite-3 by apache.

the class ItDataSchemaSyncTest method test.

/**
 * The test executes various operation over the lagging node.
 * The operations can be executed only the node overtakes a distributed cluster state.
 */
@Test
public void test() throws Exception {
    Ignite ignite0 = clusterNodes.get(0);
    final IgniteImpl ignite1 = (IgniteImpl) clusterNodes.get(1);
    createTable(ignite0, SCHEMA, SHORT_TABLE_NAME);
    TableImpl table = (TableImpl) ignite0.tables().table(TABLE_NAME);
    assertEquals(1, table.schemaView().schema().version());
    for (int i = 0; i < 10; i++) {
        table.recordView().insert(null, Tuple.create().set("key", (long) i).set("valInt", i).set("valStr", "str_" + i));
    }
    WatchListenerInhibitor listenerInhibitor = WatchListenerInhibitor.metastorageEventsInhibitor(ignite1);
    listenerInhibitor.startInhibit();
    ColumnDefinition columnDefinition = SchemaBuilders.column("valStr2", ColumnType.string()).withDefaultValueExpression("default").build();
    ignite0.tables().alterTable(TABLE_NAME, tblChanger -> tblChanger.changeColumns(cols -> cols.create(columnDefinition.name(), colChg -> convert(columnDefinition, colChg))));
    for (Ignite node : clusterNodes) {
        if (node == ignite1) {
            continue;
        }
        TableImpl tableOnNode = (TableImpl) node.tables().table(TABLE_NAME);
        IgniteTestUtils.waitForCondition(() -> tableOnNode.schemaView().lastSchemaVersion() == 2, 10_000);
    }
    TableImpl table1 = (TableImpl) ignite1.tables().table(TABLE_NAME);
    for (int i = 10; i < 20; i++) {
        table.recordView().insert(null, Tuple.create().set("key", (long) i).set("valInt", i).set("valStr", "str_" + i).set("valStr2", "str2_" + i));
    }
    final CompletableFuture insertFut = IgniteTestUtils.runAsync(() -> table1.recordView().insert(null, Tuple.create().set("key", 0L).set("valInt", 0).set("valStr", "str_" + 0).set("valStr2", "str2_" + 0)));
    final CompletableFuture getFut = IgniteTestUtils.runAsync(() -> {
        table1.recordView().get(null, Tuple.create().set("key", 10L));
    });
    final CompletableFuture checkDefaultFut = IgniteTestUtils.runAsync(() -> {
        assertEquals("default", table1.recordView().get(null, Tuple.create().set("key", 0L)).value("valStr2"));
    });
    assertEquals(1, table1.schemaView().lastSchemaVersion());
    assertFalse(getFut.isDone());
    assertFalse(insertFut.isDone());
    assertFalse(checkDefaultFut.isDone());
    listenerInhibitor.stopInhibit();
    getFut.get(10, TimeUnit.SECONDS);
    insertFut.get(10, TimeUnit.SECONDS);
    checkDefaultFut.get(10, TimeUnit.SECONDS);
    for (Ignite node : clusterNodes) {
        Table tableOnNode = node.tables().table(TABLE_NAME);
        for (int i = 0; i < 20; i++) {
            Tuple row = tableOnNode.recordView().get(null, Tuple.create().set("key", (long) i));
            assertNotNull(row);
            assertEquals(i, row.intValue("valInt"));
            assertEquals("str_" + i, row.value("valStr"));
            assertEquals(i < 10 ? "default" : ("str2_" + i), row.value("valStr2"));
        }
    }
}
Also used : IgniteImpl(org.apache.ignite.internal.app.IgniteImpl) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) BeforeEach(org.junit.jupiter.api.BeforeEach) SchemaConfigurationConverter.convert(org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter.convert) CompletableFuture(java.util.concurrent.CompletableFuture) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) WatchListenerInhibitor(org.apache.ignite.internal.test.WatchListenerInhibitor) Lists(com.google.common.collect.Lists) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) TableImpl(org.apache.ignite.internal.table.TableImpl) Map(java.util.Map) IgniteUtils(org.apache.ignite.internal.util.IgniteUtils) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) TableDefinition(org.apache.ignite.schema.definition.TableDefinition) ColumnDefinition(org.apache.ignite.schema.definition.ColumnDefinition) Ignite(org.apache.ignite.Ignite) ColumnType(org.apache.ignite.schema.definition.ColumnType) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) IgnitionManager(org.apache.ignite.IgnitionManager) IgniteTestUtils(org.apache.ignite.internal.testframework.IgniteTestUtils) List(java.util.List) AfterEach(org.junit.jupiter.api.AfterEach) IgniteAbstractTest(org.apache.ignite.internal.testframework.IgniteAbstractTest) SchemaBuilders(org.apache.ignite.schema.SchemaBuilders) WorkDirectoryExtension(org.apache.ignite.internal.testframework.WorkDirectoryExtension) Table(org.apache.ignite.table.Table) Tuple(org.apache.ignite.table.Tuple) CompletableFuture(java.util.concurrent.CompletableFuture) Table(org.apache.ignite.table.Table) IgniteImpl(org.apache.ignite.internal.app.IgniteImpl) TableImpl(org.apache.ignite.internal.table.TableImpl) Ignite(org.apache.ignite.Ignite) WatchListenerInhibitor(org.apache.ignite.internal.test.WatchListenerInhibitor) Tuple(org.apache.ignite.table.Tuple) ColumnDefinition(org.apache.ignite.schema.definition.ColumnDefinition) Test(org.junit.jupiter.api.Test) IgniteAbstractTest(org.apache.ignite.internal.testframework.IgniteAbstractTest)

Example 2 with TableImpl

use of org.apache.ignite.internal.table.TableImpl in project ignite-3 by apache.

the class SqlSchemaManagerImpl method convert.

private IgniteTableImpl convert(TableImpl table) {
    SchemaDescriptor descriptor = table.schemaView().schema();
    List<ColumnDescriptor> colDescriptors = descriptor.columnNames().stream().map(descriptor::column).sorted(Comparator.comparingInt(Column::columnOrder)).map(col -> new ColumnDescriptorImpl(col.name(), descriptor.isKeyColumn(col.schemaIndex()), col.columnOrder(), col.schemaIndex(), col.type(), col::defaultValue)).collect(Collectors.toList());
    return new IgniteTableImpl(new TableDescriptorImpl(colDescriptors), table.internalTable(), table.schemaView());
}
Also used : SchemaDescriptor(org.apache.ignite.internal.schema.SchemaDescriptor) SchemaPlus(org.apache.calcite.schema.SchemaPlus) Frameworks(org.apache.calcite.tools.Frameworks) NodeStoppingException(org.apache.ignite.lang.NodeStoppingException) HashMap(java.util.HashMap) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) Consumer(java.util.function.Consumer) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) Column(org.apache.ignite.internal.schema.Column) TableImpl(org.apache.ignite.internal.table.TableImpl) IgniteInternalException(org.apache.ignite.lang.IgniteInternalException) Map(java.util.Map) IgniteStringFormatter(org.apache.ignite.lang.IgniteStringFormatter) Comparator(java.util.Comparator) NotNull(org.jetbrains.annotations.NotNull) VersionedValue(org.apache.ignite.internal.causality.VersionedValue) TableManager(org.apache.ignite.internal.table.distributed.TableManager) SchemaDescriptor(org.apache.ignite.internal.schema.SchemaDescriptor)

Example 3 with TableImpl

use of org.apache.ignite.internal.table.TableImpl in project ignite-3 by apache.

the class TableManager method createTableLocally.

/**
 * Creates local structures for a table.
 *
 * @param causalityToken Causality token.
 * @param name  Table name.
 * @param tblId Table id.
 * @param assignment Affinity assignment.
 */
private void createTableLocally(long causalityToken, String name, UUID tblId, List<List<ClusterNode>> assignment, SchemaDescriptor schemaDesc) {
    int partitions = assignment.size();
    var partitionsGroupsFutures = new ArrayList<CompletableFuture<RaftGroupService>>();
    Path storageDir = partitionsStoreDir.resolve(name);
    try {
        Files.createDirectories(storageDir);
    } catch (IOException e) {
        throw new IgniteInternalException("Failed to create partitions store directory for " + name + ": " + e.getMessage(), e);
    }
    TableConfiguration tableCfg = tablesCfg.tables().get(name);
    DataRegion dataRegion = dataRegions.computeIfAbsent(tableCfg.dataRegion().value(), dataRegionName -> {
        DataRegion newDataRegion = engine.createDataRegion(dataStorageCfg.regions().get(dataRegionName));
        try {
            newDataRegion.start();
        } catch (Exception e) {
            try {
                newDataRegion.stop();
            } catch (Exception stopException) {
                e.addSuppressed(stopException);
            }
            throw e;
        }
        return newDataRegion;
    });
    TableStorage tableStorage = engine.createTable(storageDir, tableCfg, dataRegion);
    tableStorage.start();
    for (int p = 0; p < partitions; p++) {
        int partId = p;
        try {
            partitionsGroupsFutures.add(raftMgr.prepareRaftGroup(raftGroupName(tblId, p), assignment.get(p), () -> new PartitionListener(tblId, new VersionedRowStore(tableStorage.getOrCreatePartition(partId), txManager))));
        } catch (NodeStoppingException e) {
            throw new AssertionError("Loza was stopped before Table manager", e);
        }
    }
    CompletableFuture.allOf(partitionsGroupsFutures.toArray(CompletableFuture[]::new)).thenRun(() -> {
        try {
            Int2ObjectOpenHashMap<RaftGroupService> partitionMap = new Int2ObjectOpenHashMap<>(partitions);
            for (int p = 0; p < partitions; p++) {
                CompletableFuture<RaftGroupService> future = partitionsGroupsFutures.get(p);
                assert future.isDone();
                RaftGroupService service = future.join();
                partitionMap.put(p, service);
            }
            InternalTableImpl internalTable = new InternalTableImpl(name, tblId, partitionMap, partitions, netAddrResolver, txManager, tableStorage);
            var schemaRegistry = new SchemaRegistryImpl(v -> {
                if (!busyLock.enterBusy()) {
                    throw new IgniteException(new NodeStoppingException());
                }
                try {
                    return tableSchema(tblId, v);
                } finally {
                    busyLock.leaveBusy();
                }
            }, () -> {
                if (!busyLock.enterBusy()) {
                    throw new IgniteException(new NodeStoppingException());
                }
                try {
                    return latestSchemaVersion(tblId);
                } finally {
                    busyLock.leaveBusy();
                }
            });
            schemaRegistry.onSchemaRegistered(schemaDesc);
            var table = new TableImpl(internalTable, schemaRegistry);
            tablesVv.update(causalityToken, previous -> {
                var val = previous == null ? new HashMap() : new HashMap<>(previous);
                val.put(name, table);
                return val;
            }, th -> {
                throw new IgniteInternalException(IgniteStringFormatter.format("Cannot create a table [name={}, id={}]", name, tblId), th);
            });
            tablesByIdVv.update(causalityToken, previous -> {
                var val = previous == null ? new HashMap() : new HashMap<>(previous);
                val.put(tblId, table);
                return val;
            }, th -> {
                throw new IgniteInternalException(IgniteStringFormatter.format("Cannot create a table [name={}, id={}]", name, tblId), th);
            });
            completeApiCreateFuture(table);
            fireEvent(TableEvent.CREATE, new TableEventParameters(causalityToken, table), null);
        } catch (Exception e) {
            fireEvent(TableEvent.CREATE, new TableEventParameters(causalityToken, tblId, name), e);
        }
    }).join();
}
Also used : TableStorage(org.apache.ignite.internal.storage.engine.TableStorage) IgniteTablesInternal(org.apache.ignite.internal.table.IgniteTablesInternal) ExtendedTableConfiguration(org.apache.ignite.internal.configuration.schema.ExtendedTableConfiguration) TableAlreadyExistsException(org.apache.ignite.lang.TableAlreadyExistsException) ConfigurationUtil.directProxy(org.apache.ignite.internal.configuration.util.ConfigurationUtil.directProxy) ConfigurationUtil.getByInternalId(org.apache.ignite.internal.configuration.util.ConfigurationUtil.getByInternalId) ExtendedTableChange(org.apache.ignite.internal.configuration.schema.ExtendedTableChange) IgniteLogger(org.apache.ignite.lang.IgniteLogger) RaftGroupService(org.apache.ignite.raft.client.service.RaftGroupService) Map(java.util.Map) DataRegion(org.apache.ignite.internal.storage.engine.DataRegion) TableNotFoundException(org.apache.ignite.lang.TableNotFoundException) Path(java.nio.file.Path) SchemaUtils(org.apache.ignite.internal.schema.SchemaUtils) ExtendedTableView(org.apache.ignite.internal.configuration.schema.ExtendedTableView) IgniteComponent(org.apache.ignite.internal.manager.IgniteComponent) SchemaConfiguration(org.apache.ignite.internal.configuration.schema.SchemaConfiguration) Int2ObjectOpenHashMap(it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap) InternalTableImpl(org.apache.ignite.internal.table.distributed.storage.InternalTableImpl) DataStorageConfiguration(org.apache.ignite.configuration.schemas.store.DataStorageConfiguration) TablesConfiguration(org.apache.ignite.configuration.schemas.table.TablesConfiguration) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) DEFAULT_DATA_REGION_NAME(org.apache.ignite.configuration.schemas.store.DataStorageConfigurationSchema.DEFAULT_DATA_REGION_NAME) CompletionException(java.util.concurrent.CompletionException) Producer(org.apache.ignite.internal.manager.Producer) StorageEngine(org.apache.ignite.internal.storage.engine.StorageEngine) UUID(java.util.UUID) ConfigurationChangeException(org.apache.ignite.configuration.ConfigurationChangeException) Collectors(java.util.stream.Collectors) TxManager(org.apache.ignite.internal.tx.TxManager) TableView(org.apache.ignite.configuration.schemas.table.TableView) ClusterNode(org.apache.ignite.network.ClusterNode) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) IgniteInternalException(org.apache.ignite.lang.IgniteInternalException) IgniteStringFormatter(org.apache.ignite.lang.IgniteStringFormatter) NotNull(org.jetbrains.annotations.NotNull) InternalTable(org.apache.ignite.internal.table.InternalTable) IgniteException(org.apache.ignite.lang.IgniteException) Loza(org.apache.ignite.internal.raft.Loza) SchemaRegistryImpl(org.apache.ignite.internal.schema.registry.SchemaRegistryImpl) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) TableConfiguration(org.apache.ignite.configuration.schemas.table.TableConfiguration) ByteUtils(org.apache.ignite.internal.util.ByteUtils) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) SchemaSerializerImpl(org.apache.ignite.internal.schema.marshaller.schema.SchemaSerializerImpl) Function(java.util.function.Function) Supplier(java.util.function.Supplier) SchemaView(org.apache.ignite.internal.configuration.schema.SchemaView) VersionedRowStore(org.apache.ignite.internal.table.distributed.storage.VersionedRowStore) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) TableImpl(org.apache.ignite.internal.table.TableImpl) IgniteSpinBusyLock(org.apache.ignite.internal.util.IgniteSpinBusyLock) IgniteTables(org.apache.ignite.table.manager.IgniteTables) NoSuchElementException(java.util.NoSuchElementException) VersionedValue(org.apache.ignite.internal.causality.VersionedValue) TopologyService(org.apache.ignite.network.TopologyService) SchemaDescriptor(org.apache.ignite.internal.schema.SchemaDescriptor) TableEventParameters(org.apache.ignite.internal.table.event.TableEventParameters) Files(java.nio.file.Files) NamedListView(org.apache.ignite.configuration.NamedListView) NodeStoppingException(org.apache.ignite.lang.NodeStoppingException) IgniteObjectName(org.apache.ignite.internal.util.IgniteObjectName) IOException(java.io.IOException) Ignite(org.apache.ignite.Ignite) BaselineManager(org.apache.ignite.internal.baseline.BaselineManager) TableStorage(org.apache.ignite.internal.storage.engine.TableStorage) ConfigurationNamedListListener(org.apache.ignite.configuration.notifications.ConfigurationNamedListListener) NetworkAddress(org.apache.ignite.network.NetworkAddress) Consumer(java.util.function.Consumer) ConfigurationNotificationEvent(org.apache.ignite.configuration.notifications.ConfigurationNotificationEvent) TableEvent(org.apache.ignite.internal.table.event.TableEvent) AffinityUtils(org.apache.ignite.internal.affinity.AffinityUtils) EventListener(org.apache.ignite.internal.manager.EventListener) PartitionListener(org.apache.ignite.internal.table.distributed.raft.PartitionListener) Table(org.apache.ignite.table.Table) ConfigurationValidationException(org.apache.ignite.configuration.validation.ConfigurationValidationException) RocksDbStorageEngine(org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine) TableChange(org.apache.ignite.configuration.schemas.table.TableChange) NodeStoppingException(org.apache.ignite.lang.NodeStoppingException) Int2ObjectOpenHashMap(it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) InternalTableImpl(org.apache.ignite.internal.table.distributed.storage.InternalTableImpl) TableImpl(org.apache.ignite.internal.table.TableImpl) CompletableFuture(java.util.concurrent.CompletableFuture) IgniteException(org.apache.ignite.lang.IgniteException) ExtendedTableConfiguration(org.apache.ignite.internal.configuration.schema.ExtendedTableConfiguration) TableConfiguration(org.apache.ignite.configuration.schemas.table.TableConfiguration) Path(java.nio.file.Path) VersionedRowStore(org.apache.ignite.internal.table.distributed.storage.VersionedRowStore) Int2ObjectOpenHashMap(it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap) IgniteInternalException(org.apache.ignite.lang.IgniteInternalException) RaftGroupService(org.apache.ignite.raft.client.service.RaftGroupService) IOException(java.io.IOException) SchemaRegistryImpl(org.apache.ignite.internal.schema.registry.SchemaRegistryImpl) TableAlreadyExistsException(org.apache.ignite.lang.TableAlreadyExistsException) TableNotFoundException(org.apache.ignite.lang.TableNotFoundException) CompletionException(java.util.concurrent.CompletionException) ConfigurationChangeException(org.apache.ignite.configuration.ConfigurationChangeException) IgniteInternalException(org.apache.ignite.lang.IgniteInternalException) IgniteException(org.apache.ignite.lang.IgniteException) NoSuchElementException(java.util.NoSuchElementException) NodeStoppingException(org.apache.ignite.lang.NodeStoppingException) IOException(java.io.IOException) ConfigurationValidationException(org.apache.ignite.configuration.validation.ConfigurationValidationException) PartitionListener(org.apache.ignite.internal.table.distributed.raft.PartitionListener) TableEventParameters(org.apache.ignite.internal.table.event.TableEventParameters) InternalTableImpl(org.apache.ignite.internal.table.distributed.storage.InternalTableImpl) DataRegion(org.apache.ignite.internal.storage.engine.DataRegion)

Example 4 with TableImpl

use of org.apache.ignite.internal.table.TableImpl in project ignite-3 by apache.

the class TableManager method stop.

/**
 * {@inheritDoc}
 */
@Override
public void stop() {
    if (!stopGuard.compareAndSet(false, true)) {
        return;
    }
    busyLock.block();
    Map<String, TableImpl> tables = tablesVv.latest();
    if (tables != null) {
        for (TableImpl table : tables.values()) {
            try {
                table.internalTable().storage().stop();
                table.internalTable().close();
                for (int p = 0; p < table.internalTable().partitions(); p++) {
                    raftMgr.stopRaftGroup(raftGroupName(table.tableId(), p));
                }
            } catch (Exception e) {
                LOG.error("Failed to stop a table {}", e, table.name());
            }
        }
    }
    // Stop all data regions when all table storages are stopped.
    for (Map.Entry<String, DataRegion> entry : dataRegions.entrySet()) {
        try {
            entry.getValue().stop();
        } catch (Exception e) {
            LOG.error("Failed to stop data region " + entry.getKey(), e);
        }
    }
    engine.stop();
}
Also used : InternalTableImpl(org.apache.ignite.internal.table.distributed.storage.InternalTableImpl) TableImpl(org.apache.ignite.internal.table.TableImpl) Map(java.util.Map) Int2ObjectOpenHashMap(it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) TableAlreadyExistsException(org.apache.ignite.lang.TableAlreadyExistsException) TableNotFoundException(org.apache.ignite.lang.TableNotFoundException) CompletionException(java.util.concurrent.CompletionException) ConfigurationChangeException(org.apache.ignite.configuration.ConfigurationChangeException) IgniteInternalException(org.apache.ignite.lang.IgniteInternalException) IgniteException(org.apache.ignite.lang.IgniteException) NoSuchElementException(java.util.NoSuchElementException) NodeStoppingException(org.apache.ignite.lang.NodeStoppingException) IOException(java.io.IOException) ConfigurationValidationException(org.apache.ignite.configuration.validation.ConfigurationValidationException) DataRegion(org.apache.ignite.internal.storage.engine.DataRegion)

Example 5 with TableImpl

use of org.apache.ignite.internal.table.TableImpl in project ignite-3 by apache.

the class JdbcMetadataCatalog method getColumnsMeta.

/**
 * See {@link DatabaseMetaData#getColumns(String, String, String, String)} for details.
 *
 * <p>Ignite has only one possible CATALOG_NAME, it is handled on the client (driver) side.
 *
 * @param schemaNamePtrn Schema name java regex pattern.
 * @param tblNamePtrn    Table name java regex pattern.
 * @param colNamePtrn    Column name java regex pattern.
 * @return Future of the list of metadatas about columns that match specified schema/tablename/columnname criterias.
 */
public CompletableFuture<Collection<JdbcColumnMeta>> getColumnsMeta(String schemaNamePtrn, String tblNamePtrn, String colNamePtrn) {
    String schemaNameRegex = translateSqlWildcardsToRegex(schemaNamePtrn);
    String tlbNameRegex = translateSqlWildcardsToRegex(tblNamePtrn);
    String colNameRegex = translateSqlWildcardsToRegex(colNamePtrn);
    return tables.tablesAsync().thenApply(tablesList -> {
        return tablesList.stream().filter(t -> matches(getTblSchema(t.name()), schemaNameRegex)).filter(t -> matches(getTblName(t.name()), tlbNameRegex)).flatMap(tbl -> {
            SchemaDescriptor schema = ((TableImpl) tbl).schemaView().schema();
            List<Pair<String, Column>> tblColPairs = new ArrayList<>();
            for (Column column : schema.keyColumns().columns()) {
                tblColPairs.add(new Pair<>(tbl.name(), column));
            }
            for (Column column : schema.valueColumns().columns()) {
                tblColPairs.add(new Pair<>(tbl.name(), column));
            }
            return tblColPairs.stream();
        }).filter(e -> matches(e.getSecond().name(), colNameRegex)).sorted(bySchemaThenTabNameThenColOrder).map(pair -> createColumnMeta(pair.getFirst(), pair.getSecond())).collect(Collectors.toCollection(LinkedHashSet::new));
    });
}
Also used : JdbcColumnMeta(org.apache.ignite.client.proto.query.event.JdbcColumnMeta) Arrays(java.util.Arrays) SchemaDescriptor(org.apache.ignite.internal.schema.SchemaDescriptor) Pair(org.apache.ignite.internal.util.Pair) SortedSet(java.util.SortedSet) Collection(java.util.Collection) DatabaseMetaData(java.sql.DatabaseMetaData) CompletableFuture(java.util.concurrent.CompletableFuture) JdbcTableMeta(org.apache.ignite.client.proto.query.event.JdbcTableMeta) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) Commons(org.apache.ignite.internal.sql.engine.util.Commons) TreeSet(java.util.TreeSet) ArrayList(java.util.ArrayList) List(java.util.List) Column(org.apache.ignite.internal.schema.Column) TableImpl(org.apache.ignite.internal.table.TableImpl) JdbcPrimaryKeyMeta(org.apache.ignite.client.proto.query.event.JdbcPrimaryKeyMeta) IgniteTables(org.apache.ignite.table.manager.IgniteTables) NativeType(org.apache.ignite.internal.schema.NativeType) Table(org.apache.ignite.table.Table) Comparator(java.util.Comparator) SchemaRegistry(org.apache.ignite.internal.schema.SchemaRegistry) LinkedHashSet(java.util.LinkedHashSet) SchemaDescriptor(org.apache.ignite.internal.schema.SchemaDescriptor) Column(org.apache.ignite.internal.schema.Column) ArrayList(java.util.ArrayList) Pair(org.apache.ignite.internal.util.Pair)

Aggregations

TableImpl (org.apache.ignite.internal.table.TableImpl)14 UUID (java.util.UUID)9 NodeStoppingException (org.apache.ignite.lang.NodeStoppingException)9 List (java.util.List)8 HashMap (java.util.HashMap)7 Map (java.util.Map)7 SchemaDescriptor (org.apache.ignite.internal.schema.SchemaDescriptor)7 InternalTableImpl (org.apache.ignite.internal.table.distributed.storage.InternalTableImpl)7 IgniteInternalException (org.apache.ignite.lang.IgniteInternalException)7 Table (org.apache.ignite.table.Table)7 Int2ObjectOpenHashMap (it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap)6 CompletableFuture (java.util.concurrent.CompletableFuture)6 Collectors (java.util.stream.Collectors)6 IgniteException (org.apache.ignite.lang.IgniteException)6 Nullable (org.jetbrains.annotations.Nullable)6 IOException (java.io.IOException)5 NoSuchElementException (java.util.NoSuchElementException)5 CompletionException (java.util.concurrent.CompletionException)5 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)5 Consumer (java.util.function.Consumer)5