This is an automated email from the ASF dual-hosted git repository. tkalkirill pushed a commit to branch catalog-feature in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 645528c86e07f6cdd67a41505e67f7db5908132f Merge: 24df5e3d00 c24e6e0497 Author: Kirill Tkalenko <tkalkir...@yandex.ru> AuthorDate: Fri Aug 4 14:45:44 2023 +0300 Merge branch 'ai-main' into catalog-feature .github/PULL_REQUEST_TEMPLATE.md | 19 + DEVNOTES.md | 2 +- build.gradle | 26 +- buildscripts/java-integration-test.gradle | 2 + .../org/apache/ignite/table/mapper/PojoMapper.java | 8 + .../apache/ignite/table/mapper/PojoMapperImpl.java | 7 + modules/catalog/build.gradle | 6 + .../ignite/internal/catalog/CatalogManager.java | 8 +- .../internal/catalog/CatalogManagerImpl.java | 82 ++-- .../catalog/CatalogParamsValidationUtils.java | 181 +++++++ .../catalog/CatalogValidationException.java | 53 ++ .../internal/catalog/commands/AlterZoneParams.java | 20 + .../internal/catalog/commands/CatalogUtils.java | 29 ++ .../catalog/commands/CreateZoneParams.java | 49 +- ...{DropZoneParams.java => DataStorageParams.java} | 56 ++- .../internal/catalog/commands/DropZoneParams.java | 41 +- .../descriptors/CatalogDataStorageDescriptor.java | 1 + .../internal/catalog/BaseCatalogManagerTest.java | 84 ++++ .../internal/catalog/CatalogManagerSelfTest.java | 104 ++-- .../catalog/CatalogManagerValidationTest.java | 541 +++++++++++++++++++++ .../cli/call/metric/ItEnabledMetricCallsTest.java | 4 +- .../cli/call/metric/ItMetricCallsTest.java | 4 +- .../metric/ItEnabledNodeMetricCommandTest.java | 4 +- .../commands/metric/ItNodeMetricCommandTest.java | 4 +- .../internal/rest/ItGeneratedRestClientTest.java | 4 +- .../ignite/internal/cli/commands/Options.java | 8 + .../cli/commands/cluster/unit/NodesAlias.java} | 27 +- .../cluster/unit/UnitDeployOptionsMixin.java | 44 +- .../completer/DynamicCompleterActivationPoint.java | 2 + .../completer/filter/DeployUnitsOptionsFilter.java | 75 +++ .../completer/unit/UnitNodesCompleterFilter.java | 73 +++ .../unit/UnitNodesDynamicCompleterFactory.java | 6 +- .../cli/core/repl/executor/ReplExecutor.java | 4 +- .../ignite/internal/cli/util/ArrayUtils.java | 27 + .../cli/commands/cluster/unit/NodesAliasTest.java} | 31 +- .../cli/commands/unit/DeployCommandTest.java | 30 +- .../filter/DeployUnitsOptionsFilterTest.java | 56 +++ .../unit/UnitNodesCompleterFilterTest.java | 62 +++ .../ignite/internal/cli/util/ArrayUtilsTest.java | 17 + .../ignite/internal/client/TcpClientChannel.java | 2 +- .../internal/client/table/ClientKeyValueView.java | 4 +- .../ignite/internal/client/table/ClientSchema.java | 6 +- .../client/table/ClientTupleSerializer.java | 76 ++- .../ignite/client/AbstractClientTableTest.java | 114 ++++- .../ignite/client/ClientKeyValueViewTest.java | 85 ++-- .../apache/ignite/client/ClientRecordViewTest.java | 37 +- .../org/apache/ignite/client/DataStreamerTest.java | 12 +- .../ignite/client/PartitionAwarenessTest.java | 35 +- .../ignite/lang/IgniteInternalException.java | 13 + .../ignite/internal/marshaller/Marshaller.java | 47 +- modules/platforms/build.gradle | 2 +- modules/platforms/cpp/CMakeLists.txt | 7 +- .../ignite/internal/raft/RaftGroupServiceImpl.java | 2 + .../runner/app/ItIgniteNodeRestartTest.java | 6 +- .../ItThinClientMarshallingEmbeddedTest.java} | 21 +- .../app/client/ItThinClientMarshallingTest.java | 126 +++++ .../ItThinClientSchemaSynchronizationTest.java | 16 +- .../runner/app/client/ItThinClientSqlTest.java | 8 +- .../ignite/internal/sql/api/ItCommonApiTest.java | 42 +- .../internal/sql/api/ItSqlAsynchronousApiTest.java | 31 +- .../internal/sql/api/ItSqlClientMetricsTest.java | 142 ++++++ .../internal/sql/api/ItSqlSynchronousApiTest.java | 27 +- .../sql/engine/ClusterPerClassIntegrationTest.java | 34 ++ .../internal/sql/engine/ItLimitOffsetTest.java | 5 - .../streamer/ItAbstractDataStreamerTest.java | 31 +- .../ignite/internal/table/ItTableScanTest.java | 2 +- .../org/apache/ignite/internal/app/IgniteImpl.java | 3 +- .../asm/ObjectMarshallerCodeGenerator.java | 12 + .../marshaller/reflection/KvMarshallerImpl.java | 4 +- .../schema/marshaller/reflection/Marshaller.java | 41 +- .../reflection/RecordMarshallerImpl.java | 6 +- .../schema/marshaller/KvMarshallerTest.java | 140 +++--- .../schema/marshaller/RecordMarshallerTest.java | 78 ++- .../schema/testobjects/TestBitmaskObject.java} | 37 +- .../schema/testobjects/TestSimpleObjectKey.java | 65 +++ .../schema/testobjects/TestSimpleObjectVal.java | 67 +++ modules/sql-engine/build.gradle | 1 + .../internal/sql/engine/SqlQueryProcessor.java | 32 +- .../engine/exec/ddl/DdlCommandHandlerWrapper.java | 8 +- .../sql/engine/prepare/PrepareServiceImpl.java | 38 +- .../internal/sql/engine/sql/ParserServiceImpl.java | 4 +- .../sql/engine/util/CaffeineCacheFactory.java | 66 --- .../sql/engine/util/{ => cache}/Cache.java | 13 +- .../sql/engine/util/{ => cache}/CacheFactory.java | 13 +- .../engine/util/cache/CaffeineCacheFactory.java | 120 +++++ .../{CacheFactory.java => cache/StatsCounter.java} | 22 +- .../sql/metrics/SqlClientMetricSource.java | 62 +++ .../sql/metrics/SqlPlanCacheMetricSource.java | 74 +++ .../sql/engine/exec/ExecutionServiceImplTest.java | 3 +- .../internal/sql/engine/framework/TestNode.java | 4 +- .../sql/engine/planner/PlannerTimeoutTest.java | 3 +- .../sql/engine/sql/ParserServiceImplTest.java | 18 +- .../sql/engine/util/EmptyCacheFactory.java | 15 + .../sql/metrics/PlanningCacheMetricsTest.java | 96 ++++ .../storage/impl/TestMvPartitionStorage.java | 10 +- .../distributed/ItTxDistributedTestSingleNode.java | 46 +- .../schema/marshaller/TupleMarshallerImpl.java | 4 +- .../table/distributed/StorageUpdateHandler.java | 27 +- .../replicator/PartitionReplicaListener.java | 53 +- packaging/docker/docker-compose.yml | 6 +- 100 files changed, 3120 insertions(+), 805 deletions(-) diff --cc modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java index 8100286616,c7b6996dd8..358c40d675 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java @@@ -385,12 -386,13 +386,14 @@@ public class ItIgniteNodeRestartTest ex topologyAwareRaftGroupServiceFactory, vault, null, - null + null, + catalogManager ); - var indexManager = new IndexManager(tablesConfig, schemaManager, tableManager); + var indexManager = new IndexManager(tablesConfig, schemaManager, tableManager, catalogManager, metaStorageMgr, registry); + var metricManager = new MetricManager(); + SqlQueryProcessor qryEngine = new SqlQueryProcessor( registry, clusterSvc, diff --cc modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItCommonApiTest.java index 5b46b788bb,5474073978..9524ec52f4 --- 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 @@@ -30,7 -32,11 +30,12 @@@ import java.util.concurrent.Completable import java.util.concurrent.TimeUnit; import org.apache.calcite.schema.SchemaPlus; import org.apache.ignite.Ignite; + import org.apache.ignite.internal.schema.testutils.SchemaConfigurationConverter; + import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; + import org.apache.ignite.internal.schema.testutils.definition.ColumnType; + import org.apache.ignite.internal.schema.testutils.definition.ColumnType.TemporalColumnType; + import org.apache.ignite.internal.schema.testutils.definition.TableDefinition; +import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.sql.engine.ClusterPerClassIntegrationTest; import org.apache.ignite.internal.sql.engine.SqlQueryProcessor; import org.apache.ignite.internal.sql.engine.exec.ExecutionCancelledException; diff --cc modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlAsynchronousApiTest.java index 8ba1ebc628,e1b6cb0f03..ecbb5253a0 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlAsynchronousApiTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlAsynchronousApiTest.java @@@ -107,21 -100,7 +101,8 @@@ public class ItSqlAsynchronousApiTest e tearDownBase(testInfo); } - /** - * Gets the SQL API. - * - * @return SQL API. - */ - protected IgniteSql igniteSql() { - return CLUSTER_NODES.get(0).sql(); - } - - protected IgniteTransactions igniteTx() { - return CLUSTER_NODES.get(0).transactions(); - } - @Test + @Disabled("https://issues.apache.org/jira/browse/IGNITE-20096") public void ddl() throws Exception { IgniteSql sql = CLUSTER_NODES.get(0).sql(); Session ses = sql.createSession(); diff --cc modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlSynchronousApiTest.java index 2ae3e2fcdc,38b8c69ad0..91a19e6da2 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlSynchronousApiTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlSynchronousApiTest.java @@@ -89,21 -83,7 +83,8 @@@ public class ItSqlSynchronousApiTest ex tearDownBase(testInfo); } - /** - * Gets the SQL API. - * - * @return SQL API. - */ - protected IgniteSql igniteSql() { - return CLUSTER_NODES.get(0).sql(); - } - - protected IgniteTransactions igniteTx() { - return CLUSTER_NODES.get(0).transactions(); - } - @Test + @Disabled("https://issues.apache.org/jira/browse/IGNITE-20096") public void ddl() throws Exception { IgniteSql sql = igniteSql(); Session ses = sql.createSession(); diff --cc modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java index 1ba38288b1,24db718b90..80fd31c8c4 --- 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 @@@ -191,8 -203,10 +201,9 @@@ public class SqlQueryProcessor implemen Supplier<Map<String, Map<String, Class<?>>>> dataStorageFieldsSupplier, ReplicaService replicaService, HybridClock clock, - CatalogManager catalogManager + CatalogManager catalogManager, + MetricManager metricManager ) { - this.registry = registry; this.clusterSrvc = clusterSrvc; this.tableManager = tableManager; this.indexManager = indexManager; @@@ -204,16 -218,7 +215,17 @@@ this.replicaService = replicaService; this.clock = clock; this.catalogManager = catalogManager; + this.metricManager = metricManager; + + sqlSchemaManager = new SqlSchemaManagerImpl( + tableManager, + schemaManager, + registry, + busyLock + ); + + registerTableListener(TableEvent.CREATE, new TableCreatedListener((SqlSchemaManagerImpl) sqlSchemaManager)); + registerIndexListener(IndexEvent.CREATE, new IndexCreatedListener((SqlSchemaManagerImpl) sqlSchemaManager)); } /** {@inheritDoc} */