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 55be29fd9b IGNITE-17580: Move SchemaBuilder API to test package (#1043) 55be29fd9b is described below commit 55be29fd9b52e70bfaea6933ed70ffe1726d319a Author: Andrew V. Mashenkov <amashen...@users.noreply.github.com> AuthorDate: Wed Aug 31 13:47:24 2022 +0300 IGNITE-17580: Move SchemaBuilder API to test package (#1043) --- .../ignite/schema/definition/TableDefinition.java | 8 -- .../schema/modification/AlterColumnBuilder.java | 77 --------------- .../modification/TableModificationBuilder.java | 83 ---------------- .../ignite/schema/modification/package-info.java | 22 ----- modules/cli/pom.xml | 7 ++ .../org/apache/ignite/cli/IntegrationTestBase.java | 4 +- .../apache/ignite/internal/index/IndexManager.java | 2 +- modules/runner/pom.xml | 7 ++ .../ignite/internal/ItNoSyncMetadataTest.java | 2 +- .../storage/ItRebalanceDistributedTest.java | 2 +- .../inmemory/ItRaftStorageVolatilityTest.java | 2 +- .../runner/app/AbstractSchemaChangeTest.java | 2 +- .../internal/runner/app/ItDataSchemaSyncTest.java | 2 +- .../runner/app/ItDynamicTableCreationTest.java | 2 +- .../app/ItIgniteInMemoryNodeRestartTest.java | 2 +- .../runner/app/ItIgniteNodeRestartTest.java | 2 +- .../internal/runner/app/ItNoThreadsLeftTest.java | 2 +- .../runner/app/ItSchemaChangeKvViewTest.java | 2 +- .../runner/app/ItSchemaChangeTableViewTest.java | 2 +- .../runner/app/ItTableApiContractTest.java | 2 +- .../internal/runner/app/ItTablesApiTest.java | 2 +- .../runner/app/PlatformTestNodeRunner.java | 2 +- .../app/client/ItAbstractThinClientTest.java | 2 +- .../runner/app/jdbc/ItJdbcMetadataSelfTest.java | 2 +- .../runner/app/jdbc/ItJdbcResultSetSelfTest.java | 2 +- .../sql/engine/AbstractBasicIntegrationTest.java | 4 +- .../internal/sql/engine/ItFunctionsTest.java | 2 +- .../internal/sql/engine/ItIndexSpoolTest.java | 2 +- .../ignite/internal/sql/engine/ItJoinTest.java | 2 +- .../ignite/internal/sql/engine/ItMetadataTest.java | 2 +- .../internal/sql/engine/ItMixedQueriesTest.java | 2 +- .../internal/sql/engine/ItOrToUnionRuleTest.java | 2 +- .../sql/engine/ItProjectScanMergeRuleTest.java | 2 +- .../internal/sql/engine/ItSecondaryIndexTest.java | 2 +- .../ignite/internal/sql/engine/ItSetOpTest.java | 2 +- .../internal/sql/engine/ItSortAggregateTest.java | 2 +- .../apache/ignite/internal/schema/SchemaUtils.java | 9 ++ .../schema/configuration/TableValidatorImpl.java | 4 +- .../schema/definition/SchemaValidationUtils.java | 77 +++++++++++++++ .../schema/definition/TableDefinitionImpl.java | 21 +--- .../modification/AlterColumnBuilderImpl.java | 75 --------------- .../modification/TableModificationBuilderImpl.java | 106 --------------------- .../org/apache/ignite/schema/package-info.java | 22 ----- .../internal/schema/SchemaConfigurationTest.java | 51 +--------- .../builder/ColumnDefinitionBuilderTest.java | 4 +- .../builder/HashIndexDefinitionBuilderTest.java | 4 +- .../PrimaryKeyDefinitionDefinitionBuilderTest.java | 4 +- .../builder/SortedIndexDefinitionBuilderTest.java | 4 +- .../schema/builder/TableDefinitionBuilderTest.java | 4 +- .../SchemaConfigurationConverterTest.java | 8 +- .../SchemaDescriptorConverterTest.java | 6 +- .../testutils}/builder/AbstractIndexBuilder.java | 3 +- .../builder/ColumnDefinitionBuilder.java | 2 +- .../builder/ColumnDefinitionBuilderImpl.java | 5 +- .../builder/HashIndexDefinitionBuilder.java | 2 +- .../builder/HashIndexDefinitionBuilderImpl.java | 5 +- .../builder/PrimaryKeyDefinitionBuilder.java | 2 +- .../builder/PrimaryKeyDefinitionBuilderImpl.java | 6 +- .../schema/testutils/builder}/SchemaBuilders.java | 12 +-- .../testutils}/builder/SchemaObjectBuilder.java | 2 +- .../builder/SortedIndexDefinitionBuilder.java | 2 +- .../builder/SortedIndexDefinitionBuilderImpl.java | 16 ++-- .../testutils}/builder/TableDefinitionBuilder.java | 2 +- .../builder/TableDefinitionBuilderImpl.java | 62 ++---------- .../sql/engine/exec/ddl/DdlCommandHandler.java | 49 +++++----- .../storage/AbstractMvTableStorageTest.java | 2 +- .../index/AbstractHashIndexStorageTest.java | 6 +- .../index/AbstractSortedIndexStorageTest.java | 10 +- .../table/distributed/TableManagerTest.java | 2 +- 69 files changed, 219 insertions(+), 638 deletions(-) diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java index f82bd45a0c..a9774c7d9e 100644 --- a/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java +++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java @@ -21,7 +21,6 @@ import java.util.Collection; import java.util.List; import java.util.Set; import org.apache.ignite.schema.definition.index.IndexDefinition; -import org.apache.ignite.schema.modification.TableModificationBuilder; /** * Table schema configuration. @@ -63,11 +62,4 @@ public interface TableDefinition extends SchemaObject { * @return Collection of indexes. */ Collection<IndexDefinition> indices(); - - /** - * Converts table descriptor to table modification builder. - * - * @return Table modification builder. - */ - TableModificationBuilder toBuilder(); } diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java deleted file mode 100644 index d2dbf8606a..0000000000 --- a/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.schema.modification; - -import org.apache.ignite.schema.definition.ColumnType; - -/** - * Alter column builder. - * - * <p>NOTE: Only safe actions that can be applied automatically on-fly are allowed. - */ -public interface AlterColumnBuilder { - /** - * Renames a column. - * - * @param newName New column name. - * @return {@code this} for chaining. - */ - AlterColumnBuilder withNewName(String newName); - - /** - * Convert column to a new type. - * - * <p>Note: New type must be compatible with old. - * - * @param newType New column type. - * @return {@code this} for chaining. - */ - AlterColumnBuilder convertTo(ColumnType newType); - - /** - * Sets new column default value. - * - * @param defaultValue Default value. - * @return {@code this} for chaining. - */ - AlterColumnBuilder withNewDefault(Object defaultValue); - - /** - * Set nullability attribute. - * - * @return {@code this} for chaining. - */ - AlterColumnBuilder asNullable(); - - /** - * Mark column as non-nullable. - * - * <p>Note: Replacement param is mandatory, all previously stored 'nulls' will be treated as replacement value on read. - * - * @param replacement Non-null value, that 'null' will be converted to. - * @return {@code this} for chaining. - */ - AlterColumnBuilder asNonNullable(Object replacement); - - /** - * Builds alter column descriptor and pass it to parent table modification builder. - * - * @return Parent builder. - */ - TableModificationBuilder done(); -} diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java deleted file mode 100644 index af4508544f..0000000000 --- a/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.schema.modification; - -import org.apache.ignite.schema.definition.ColumnDefinition; -import org.apache.ignite.schema.definition.index.IndexDefinition; - -/** - * Collect schema modification commands and pass them to manager to create a schema upgrade script. - */ -public interface TableModificationBuilder { - /** - * Adds new value column. - * - * @param column Column. - * @return {@code this} for chaining. - */ - TableModificationBuilder addColumn(ColumnDefinition column); - - /** - * Adds new non-affinity key column. - * - * @param column Column. - * @return {@code this} for chaining. - */ - TableModificationBuilder addKeyColumn(ColumnDefinition column); - - /** - * Creates alter column builder.. - * - * @param columnName Column name. - * @return Alter column builder. - */ - AlterColumnBuilder alterColumn(String columnName); - - /** - * Drops value column. - * - * <p>Note: Key column drop is not allowed. - * - * @param columnName Column. - * @return {@code this} for chaining. - */ - TableModificationBuilder dropColumn(String columnName); - - /** - * Adds new table index. - * - * @param indexDefinition Table index. - * @return {@code this} for chaining. - */ - TableModificationBuilder addIndex(IndexDefinition indexDefinition); - - /** - * Drops table index. - * - * <p>Note: PK can't be dropped. - * - * @param indexName Index name. - * @return {@code this} for chaining. - */ - TableModificationBuilder dropIndex(String indexName); - - /** - * Apply changes. - */ - void apply(); -} diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java deleted file mode 100644 index 1b154cad5e..0000000000 --- a/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Table schema manipulation API. - */ - -package org.apache.ignite.schema.modification; diff --git a/modules/cli/pom.xml b/modules/cli/pom.xml index c579e154ec..2c2df5213f 100644 --- a/modules/cli/pom.xml +++ b/modules/cli/pom.xml @@ -259,6 +259,13 @@ <scope>test</scope> <type>test-jar</type> </dependency> + + <dependency> + <groupId>org.apache.ignite</groupId> + <artifactId>ignite-schema</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> </dependencies> </profile> </profiles> diff --git a/modules/cli/src/integrationTest/java/org/apache/ignite/cli/IntegrationTestBase.java b/modules/cli/src/integrationTest/java/org/apache/ignite/cli/IntegrationTestBase.java index 2c243b0635..894dd9536a 100644 --- a/modules/cli/src/integrationTest/java/org/apache/ignite/cli/IntegrationTestBase.java +++ b/modules/cli/src/integrationTest/java/org/apache/ignite/cli/IntegrationTestBase.java @@ -43,6 +43,8 @@ import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.logger.IgniteLogger; import org.apache.ignite.internal.logger.Loggers; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.TableDefinitionBuilder; import org.apache.ignite.internal.sql.engine.AsyncCursor; import org.apache.ignite.internal.sql.engine.AsyncCursor.BatchedResult; import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest; @@ -50,10 +52,8 @@ import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.lang.IgniteStringFormatter; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; import org.apache.ignite.table.RecordView; import org.apache.ignite.table.Table; import org.apache.ignite.table.Tuple; diff --git a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java index 322ca04573..2da927850c 100644 --- a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java +++ b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java @@ -18,7 +18,7 @@ package org.apache.ignite.internal.index; import static java.util.concurrent.CompletableFuture.failedFuture; -import static org.apache.ignite.internal.schema.definition.TableDefinitionImpl.canonicalName; +import static org.apache.ignite.internal.schema.SchemaUtils.canonicalName; import java.util.ArrayList; import java.util.Arrays; diff --git a/modules/runner/pom.xml b/modules/runner/pom.xml index ae0605d177..027b962f97 100644 --- a/modules/runner/pom.xml +++ b/modules/runner/pom.xml @@ -232,6 +232,13 @@ <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.ignite</groupId> + <artifactId>ignite-schema</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> + <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path-assert</artifactId> diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/ItNoSyncMetadataTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/ItNoSyncMetadataTest.java index 5322a18218..e6b7706ed1 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/ItNoSyncMetadataTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/ItNoSyncMetadataTest.java @@ -19,10 +19,10 @@ package org.apache.ignite.internal; import java.util.stream.Collectors; import org.apache.ignite.Ignite; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.sql.engine.AbstractBasicIntegrationTest; import org.apache.ignite.internal.testframework.IgniteTestUtils; import org.apache.ignite.internal.testframework.WithSystemProperty; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java index e064f0207a..34e471909d 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java @@ -64,6 +64,7 @@ import org.apache.ignite.internal.raft.server.impl.JraftServerImpl; import org.apache.ignite.internal.raft.storage.impl.LocalLogStorageFactory; import org.apache.ignite.internal.schema.SchemaManager; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.storage.DataStorageManager; import org.apache.ignite.internal.storage.DataStorageModules; import org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryDataStorageModule; @@ -90,7 +91,6 @@ import org.apache.ignite.network.NetworkAddress; import org.apache.ignite.network.StaticNodeFinder; import org.apache.ignite.raft.client.Peer; import org.apache.ignite.raft.jraft.rpc.RpcRequests; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.utils.ClusterServiceTestUtils; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java index c5b6231b66..29972015c8 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java @@ -39,9 +39,9 @@ import org.apache.ignite.configuration.schemas.table.EntryCountBudgetChange; import org.apache.ignite.internal.AbstractClusterIntegrationTest; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryDataStorageChange; import org.apache.ignite.internal.table.distributed.TableManager; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.junit.jupiter.api.Test; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java index f306baebf6..89de3cf4c0 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java @@ -35,12 +35,12 @@ import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; import org.apache.ignite.configuration.schemas.table.ColumnChange; import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultChange; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; import org.apache.ignite.internal.util.IgniteObjectName; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.lang.IgniteException; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDataSchemaSyncTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDataSchemaSyncTest.java index 6036c5409a..8814296f96 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDataSchemaSyncTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDataSchemaSyncTest.java @@ -33,13 +33,13 @@ import java.util.concurrent.TimeUnit; import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; import org.apache.ignite.internal.app.IgniteImpl; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.table.TableImpl; import org.apache.ignite.internal.test.WatchListenerInhibitor; import org.apache.ignite.internal.testframework.IgniteAbstractTest; import org.apache.ignite.internal.testframework.IgniteTestUtils; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; import org.apache.ignite.internal.util.IgniteUtils; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDynamicTableCreationTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDynamicTableCreationTest.java index b74735ec5a..9bef423071 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDynamicTableCreationTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItDynamicTableCreationTest.java @@ -38,11 +38,11 @@ import org.apache.ignite.IgnitionManager; import org.apache.ignite.configuration.schemas.table.ColumnChange; import org.apache.ignite.configuration.validation.ConfigurationValidationException; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.lang.IgniteException; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.KeyValueView; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteInMemoryNodeRestartTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteInMemoryNodeRestartTest.java index 41179fe67b..65238f2736 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteInMemoryNodeRestartTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteInMemoryNodeRestartTest.java @@ -36,6 +36,7 @@ import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.raft.Loza; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryDataStorageChange; import org.apache.ignite.internal.table.TableImpl; import org.apache.ignite.internal.testframework.IgniteAbstractTest; @@ -46,7 +47,6 @@ import org.apache.ignite.lang.IgniteStringFormatter; import org.apache.ignite.network.NetworkAddress; import org.apache.ignite.raft.client.Peer; import org.apache.ignite.raft.client.service.RaftGroupService; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git 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 index bbfe2ec788..eead7e596d 100644 --- 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 @@ -72,6 +72,7 @@ import org.apache.ignite.internal.raft.storage.impl.LocalLogStorageFactory; import org.apache.ignite.internal.recovery.ConfigurationCatchUpListener; import org.apache.ignite.internal.recovery.RecoveryCompletionFutureFactory; import org.apache.ignite.internal.schema.SchemaManager; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.storage.DataStorageManager; import org.apache.ignite.internal.storage.DataStorageModule; import org.apache.ignite.internal.storage.DataStorageModules; @@ -96,7 +97,6 @@ import org.apache.ignite.network.MessageSerializationRegistryImpl; import org.apache.ignite.network.NettyBootstrapFactory; import org.apache.ignite.network.scalecube.ScaleCubeClusterServiceFactory; import org.apache.ignite.raft.jraft.RaftMessagesSerializationRegistryInitializer; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItNoThreadsLeftTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItNoThreadsLeftTest.java index f8eb931eb3..fc5d08e4b3 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItNoThreadsLeftTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItNoThreadsLeftTest.java @@ -31,9 +31,9 @@ import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.testframework.IgniteAbstractTest; import org.apache.ignite.internal.testframework.IgniteTestUtils; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.table.Table; import org.junit.jupiter.api.Test; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeKvViewTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeKvViewTest.java index 0f892a8012..1e0d9e1458 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeKvViewTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeKvViewTest.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.function.Supplier; import org.apache.ignite.Ignite; import org.apache.ignite.internal.schema.SchemaMismatchException; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.table.KeyValueView; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeTableViewTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeTableViewTest.java index d07424d409..b11a176443 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeTableViewTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItSchemaChangeTableViewTest.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.function.Supplier; import org.apache.ignite.Ignite; import org.apache.ignite.internal.schema.SchemaMismatchException; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.table.RecordView; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTableApiContractTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTableApiContractTest.java index c2be105b3c..33c389f57f 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTableApiContractTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTableApiContractTest.java @@ -25,10 +25,10 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import org.apache.ignite.Ignite; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.sql.engine.AbstractBasicIntegrationTest; import org.apache.ignite.lang.TableAlreadyExistsException; import org.apache.ignite.lang.TableNotFoundException; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.table.Table; import org.junit.jupiter.api.AfterEach; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTablesApiTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTablesApiTest.java index b8ee87b1a6..b1a0c43569 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTablesApiTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItTablesApiTest.java @@ -41,6 +41,7 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.table.IgniteTablesInternal; import org.apache.ignite.internal.table.TableImpl; import org.apache.ignite.internal.test.WatchListenerInhibitor; @@ -51,7 +52,6 @@ import org.apache.ignite.lang.IndexAlreadyExistsException; import org.apache.ignite.lang.NodeStoppingException; import org.apache.ignite.lang.TableAlreadyExistsException; import org.apache.ignite.lang.TableNotFoundException; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.index.IndexDefinition; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java index 6ad971ef94..404855f3e7 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java @@ -31,8 +31,8 @@ import org.apache.ignite.compute.ComputeJob; import org.apache.ignite.compute.JobExecutionContext; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.util.IgniteUtils; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItAbstractThinClientTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItAbstractThinClientTest.java index 2e6d9b6861..d1084d9345 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItAbstractThinClientTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItAbstractThinClientTest.java @@ -33,12 +33,12 @@ import org.apache.ignite.IgnitionManager; import org.apache.ignite.client.IgniteClient; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.testframework.IgniteAbstractTest; import org.apache.ignite.internal.testframework.IgniteTestUtils; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; import org.apache.ignite.internal.util.IgniteUtils; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.junit.jupiter.api.AfterAll; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcMetadataSelfTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcMetadataSelfTest.java index dbf94f3c6a..a032f10074 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcMetadataSelfTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcMetadataSelfTest.java @@ -45,7 +45,7 @@ import java.util.Set; import org.apache.ignite.Ignite; import org.apache.ignite.internal.client.proto.ProtocolVersion; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcResultSetSelfTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcResultSetSelfTest.java index cd956683d9..847a0dc984 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcResultSetSelfTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/jdbc/ItJdbcResultSetSelfTest.java @@ -44,8 +44,8 @@ import java.util.GregorianCalendar; import java.util.List; import org.apache.ignite.Ignite; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.tostring.S; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java index 63657360ba..a5adfbcb62 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/AbstractBasicIntegrationTest.java @@ -43,6 +43,8 @@ import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.logger.IgniteLogger; import org.apache.ignite.internal.logger.Loggers; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.TableDefinitionBuilder; import org.apache.ignite.internal.sql.engine.property.PropertiesHolder; import org.apache.ignite.internal.sql.engine.session.SessionId; import org.apache.ignite.internal.sql.engine.util.QueryChecker; @@ -51,10 +53,8 @@ import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.lang.IgniteStringFormatter; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; import org.apache.ignite.sql.ColumnMetadata; import org.apache.ignite.table.RecordView; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItFunctionsTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItFunctionsTest.java index 95efbd8c58..0a25ecd65f 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItFunctionsTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItFunctionsTest.java @@ -30,9 +30,9 @@ import java.time.LocalTime; import java.time.temporal.Temporal; import org.apache.calcite.sql.validate.SqlValidatorException; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.testframework.IgniteTestUtils; import org.apache.ignite.lang.IgniteException; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.RecordView; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItIndexSpoolTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItIndexSpoolTest.java index 153e6590d7..4918964b4d 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItIndexSpoolTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItIndexSpoolTest.java @@ -25,7 +25,7 @@ import java.util.List; import org.apache.ignite.internal.logger.IgniteLogger; import org.apache.ignite.internal.logger.Loggers; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItJoinTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItJoinTest.java index bd21036cb0..0f72607994 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItJoinTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItJoinTest.java @@ -19,8 +19,8 @@ package org.apache.ignite.internal.sql.engine; import java.util.Arrays; import java.util.stream.Collectors; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.sql.engine.util.QueryChecker; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.BeforeAll; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java index 1ad9c0e0cc..ea28086aca 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java @@ -24,8 +24,8 @@ import static org.apache.ignite.sql.ColumnMetadata.UNDEFINED_SCALE; import java.time.Duration; import java.time.Period; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.sql.engine.util.MetadataMatcher; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.sql.SqlColumnType; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java index 55374be9a7..4f2923f371 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java @@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Arrays; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItOrToUnionRuleTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItOrToUnionRuleTest.java index fa55b2264e..18adaffa44 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItOrToUnionRuleTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItOrToUnionRuleTest.java @@ -24,7 +24,7 @@ import static org.hamcrest.CoreMatchers.not; import java.util.List; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItProjectScanMergeRuleTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItProjectScanMergeRuleTest.java index 245e337bc6..1f20c825f6 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItProjectScanMergeRuleTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItProjectScanMergeRuleTest.java @@ -24,8 +24,8 @@ import static org.apache.ignite.internal.sql.engine.util.QueryChecker.containsPr import static org.junit.jupiter.api.Assertions.assertThrows; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.lang.IgniteException; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java index ac3ecd7c7f..033a23bdf3 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java @@ -28,7 +28,7 @@ import static org.hamcrest.Matchers.not; import java.util.List; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java index 04a159b979..3d1dcf1ca7 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java @@ -22,7 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.function.Predicate; import java.util.stream.StreamSupport; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.RecordView; diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSortAggregateTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSortAggregateTest.java index 0e940191cc..d047780b3d 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSortAggregateTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSortAggregateTest.java @@ -20,7 +20,7 @@ package org.apache.ignite.internal.sql.engine; import static org.junit.jupiter.api.Assertions.assertEquals; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.RecordView; diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java index 05552b00d2..f1d5f7ee13 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java +++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java @@ -143,4 +143,13 @@ public class SchemaUtils { return true; } + + /** + * Creates canonical table name. + * + * @return Table with schema canonical name. + */ + public static String canonicalName(String schema, String name) { + return schema + '.' + name; + } } diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/TableValidatorImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/TableValidatorImpl.java index 6d4cc9fa6a..a9da01df30 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/TableValidatorImpl.java +++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/TableValidatorImpl.java @@ -23,8 +23,8 @@ import org.apache.ignite.configuration.schemas.table.TableView; import org.apache.ignite.configuration.validation.ValidationContext; import org.apache.ignite.configuration.validation.ValidationIssue; import org.apache.ignite.configuration.validation.Validator; +import org.apache.ignite.internal.schema.definition.SchemaValidationUtils; import org.apache.ignite.internal.schema.definition.TableDefinitionImpl; -import org.apache.ignite.internal.schema.definition.builder.TableDefinitionBuilderImpl; /** * Table schema configuration validator implementation. @@ -47,7 +47,7 @@ public class TableValidatorImpl implements Validator<TableValidator, NamedListVi assert !tbl.keyColumns().isEmpty(); assert !tbl.colocationColumns().isEmpty(); - TableDefinitionBuilderImpl.validateIndices(tbl.indices(), tbl.columns(), tbl.colocationColumns()); + SchemaValidationUtils.validateIndices(tbl.indices(), tbl.columns(), tbl.colocationColumns()); } catch (IllegalArgumentException e) { ctx.addIssue(new ValidationIssue( ctx.currentKey(), diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/SchemaValidationUtils.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/SchemaValidationUtils.java new file mode 100644 index 0000000000..4dd20017c6 --- /dev/null +++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/SchemaValidationUtils.java @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.schema.definition; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import org.apache.ignite.schema.definition.ColumnDefinition; +import org.apache.ignite.schema.definition.index.ColumnarIndexDefinition; +import org.apache.ignite.schema.definition.index.IndexColumnDefinition; +import org.apache.ignite.schema.definition.index.IndexDefinition; + +/** + * Schema validation methods. + */ +public class SchemaValidationUtils { + /** + * Validate primary key. + * + * @param pkColNames Primary key columns. + * @param cols Table columns. + */ + public static void validatePrimaryKey(Set<String> pkColNames, final Map<String, ColumnDefinition> cols) { + pkColNames.stream() + .filter(pkCol -> cols.get(pkCol).nullable()) + .findAny() + .ifPresent((pkCol) -> { + throw new IllegalStateException("Primary key cannot contain nullable column [col=" + pkCol + "]."); + }); + } + + /** + * Validate indices. + * + * @param indices Table indices. + * @param cols Table columns. + * @param colocationColNames Colocation columns names. + */ + public static void validateIndices( + Collection<IndexDefinition> indices, + Collection<ColumnDefinition> cols, + List<String> colocationColNames) { + Set<String> colNames = cols.stream().map(ColumnDefinition::name).collect(Collectors.toSet()); + + for (IndexDefinition idx : indices) { + assert idx instanceof ColumnarIndexDefinition : "Only columnar indices are supported."; + // Note: E.g. functional index is not columnar index as it index an expression result only. + + ColumnarIndexDefinition idx0 = (ColumnarIndexDefinition) idx; + + if (!idx0.columns().stream().map(IndexColumnDefinition::name).allMatch(colNames::contains)) { + throw new IllegalStateException("Index column must exist in the schema."); + } + + if (idx0.unique() && !(idx0.columns().stream().map(IndexColumnDefinition::name).allMatch(colocationColNames::contains))) { + throw new IllegalStateException("Unique index must contains all colocation columns."); + } + } + } +} diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/TableDefinitionImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/TableDefinitionImpl.java index 3e8ac14368..cb88ca7819 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/TableDefinitionImpl.java +++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/TableDefinitionImpl.java @@ -24,14 +24,12 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.ignite.internal.schema.modification.TableModificationBuilderImpl; +import org.apache.ignite.internal.schema.SchemaUtils; import org.apache.ignite.internal.tostring.S; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.PrimaryKeyDefinition; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.schema.definition.index.IndexDefinition; -import org.apache.ignite.schema.modification.TableModificationBuilder; -import org.jetbrains.annotations.NotNull; /** * Table. @@ -106,16 +104,7 @@ public class TableDefinitionImpl extends AbstractSchemaObject implements TableDe /** {@inheritDoc} */ @Override public String canonicalName() { - return canonicalName(schemaName, name()); - } - - /** - * Creates canonical table name. - * - * @return Table with schema canonical name. - */ - public static String canonicalName(@NotNull String schema, @NotNull String name) { - return schema + '.' + name; + return SchemaUtils.canonicalName(schemaName, name()); } /** {@inheritDoc} */ @@ -124,12 +113,6 @@ public class TableDefinitionImpl extends AbstractSchemaObject implements TableDe return Collections.unmodifiableCollection(indices.values()); } - /** {@inheritDoc} */ - @Override - public TableModificationBuilder toBuilder() { - return new TableModificationBuilderImpl(this); - } - /** * Check if specified column already exists. * diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/AlterColumnBuilderImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/AlterColumnBuilderImpl.java deleted file mode 100644 index 0b1a12d25d..0000000000 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/AlterColumnBuilderImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.schema.modification; - -import org.apache.ignite.schema.definition.ColumnType; -import org.apache.ignite.schema.modification.AlterColumnBuilder; -import org.apache.ignite.schema.modification.TableModificationBuilder; - -/** - * Alter column builder. - */ -class AlterColumnBuilderImpl implements AlterColumnBuilder { - /** Table modification builder. */ - private final TableModificationBuilderImpl tableBuilder; - - /** - * Constructor. - * - * @param tableBuilder Table modification builder. - */ - AlterColumnBuilderImpl(TableModificationBuilderImpl tableBuilder) { - this.tableBuilder = tableBuilder; - } - - /** {@inheritDoc} */ - @Override - public AlterColumnBuilder withNewName(String newName) { - return this; - } - - /** {@inheritDoc} */ - @Override - public AlterColumnBuilder convertTo(ColumnType newType) { - return this; - } - - /** {@inheritDoc} */ - @Override - public AlterColumnBuilder withNewDefault(Object defaultValue) { - return this; - } - - /** {@inheritDoc} */ - @Override - public AlterColumnBuilder asNullable() { - return this; - } - - /** {@inheritDoc} */ - @Override - public AlterColumnBuilder asNonNullable(Object replacement) { - return this; - } - - /** {@inheritDoc} */ - @Override - public TableModificationBuilder done() { - return tableBuilder; - } -} diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/TableModificationBuilderImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/TableModificationBuilderImpl.java deleted file mode 100644 index 563399fc02..0000000000 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/TableModificationBuilderImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.schema.modification; - -import org.apache.ignite.internal.schema.definition.TableDefinitionImpl; -import org.apache.ignite.schema.definition.ColumnDefinition; -import org.apache.ignite.schema.definition.PrimaryKeyDefinition; -import org.apache.ignite.schema.definition.index.IndexDefinition; -import org.apache.ignite.schema.modification.AlterColumnBuilder; -import org.apache.ignite.schema.modification.TableModificationBuilder; - -/** - * Table modification builder. - */ -public class TableModificationBuilderImpl implements TableModificationBuilder { - /** Table. */ - private final TableDefinitionImpl table; - - /** - * Constructor. - * - * @param table Table. - */ - public TableModificationBuilderImpl(TableDefinitionImpl table) { - this.table = table; - } - - /** {@inheritDoc} */ - @Override - public TableModificationBuilder addColumn(ColumnDefinition column) { - if (table.hasColumn(column.name())) { - throw new IllegalArgumentException("Duplicate column: name='" + column.name() + '\''); - } - - return this; - } - - /** {@inheritDoc} */ - @Override - public TableModificationBuilder addKeyColumn(ColumnDefinition column) { - if (table.hasColumn(column.name())) { - throw new IllegalArgumentException("Duplicate column: name=" + column.name() + '\''); - } - - return this; - } - - /** {@inheritDoc} */ - @Override - public AlterColumnBuilder alterColumn(String columnName) { - return new AlterColumnBuilderImpl(this); - } - - /** {@inheritDoc} */ - @Override - public TableModificationBuilder dropColumn(String columnName) { - if (table.hasKeyColumn(columnName)) { - throw new IllegalArgumentException("Can't drop key column: name=" + columnName); - } - - return this; - } - - /** {@inheritDoc} */ - @Override - public TableModificationBuilder addIndex(IndexDefinition indexDefinition) { - assert !PrimaryKeyDefinition.PRIMARY_KEY_NAME.equals(indexDefinition.name()); - - if (table.indices().stream().anyMatch(i -> i.name().equals(indexDefinition.name()))) { - throw new IllegalArgumentException("Index already exists: name=" + indexDefinition.name() + '\''); - } - - return this; - } - - /** {@inheritDoc} */ - @Override - public TableModificationBuilder dropIndex(String indexName) { - if (PrimaryKeyDefinition.PRIMARY_KEY_NAME.equals(indexName)) { - throw new IllegalArgumentException("Can't drop primary key index: name=" + indexName); - } - - return this; - } - - /** {@inheritDoc} */ - @Override - public void apply() { - - } -} diff --git a/modules/schema/src/main/java/org/apache/ignite/schema/package-info.java b/modules/schema/src/main/java/org/apache/ignite/schema/package-info.java deleted file mode 100644 index a039260186..0000000000 --- a/modules/schema/src/main/java/org/apache/ignite/schema/package-info.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Contains public schema definition helpers. - */ - -package org.apache.ignite.schema; diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaConfigurationTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaConfigurationTest.java index 2337f53ec3..604ca9cf65 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaConfigurationTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaConfigurationTest.java @@ -22,11 +22,10 @@ import static org.hamcrest.Matchers.containsString; import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Map; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.TableDefinitionBuilder; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.SchemaObject; -import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; import org.junit.jupiter.api.Test; /** @@ -79,52 +78,6 @@ public class SchemaConfigurationTest { .build(); } - /** - * TestSchemaModification. - * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 - */ - @Test - public void testSchemaModification() { - final TableDefinition table = SchemaBuilders.tableBuilder("PUBLIC", "table1") - .columns( - // Declaring columns in user order. - SchemaBuilders.column("id", ColumnType.INT64).build(), - SchemaBuilders.column("name", ColumnType.string()).build() - ) - .withPrimaryKey("id") - .build(); - - table.toBuilder() - .addColumn( - SchemaBuilders.column("firstName", ColumnType.string()) - .build() - ) - .addKeyColumn( - // It looks safe to add non-affinity column to key. - SchemaBuilders.column("subId", ColumnType.string()) - .build() - ) - - .alterColumn("firstName") - .withNewName("lastName") - .withNewDefault("ivanov") - .asNullable() - .convertTo(ColumnType.stringOf(100)) - .done() - - .dropColumn("name") // Key column can't be dropped. - - .addIndex( - SchemaBuilders.sortedIndex("sortedIdx") - .addIndexColumn("subId").done() - .withHints(Map.of("INLINE_SIZE", "73")) - .build() - ) - - .dropIndex("hash_idx") - .apply(); - } - /** * Check invalid colocation columns configuration: * - not PK columns; diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/ColumnDefinitionBuilderTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/ColumnDefinitionBuilderTest.java index 1c76ca7701..70d8587ff9 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/ColumnDefinitionBuilderTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/ColumnDefinitionBuilderTest.java @@ -21,12 +21,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import java.time.LocalDate; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.ColumnDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.DefaultValueDefinition.ConstantValue; import org.apache.ignite.schema.definition.DefaultValueDefinition.DefaultValueType; -import org.apache.ignite.schema.definition.builder.ColumnDefinitionBuilder; import org.junit.jupiter.api.Test; /** diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/HashIndexDefinitionBuilderTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/HashIndexDefinitionBuilderTest.java index af1575ae3b..8983556865 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/HashIndexDefinitionBuilderTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/HashIndexDefinitionBuilderTest.java @@ -21,8 +21,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Collections; -import org.apache.ignite.schema.SchemaBuilders; -import org.apache.ignite.schema.definition.builder.HashIndexDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.HashIndexDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.index.HashIndexDefinition; import org.junit.jupiter.api.Test; diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyDefinitionDefinitionBuilderTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyDefinitionDefinitionBuilderTest.java index d47eb66d5b..795b45adb2 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyDefinitionDefinitionBuilderTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyDefinitionDefinitionBuilderTest.java @@ -23,9 +23,9 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.PrimaryKeyDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.schema.definition.PrimaryKeyDefinition; -import org.apache.ignite.schema.definition.builder.PrimaryKeyDefinitionBuilder; import org.junit.jupiter.api.Test; /** diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java index c98059e15d..b07b3c3d86 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java @@ -20,8 +20,8 @@ package org.apache.ignite.internal.schema.builder; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import org.apache.ignite.schema.SchemaBuilders; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SortedIndexDefinitionBuilder; import org.apache.ignite.schema.definition.index.SortOrder; import org.apache.ignite.schema.definition.index.SortedIndexDefinition; import org.junit.jupiter.api.Test; diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/TableDefinitionBuilderTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/TableDefinitionBuilderTest.java index 2bf212ad12..38fde35dd6 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/TableDefinitionBuilderTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/TableDefinitionBuilderTest.java @@ -19,10 +19,10 @@ package org.apache.ignite.internal.schema.builder; import static org.junit.jupiter.api.Assertions.assertEquals; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.TableDefinitionBuilder; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; import org.junit.jupiter.api.Test; /** diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java index e25e0eb531..8b9e5b919a 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java @@ -48,16 +48,16 @@ import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfiguratio import org.apache.ignite.internal.configuration.ConfigurationRegistry; import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage; import org.apache.ignite.internal.schema.definition.ColumnDefinitionImpl; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.HashIndexDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SortedIndexDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.TableDefinitionBuilder; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.DefaultValueDefinition; import org.apache.ignite.schema.definition.DefaultValueDefinition.ConstantValue; import org.apache.ignite.schema.definition.DefaultValueDefinition.FunctionCall; import org.apache.ignite.schema.definition.DefaultValueGenerators; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.HashIndexDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; import org.apache.ignite.schema.definition.index.HashIndexDefinition; import org.apache.ignite.schema.definition.index.IndexColumnDefinition; import org.apache.ignite.schema.definition.index.IndexDefinition; diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDescriptorConverterTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDescriptorConverterTest.java index e96d1d5eb5..22ada06e48 100644 --- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDescriptorConverterTest.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDescriptorConverterTest.java @@ -34,14 +34,14 @@ import org.apache.ignite.internal.schema.DefaultValueProvider.Type; import org.apache.ignite.internal.schema.NativeTypeSpec; import org.apache.ignite.internal.schema.SchemaDescriptor; import org.apache.ignite.internal.schema.definition.ColumnDefinitionImpl; -import org.apache.ignite.schema.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.ColumnDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.TableDefinitionBuilder; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.DefaultValueDefinition; import org.apache.ignite.schema.definition.DefaultValueGenerators; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.ColumnDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/AbstractIndexBuilder.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/AbstractIndexBuilder.java similarity index 94% rename from modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/AbstractIndexBuilder.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/AbstractIndexBuilder.java index b73390d3be..1bb7a0bd1a 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/AbstractIndexBuilder.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/AbstractIndexBuilder.java @@ -15,12 +15,11 @@ * limitations under the License. */ -package org.apache.ignite.internal.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Collections; import java.util.Map; import org.apache.ignite.internal.util.IgniteObjectName; -import org.apache.ignite.schema.definition.builder.SchemaObjectBuilder; /** * Index base class. diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/ColumnDefinitionBuilder.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilder.java similarity index 96% rename from modules/api/src/main/java/org/apache/ignite/schema/definition/builder/ColumnDefinitionBuilder.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilder.java index 9f06c28479..d07f2b61c3 100644 --- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/ColumnDefinitionBuilder.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Map; import org.apache.ignite.schema.definition.ColumnDefinition; diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/ColumnDefinitionBuilderImpl.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilderImpl.java similarity index 92% rename from modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/ColumnDefinitionBuilderImpl.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilderImpl.java index f5af66e271..b620eb05c9 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/ColumnDefinitionBuilderImpl.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/ColumnDefinitionBuilderImpl.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.internal.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Map; import org.apache.ignite.internal.schema.definition.ColumnDefinitionImpl; @@ -23,13 +23,12 @@ import org.apache.ignite.internal.util.IgniteObjectName; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.DefaultValueDefinition; -import org.apache.ignite.schema.definition.builder.ColumnDefinitionBuilder; import org.jetbrains.annotations.Nullable; /** * Column builder. */ -public class ColumnDefinitionBuilderImpl implements ColumnDefinitionBuilder { +class ColumnDefinitionBuilderImpl implements ColumnDefinitionBuilder { /** Column name. */ private final String colName; diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/HashIndexDefinitionBuilder.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilder.java similarity index 96% rename from modules/api/src/main/java/org/apache/ignite/schema/definition/builder/HashIndexDefinitionBuilder.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilder.java index ae84169c51..244d632b4a 100644 --- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/HashIndexDefinitionBuilder.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.List; import java.util.Map; diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/HashIndexDefinitionBuilderImpl.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilderImpl.java similarity index 89% rename from modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/HashIndexDefinitionBuilderImpl.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilderImpl.java index 13225428c1..aab1a58d9e 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/HashIndexDefinitionBuilderImpl.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/HashIndexDefinitionBuilderImpl.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.internal.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Arrays; import java.util.List; @@ -23,13 +23,12 @@ import java.util.Map; import java.util.stream.Collectors; import org.apache.ignite.internal.schema.definition.index.HashIndexDefinitionImpl; import org.apache.ignite.internal.util.IgniteObjectName; -import org.apache.ignite.schema.definition.builder.HashIndexDefinitionBuilder; import org.apache.ignite.schema.definition.index.HashIndexDefinition; /** * Hash index builder. */ -public class HashIndexDefinitionBuilderImpl extends AbstractIndexBuilder implements HashIndexDefinitionBuilder { +class HashIndexDefinitionBuilderImpl extends AbstractIndexBuilder implements HashIndexDefinitionBuilder { /** Index columns. */ private List<String> columns; diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PrimaryKeyDefinitionBuilder.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilder.java similarity index 97% rename from modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PrimaryKeyDefinitionBuilder.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilder.java index ff4ab00613..d7a59ecf2d 100644 --- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PrimaryKeyDefinitionBuilder.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.List; import org.apache.ignite.schema.definition.PrimaryKeyDefinition; diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/PrimaryKeyDefinitionBuilderImpl.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilderImpl.java similarity index 91% rename from modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/PrimaryKeyDefinitionBuilderImpl.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilderImpl.java index 760cefe08b..f4e81a8103 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/PrimaryKeyDefinitionBuilderImpl.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/PrimaryKeyDefinitionBuilderImpl.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.internal.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Arrays; import java.util.List; @@ -27,13 +27,11 @@ import org.apache.ignite.internal.tostring.IgniteToStringInclude; import org.apache.ignite.internal.util.CollectionUtils; import org.apache.ignite.internal.util.IgniteObjectName; import org.apache.ignite.schema.definition.PrimaryKeyDefinition; -import org.apache.ignite.schema.definition.builder.PrimaryKeyDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.SchemaObjectBuilder; /** * Primary key builder. */ -public class PrimaryKeyDefinitionBuilderImpl implements SchemaObjectBuilder, PrimaryKeyDefinitionBuilder { +class PrimaryKeyDefinitionBuilderImpl implements SchemaObjectBuilder, PrimaryKeyDefinitionBuilder { /** Index columns. */ @IgniteToStringInclude private List<String> columns; diff --git a/modules/schema/src/main/java/org/apache/ignite/schema/SchemaBuilders.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaBuilders.java similarity index 76% rename from modules/schema/src/main/java/org/apache/ignite/schema/SchemaBuilders.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaBuilders.java index 570460e191..01b861d73b 100644 --- a/modules/schema/src/main/java/org/apache/ignite/schema/SchemaBuilders.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaBuilders.java @@ -15,20 +15,10 @@ * limitations under the License. */ -package org.apache.ignite.schema; +package org.apache.ignite.internal.schema.testutils.builder; -import org.apache.ignite.internal.schema.definition.builder.ColumnDefinitionBuilderImpl; -import org.apache.ignite.internal.schema.definition.builder.HashIndexDefinitionBuilderImpl; -import org.apache.ignite.internal.schema.definition.builder.PrimaryKeyDefinitionBuilderImpl; -import org.apache.ignite.internal.schema.definition.builder.SortedIndexDefinitionBuilderImpl; -import org.apache.ignite.internal.schema.definition.builder.TableDefinitionBuilderImpl; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.ColumnDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.HashIndexDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.PrimaryKeyDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; /** * Schema builder helper. diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SchemaObjectBuilder.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java similarity index 95% rename from modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SchemaObjectBuilder.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java index cc923b9af7..31e923d641 100644 --- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SchemaObjectBuilder.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SchemaObjectBuilder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Map; diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SortedIndexDefinitionBuilder.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilder.java similarity index 97% rename from modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SortedIndexDefinitionBuilder.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilder.java index ed425a5a1b..655f1851c7 100644 --- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SortedIndexDefinitionBuilder.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Map; import org.apache.ignite.schema.definition.index.SortedIndexDefinition; diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/SortedIndexDefinitionBuilderImpl.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilderImpl.java similarity index 88% rename from modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/SortedIndexDefinitionBuilderImpl.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilderImpl.java index 8389e0a43e..cab88ae7db 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/SortedIndexDefinitionBuilderImpl.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/SortedIndexDefinitionBuilderImpl.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.internal.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.LinkedHashMap; import java.util.List; @@ -24,7 +24,6 @@ import java.util.stream.Collectors; import org.apache.ignite.internal.schema.definition.index.SortedIndexColumnDefinitionImpl; import org.apache.ignite.internal.schema.definition.index.SortedIndexDefinitionImpl; import org.apache.ignite.internal.util.IgniteObjectName; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder; import org.apache.ignite.schema.definition.index.SortOrder; import org.apache.ignite.schema.definition.index.SortedIndexColumnDefinition; import org.apache.ignite.schema.definition.index.SortedIndexDefinition; @@ -32,8 +31,8 @@ import org.apache.ignite.schema.definition.index.SortedIndexDefinition; /** * Sorted index builder. */ -public class SortedIndexDefinitionBuilderImpl extends AbstractIndexBuilder implements SortedIndexDefinitionBuilder { - /** Index columns. */ +class SortedIndexDefinitionBuilderImpl extends AbstractIndexBuilder implements SortedIndexDefinitionBuilder { + /** Index columns ordered map. */ protected final Map<String, SortedIndexColumnBuilderImpl> cols = new LinkedHashMap<>(); /** @@ -61,7 +60,6 @@ public class SortedIndexDefinitionBuilderImpl extends AbstractIndexBuilder imple /** * Add index column. - * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 * * @param idxBuilder Index builder. */ @@ -83,7 +81,7 @@ public class SortedIndexDefinitionBuilderImpl extends AbstractIndexBuilder imple * Get index columns. */ public List<SortedIndexColumnDefinition> columns() { - return cols.values().stream().map(c -> new SortedIndexColumnDefinitionImpl(c.name, c.asc)).collect(Collectors.toList()); + return cols.values().stream().map(c -> new SortedIndexColumnDefinitionImpl(c.name, c.order)).collect(Collectors.toList()); } /** {@inheritDoc} */ @@ -105,7 +103,7 @@ public class SortedIndexDefinitionBuilderImpl extends AbstractIndexBuilder imple protected String name; /** Index order flag. */ - protected SortOrder asc = SortOrder.ASC; + private SortOrder order = SortOrder.ASC; /** * Constructor. @@ -119,7 +117,7 @@ public class SortedIndexDefinitionBuilderImpl extends AbstractIndexBuilder imple /** {@inheritDoc} */ @Override public SortedIndexColumnBuilderImpl desc() { - asc = SortOrder.DESC; + order = SortOrder.DESC; return this; } @@ -127,7 +125,7 @@ public class SortedIndexDefinitionBuilderImpl extends AbstractIndexBuilder imple /** {@inheritDoc} */ @Override public SortedIndexColumnBuilderImpl asc() { - asc = SortOrder.ASC; + order = SortOrder.ASC; return this; } diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/TableDefinitionBuilder.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilder.java similarity index 97% rename from modules/api/src/main/java/org/apache/ignite/schema/definition/builder/TableDefinitionBuilder.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilder.java index 7d72554e2b..a408cf3973 100644 --- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/TableDefinitionBuilder.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.ignite.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.List; import java.util.Map; diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/TableDefinitionBuilderImpl.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilderImpl.java similarity index 62% rename from modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/TableDefinitionBuilderImpl.java rename to modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilderImpl.java index 44575c6bfc..8a20dc66cf 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/TableDefinitionBuilderImpl.java +++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/testutils/builder/TableDefinitionBuilderImpl.java @@ -15,32 +15,26 @@ * limitations under the License. */ -package org.apache.ignite.internal.schema.definition.builder; +package org.apache.ignite.internal.schema.testutils.builder; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; +import org.apache.ignite.internal.schema.definition.SchemaValidationUtils; import org.apache.ignite.internal.schema.definition.TableDefinitionImpl; import org.apache.ignite.internal.util.IgniteObjectName; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.PrimaryKeyDefinition; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.TableDefinitionBuilder; -import org.apache.ignite.schema.definition.index.ColumnarIndexDefinition; -import org.apache.ignite.schema.definition.index.IndexColumnDefinition; import org.apache.ignite.schema.definition.index.IndexDefinition; /** * Table builder. */ -public class TableDefinitionBuilderImpl implements TableDefinitionBuilder { +class TableDefinitionBuilderImpl implements TableDefinitionBuilder { /** Schema name. */ private final String schemaName; @@ -60,7 +54,7 @@ public class TableDefinitionBuilderImpl implements TableDefinitionBuilder { * Constructor. * * @param schemaName Schema name. - * @param tableName Table name. + * @param tableName Table name. */ public TableDefinitionBuilderImpl(String schemaName, String tableName) { this.schemaName = IgniteObjectName.parse(schemaName); @@ -126,8 +120,8 @@ public class TableDefinitionBuilderImpl implements TableDefinitionBuilder { assert primaryKeyDefinition != null : "Primary key index must be configured."; assert columns.size() > primaryKeyDefinition.columns().size() : "Key or/and value columns must be defined."; - validatePrimaryKey(primaryKeyDefinition.columns(), columns); - validateIndices(indices.values(), columns.values(), primaryKeyDefinition.colocationColumns()); + SchemaValidationUtils.validatePrimaryKey(primaryKeyDefinition.columns(), columns); + SchemaValidationUtils.validateIndices(indices.values(), columns.values(), primaryKeyDefinition.colocationColumns()); return new TableDefinitionImpl( schemaName, @@ -137,48 +131,4 @@ public class TableDefinitionBuilderImpl implements TableDefinitionBuilder { Collections.unmodifiableMap(indices) ); } - - /** - * Validate primary key. - * - * @param pkColNames Primary key columns. - * @param cols Table columns. - */ - private static void validatePrimaryKey(Set<String> pkColNames, final Map<String, ColumnDefinition> cols) { - pkColNames.stream() - .filter(pkCol -> cols.get(pkCol).nullable()) - .findAny() - .ifPresent((pkCol) -> { - throw new IllegalStateException("Primary key cannot contain nullable column [col=" + pkCol + "]."); - }); - } - - /** - * Validate indices. - * - * @param indices Table indices. - * @param cols Table columns. - * @param colocationColNames Colocation columns names. - */ - public static void validateIndices( - Collection<IndexDefinition> indices, - Collection<ColumnDefinition> cols, - List<String> colocationColNames) { - Set<String> colNames = cols.stream().map(ColumnDefinition::name).collect(Collectors.toSet()); - - for (IndexDefinition idx : indices) { - assert idx instanceof ColumnarIndexDefinition : "Only columnar indices are supported."; - // Note: E.g. functional index is not columnar index as it index an expression result only. - - ColumnarIndexDefinition idx0 = (ColumnarIndexDefinition) idx; - - if (!idx0.columns().stream().map(IndexColumnDefinition::name).allMatch(colNames::contains)) { - throw new IllegalStateException("Index column must exist in the schema."); - } - - if (idx0.unique() && !(idx0.columns().stream().map(IndexColumnDefinition::name).allMatch(colocationColNames::contains))) { - throw new IllegalStateException("Unique index must contains all colocation columns."); - } - } - } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandler.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandler.java index 1f8cbd52bd..6ad4badcfd 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandler.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandler.java @@ -36,9 +36,11 @@ import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultChange; import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultChange; import org.apache.ignite.configuration.schemas.table.NullValueDefaultChange; import org.apache.ignite.configuration.schemas.table.PrimaryKeyView; +import org.apache.ignite.configuration.schemas.table.SortedIndexChange; import org.apache.ignite.configuration.schemas.table.TableChange; +import org.apache.ignite.configuration.schemas.table.TableIndexChange; import org.apache.ignite.internal.index.IndexManager; -import org.apache.ignite.internal.schema.definition.TableDefinitionImpl; +import org.apache.ignite.internal.schema.SchemaUtils; import org.apache.ignite.internal.sql.engine.prepare.ddl.AbstractTableDdlCommand; import org.apache.ignite.internal.sql.engine.prepare.ddl.AlterTableAddCommand; import org.apache.ignite.internal.sql.engine.prepare.ddl.AlterTableDropCommand; @@ -63,9 +65,6 @@ import org.apache.ignite.lang.IgniteInternalCheckedException; import org.apache.ignite.lang.IgniteStringFormatter; import org.apache.ignite.lang.TableAlreadyExistsException; import org.apache.ignite.lang.TableNotFoundException; -import org.apache.ignite.schema.SchemaBuilders; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder.SortedIndexColumnBuilder; /** DDL commands handler. */ public class DdlCommandHandler { @@ -153,7 +152,7 @@ public class DdlCommandHandler { } }; - String fullName = TableDefinitionImpl.canonicalName( + String fullName = SchemaUtils.canonicalName( IgniteObjectName.quote(cmd.schemaName()), IgniteObjectName.quote(cmd.tableName()) ); @@ -173,7 +172,7 @@ public class DdlCommandHandler { /** Handles drop table command. */ private boolean handleDropTable(DropTableCommand cmd) { - String fullName = TableDefinitionImpl.canonicalName( + String fullName = SchemaUtils.canonicalName( IgniteObjectName.quote(cmd.schemaName()), IgniteObjectName.quote(cmd.tableName()) ); @@ -196,7 +195,7 @@ public class DdlCommandHandler { return false; } - String fullName = TableDefinitionImpl.canonicalName( + String fullName = SchemaUtils.canonicalName( IgniteObjectName.quote(cmd.schemaName()), IgniteObjectName.quote(cmd.tableName()) ); @@ -218,7 +217,7 @@ public class DdlCommandHandler { return false; } - String fullName = TableDefinitionImpl.canonicalName( + String fullName = SchemaUtils.canonicalName( IgniteObjectName.quote(cmd.schemaName()), IgniteObjectName.quote(cmd.tableName()) ); @@ -236,26 +235,17 @@ public class DdlCommandHandler { /** Handles create index command. */ private boolean handleCreateIndex(CreateIndexCommand cmd) { - // Only sorted idx for now. - //TODO: https://issues.apache.org/jira/browse/IGNITE-17563 Pass null ordering for columns. - SortedIndexDefinitionBuilder idx = SchemaBuilders.sortedIndex(cmd.indexName()); - - for (Pair<String, Boolean> idxInfo : cmd.columns()) { - SortedIndexColumnBuilder idx0 = idx.addIndexColumn(idxInfo.getFirst()); - - if (idxInfo.getSecond()) { - idx0.desc(); - } - - idx0.done(); - } + Consumer<TableIndexChange> indexChanger = tableIndexChange -> { + // Only sorted idx for now. + createSortedIndexInternal(cmd, tableIndexChange.convert(SortedIndexChange.class)); + }; return indexManager.createIndex( cmd.schemaName(), cmd.indexName(), cmd.tableName(), !cmd.ifIndexNotExists(), - tableIndexChange -> convert(idx.build(), tableIndexChange)); + indexChanger); } /** Handles drop index command. */ @@ -263,6 +253,21 @@ public class DdlCommandHandler { return indexManager.dropIndex(cmd.schemaName(), cmd.indexName(), !cmd.ifNotExists()); } + /** + * Creates sorted index. + * + * @param cmd Create index command. + * @param indexChange Index configuration changer. + */ + private void createSortedIndexInternal(CreateIndexCommand cmd, SortedIndexChange indexChange) { + indexChange.changeColumns(colsInit -> { + for (Pair<String, Boolean> col : cmd.columns()) { + //TODO: https://issues.apache.org/jira/browse/IGNITE-17563 Pass null ordering for columns. + colsInit.create(col.getFirst(), colInit -> colInit.changeAsc(col.getSecond())); + } + }); + } + /** * Adds a column according to the column definition. * diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java index 64ac10fbb1..5efaee4e95 100644 --- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java +++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java @@ -40,11 +40,11 @@ import org.apache.ignite.internal.schema.BinaryTupleSchema; import org.apache.ignite.internal.schema.BinaryTupleSchema.Element; import org.apache.ignite.internal.schema.NativeTypes; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.storage.engine.MvTableStorage; import org.apache.ignite.internal.storage.index.HashIndexStorage; import org.apache.ignite.internal.storage.index.IndexRowImpl; import org.apache.ignite.internal.util.Cursor; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.junit.jupiter.api.AfterEach; diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java index 0e363f0a68..6e33696ee5 100644 --- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java +++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractHashIndexStorageTest.java @@ -19,9 +19,9 @@ package org.apache.ignite.internal.storage.index; import static java.util.stream.Collectors.toList; import static org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter.convert; +import static org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders.column; +import static org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders.tableBuilder; import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully; -import static org.apache.ignite.schema.SchemaBuilders.column; -import static org.apache.ignite.schema.SchemaBuilders.tableBuilder; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; @@ -33,12 +33,12 @@ import java.util.Collection; import java.util.concurrent.CompletableFuture; import org.apache.ignite.configuration.schemas.table.TableConfiguration; import org.apache.ignite.configuration.schemas.table.TableIndexView; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.storage.MvPartitionStorage; import org.apache.ignite.internal.storage.RowId; import org.apache.ignite.internal.storage.engine.MvTableStorage; import org.apache.ignite.internal.storage.index.impl.BinaryTupleRowSerializer; import org.apache.ignite.internal.util.Cursor; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractSortedIndexStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractSortedIndexStorageTest.java index dfd0353e26..3be08e016d 100644 --- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractSortedIndexStorageTest.java +++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/AbstractSortedIndexStorageTest.java @@ -20,6 +20,8 @@ package org.apache.ignite.internal.storage.index; import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toUnmodifiableList; import static org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter.convert; +import static org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders.column; +import static org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders.tableBuilder; import static org.apache.ignite.internal.storage.index.SortedIndexStorage.BACKWARDS; import static org.apache.ignite.internal.storage.index.SortedIndexStorage.FORWARD; import static org.apache.ignite.internal.storage.index.SortedIndexStorage.GREATER; @@ -29,8 +31,6 @@ import static org.apache.ignite.internal.storage.index.SortedIndexStorage.LESS_O import static org.apache.ignite.internal.testframework.IgniteTestUtils.randomString; import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willBe; import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully; -import static org.apache.ignite.schema.SchemaBuilders.column; -import static org.apache.ignite.schema.SchemaBuilders.tableBuilder; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; @@ -65,6 +65,9 @@ import org.apache.ignite.internal.logger.IgniteLogger; import org.apache.ignite.internal.logger.Loggers; import org.apache.ignite.internal.schema.BinaryTuple; import org.apache.ignite.internal.schema.SchemaTestUtils; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; +import org.apache.ignite.internal.schema.testutils.builder.SortedIndexDefinitionBuilder; +import org.apache.ignite.internal.schema.testutils.builder.SortedIndexDefinitionBuilder.SortedIndexColumnBuilder; import org.apache.ignite.internal.storage.RowId; import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine; import org.apache.ignite.internal.storage.chm.schema.TestConcurrentHashMapDataStorageConfigurationSchema; @@ -73,12 +76,9 @@ import org.apache.ignite.internal.storage.index.impl.BinaryTupleRowSerializer; import org.apache.ignite.internal.storage.index.impl.TestIndexRow; import org.apache.ignite.internal.testframework.VariableSource; import org.apache.ignite.internal.util.Cursor; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnDefinition; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder; -import org.apache.ignite.schema.definition.builder.SortedIndexDefinitionBuilder.SortedIndexColumnBuilder; import org.apache.ignite.schema.definition.index.ColumnarIndexDefinition; import org.apache.ignite.schema.definition.index.SortedIndexDefinition; import org.intellij.lang.annotations.MagicConstant; diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java index 1f111133a8..9e946186fa 100644 --- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java +++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java @@ -96,6 +96,7 @@ import org.apache.ignite.internal.schema.SchemaManager; import org.apache.ignite.internal.schema.SchemaUtils; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; import org.apache.ignite.internal.schema.marshaller.schema.SchemaSerializerImpl; +import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.storage.DataStorageManager; import org.apache.ignite.internal.storage.DataStorageModules; import org.apache.ignite.internal.storage.rocksdb.RocksDbDataStorageModule; @@ -124,7 +125,6 @@ import org.apache.ignite.raft.jraft.entity.PeerId; import org.apache.ignite.raft.jraft.error.RaftError; import org.apache.ignite.raft.jraft.rpc.CliRequests; import org.apache.ignite.raft.jraft.rpc.impl.RaftGroupServiceImpl; -import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; import org.apache.ignite.schema.definition.TableDefinition; import org.apache.ignite.table.Table;