This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a commit to branch ignite-24328
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit cd41a0033b932583c917f9c7268839bbde496cc0
Author: amashenkov <[email protected]>
AuthorDate: Thu Feb 6 23:24:26 2025 +0300

    wip
---
 .../commands/AlterTableAddColumnCommand.java       | 16 ++++++----
 .../commands/AlterTableAlterColumnCommand.java     |  7 +++--
 .../commands/AlterTableDropColumnCommand.java      |  7 +++--
 .../internal/catalog/commands/CatalogUtils.java    | 35 +++++++++++++++-------
 .../catalog/commands/DropIndexCommand.java         | 11 +++++--
 .../catalog/commands/DropTableCommand.java         |  7 +++--
 .../catalog/commands/RenameIndexCommand.java       |  7 +++--
 .../catalog/commands/RenameTableCommand.java       |  7 +++--
 .../commands/AbstractCommandValidationTest.java    |  1 +
 .../AlterTableAddColumnCommandValidationTest.java  |  4 +++
 ...AlterTableAlterColumnCommandValidationTest.java |  5 ++++
 .../AlterTableDropColumnCommandValidationTest.java |  5 ++++
 .../CreateAbstractIndexCommandValidationTest.java  |  2 --
 .../commands/DropIndexCommandValidationTest.java   |  9 ++++++
 .../commands/DropTableCommandValidationTest.java   |  8 +++++
 .../commands/RenameIndexCommandValidationTest.java |  9 +++---
 .../commands/RenameTableCommandValidationTest.java |  9 +++---
 17 files changed, 111 insertions(+), 38 deletions(-)

diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommand.java
index 49ac7dc7dc9..1a9dc3c3e15 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommand.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommand.java
@@ -17,8 +17,11 @@
 
 package org.apache.ignite.internal.catalog.commands;
 
+import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.ensureNonFunctionalDefault;
+import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.ensureTypeCanBeStored;
 import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.fromParams;
-import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.schemaOrThrow;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.schema;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.table;
 import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
 import static org.apache.ignite.internal.util.CollectionUtils.copyOrNull;
 import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty;
@@ -73,9 +76,12 @@ public class AlterTableAddColumnCommand extends 
AbstractTableCommand {
     @Override
     public List<UpdateEntry> get(UpdateContext updateContext) {
         Catalog catalog = updateContext.catalog();
-        CatalogSchemaDescriptor schema = schemaOrThrow(catalog, schemaName);
+        CatalogSchemaDescriptor schema = schema(catalog, schemaName, 
!ifTableExists);
+        if (schema == null) {
+            return List.of();
+        }
 
-        CatalogTableDescriptor table = CatalogUtils.table(schema, tableName, 
!ifTableExists);
+        CatalogTableDescriptor table = table(schema, tableName, 
!ifTableExists);
         if (table == null) {
             return List.of();
         }
@@ -109,8 +115,8 @@ public class AlterTableAddColumnCommand extends 
AbstractTableCommand {
                 throw new CatalogValidationException(format("Column with name 
'{}' specified more than once", column.name()));
             }
 
-            CatalogUtils.ensureTypeCanBeStored(column.name(), column.type());
-            CatalogUtils.ensureNonFunctionalDefault(column.name(), 
column.defaultValueDefinition());
+            ensureTypeCanBeStored(column.name(), column.type());
+            ensureNonFunctionalDefault(column.name(), 
column.defaultValueDefinition());
         }
     }
 
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommand.java
index 661e08563d3..bccadb81caf 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommand.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommand.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.catalog.commands;
 
 import static 
org.apache.ignite.internal.catalog.CatalogParamsValidationUtils.validateIdentifier;
-import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.schemaOrThrow;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.schema;
 import static org.apache.ignite.internal.catalog.commands.CatalogUtils.table;
 import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
 
@@ -91,7 +91,10 @@ public class AlterTableAlterColumnCommand extends 
AbstractTableCommand {
     @Override
     public List<UpdateEntry> get(UpdateContext updateContext) {
         Catalog catalog = updateContext.catalog();
-        CatalogSchemaDescriptor schema = schemaOrThrow(catalog, schemaName);
+        CatalogSchemaDescriptor schema = schema(catalog, schemaName, 
!ifTableExists);
+        if (schema == null) {
+            return List.of();
+        }
 
         CatalogTableDescriptor table = table(schema, tableName, 
!ifTableExists);
         if (table == null) {
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommand.java
index 6287a7f070f..d746461fc92 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommand.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommand.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.catalog.commands;
 
 import static 
org.apache.ignite.internal.catalog.CatalogParamsValidationUtils.validateIdentifier;
-import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.schemaOrThrow;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.schema;
 import static org.apache.ignite.internal.catalog.commands.CatalogUtils.table;
 import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
 import static org.apache.ignite.internal.util.CollectionUtils.copyOrNull;
@@ -78,7 +78,10 @@ public class AlterTableDropColumnCommand extends 
AbstractTableCommand {
     @Override
     public List<UpdateEntry> get(UpdateContext updateContext) {
         Catalog catalog = updateContext.catalog();
-        CatalogSchemaDescriptor schema = schemaOrThrow(catalog, schemaName);
+        CatalogSchemaDescriptor schema = schema(catalog, schemaName, 
!ifTableExists);
+        if (schema == null) {
+            return List.of();
+        }
 
         CatalogTableDescriptor table = table(schema, tableName, 
!ifTableExists);
         if (table == null) {
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java
index 45655984974..68a7b283882 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java
@@ -387,15 +387,7 @@ public class CatalogUtils {
      * @throws CatalogValidationException If schema with given name is not 
exists.
      */
     public static CatalogSchemaDescriptor schemaOrThrow(Catalog catalog, 
String name) throws CatalogValidationException {
-        name = Objects.requireNonNull(name, "schemaName");
-
-        CatalogSchemaDescriptor schema = catalog.schema(name);
-
-        if (schema == null) {
-            throw new CatalogValidationException(format("Schema with name '{}' 
not found", name));
-        }
-
-        return schema;
+        return schema(catalog, name, true);
     }
 
     /**
@@ -403,7 +395,7 @@ public class CatalogUtils {
      *
      * @param catalog Catalog to look up the schema in.
      * @param schemaId Schema ID.
-     * @throws CatalogValidationException If schema does not exist.
+     * @throws CatalogValidationException If schema with given name is not 
exists and flag shouldThrowIfNotExists set to {@code true}.
      */
     public static CatalogSchemaDescriptor schemaOrThrow(Catalog catalog, int 
schemaId) throws CatalogValidationException {
         CatalogSchemaDescriptor schema = catalog.schema(schemaId);
@@ -415,6 +407,29 @@ public class CatalogUtils {
         return schema;
     }
 
+    /**
+     * Returns schema with given name, or throws {@link 
CatalogValidationException} if schema with given name not exists.
+     *
+     * @param catalog Catalog to look up schema in.
+     * @param name Name of the schema of interest.
+     * @param shouldThrowIfNotExists Flag indicated should be thrown the 
{@code TableNotFoundValidationException} for absent table or just
+     *         return {@code null}.
+     * @return Schema with given name. Never null.
+     * @throws CatalogValidationException If schema with given name is not 
exists.
+     */
+    public static CatalogSchemaDescriptor schema(Catalog catalog, String name, 
boolean shouldThrowIfNotExists)
+            throws CatalogValidationException {
+        name = Objects.requireNonNull(name, "schemaName");
+
+        CatalogSchemaDescriptor schema = catalog.schema(name);
+
+        if (schema == null && shouldThrowIfNotExists) {
+            throw new CatalogValidationException(format("Schema with name '{}' 
not found", name));
+        }
+
+        return schema;
+    }
+
     /**
      * Returns table with given name.
      *
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropIndexCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropIndexCommand.java
index 087dd1e8cd6..e16e442fa04 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropIndexCommand.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropIndexCommand.java
@@ -17,7 +17,8 @@
 
 package org.apache.ignite.internal.catalog.commands;
 
-import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.schemaOrThrow;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.index;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.schema;
 import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
 
 import java.util.List;
@@ -73,9 +74,13 @@ public class DropIndexCommand extends AbstractIndexCommand {
     @Override
     public List<UpdateEntry> get(UpdateContext updateContext) {
         Catalog catalog = updateContext.catalog();
-        CatalogSchemaDescriptor schema = schemaOrThrow(catalog, schemaName);
 
-        CatalogIndexDescriptor index = CatalogUtils.index(schema, indexName, 
!ifExists);
+        CatalogSchemaDescriptor schema = schema(catalog, schemaName, 
!ifExists);
+        if (schema == null) {
+            return List.of();
+        }
+
+        CatalogIndexDescriptor index = index(schema, indexName, !ifExists);
         if (index == null) {
             return List.of();
         }
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropTableCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropTableCommand.java
index 95fca556138..ce272cf2938 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropTableCommand.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/DropTableCommand.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.catalog.commands;
 
-import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.schemaOrThrow;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.schema;
 import static org.apache.ignite.internal.catalog.commands.CatalogUtils.table;
 
 import java.util.ArrayList;
@@ -49,7 +49,10 @@ public class DropTableCommand extends AbstractTableCommand {
     @Override
     public List<UpdateEntry> get(UpdateContext updateContext) {
         Catalog catalog = updateContext.catalog();
-        CatalogSchemaDescriptor schema = schemaOrThrow(catalog, schemaName);
+        CatalogSchemaDescriptor schema = schema(catalog, schemaName, 
!ifTableExists);
+        if (schema == null) {
+            return List.of();
+        }
 
         CatalogTableDescriptor table = table(schema, tableName, 
!ifTableExists);
         if (table == null) {
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommand.java
index 24710a53cc0..91dfaa2914a 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommand.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommand.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.catalog.commands;
 import static 
org.apache.ignite.internal.catalog.CatalogParamsValidationUtils.ensureNoTableIndexOrSysViewExistsWithGivenName;
 import static 
org.apache.ignite.internal.catalog.CatalogParamsValidationUtils.validateIdentifier;
 import static org.apache.ignite.internal.catalog.commands.CatalogUtils.index;
-import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.schemaOrThrow;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.schema;
 
 import java.util.List;
 import org.apache.ignite.internal.catalog.Catalog;
@@ -58,7 +58,10 @@ public class RenameIndexCommand extends AbstractIndexCommand 
{
     @Override
     public List<UpdateEntry> get(UpdateContext updateContext) {
         Catalog catalog = updateContext.catalog();
-        CatalogSchemaDescriptor schema = schemaOrThrow(catalog, schemaName);
+        CatalogSchemaDescriptor schema = schema(catalog, schemaName, 
!ifIndexExists);
+        if (schema == null) {
+            return List.of();
+        }
 
         CatalogIndexDescriptor index = index(schema, indexName, 
!ifIndexExists);
         if (index == null) {
diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameTableCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameTableCommand.java
index bdd77e0f13a..df16a423a9d 100644
--- 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameTableCommand.java
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/RenameTableCommand.java
@@ -21,7 +21,7 @@ import static 
org.apache.ignite.internal.catalog.CatalogParamsValidationUtils.en
 import static 
org.apache.ignite.internal.catalog.CatalogParamsValidationUtils.validateIdentifier;
 import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.indexOrThrow;
 import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.pkIndexName;
-import static 
org.apache.ignite.internal.catalog.commands.CatalogUtils.schemaOrThrow;
+import static org.apache.ignite.internal.catalog.commands.CatalogUtils.schema;
 import static org.apache.ignite.internal.catalog.commands.CatalogUtils.table;
 
 import java.util.List;
@@ -59,7 +59,10 @@ public class RenameTableCommand extends AbstractTableCommand 
{
     @Override
     public List<UpdateEntry> get(UpdateContext updateContext) {
         Catalog catalog = updateContext.catalog();
-        CatalogSchemaDescriptor schema = schemaOrThrow(catalog, schemaName);
+        CatalogSchemaDescriptor schema = schema(catalog, schemaName, 
!ifTableExists);
+        if (schema == null) {
+            return List.of();
+        }
 
         ensureNoTableIndexOrSysViewExistsWithGivenName(schema, newTableName);
 
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AbstractCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AbstractCommandValidationTest.java
index 0f6dc4a4d41..8c7971f119a 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AbstractCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AbstractCommandValidationTest.java
@@ -60,6 +60,7 @@ abstract class AbstractCommandValidationTest extends 
BaseIgniteAbstractTest {
     static final String SCHEMA_NAME = "PUBLIC";
     static final String TABLE_NAME = "TEST";
     static final String ZONE_NAME = "Default";
+    static final String INDEX_NAME = "IDX";
     static final TablePrimaryKey ID_PK = TableHashPrimaryKey.builder()
             .columns(List.of("ID"))
             .build();
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommandValidationTest.java
index 4173d2d21af..a59fea2f73e 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAddColumnCommandValidationTest.java
@@ -126,6 +126,10 @@ public class AlterTableAddColumnCommandValidationTest 
extends AbstractCommandVal
                 CatalogValidationException.class,
                 "Schema with name 'PUBLIC_UNK' not found"
         );
+
+        CatalogCommand alterCommand = builder.ifTableExists(true).build();
+
+        alterCommand.get(new UpdateContext(catalog)); // No exception
     }
 
     @Test
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommandValidationTest.java
index 54740b39ced..5f0ab6ff868 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableAlterColumnCommandValidationTest.java
@@ -114,6 +114,11 @@ public class AlterTableAlterColumnCommandValidationTest 
extends AbstractCommandV
                 CatalogValidationException.class,
                 "Schema with name 'PUBLIC_UNK' not found"
         );
+
+        CatalogCommand alterCommand = builder.ifTableExists(true)
+                .build();
+
+        alterCommand.get(new UpdateContext(catalog)); // No exception
     }
 
     @Test
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommandValidationTest.java
index cbaf76f62da..c61b426b7e8 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/AlterTableDropColumnCommandValidationTest.java
@@ -130,6 +130,11 @@ public class AlterTableDropColumnCommandValidationTest 
extends AbstractCommandVa
                 () -> command.get(updateContext),
                 "Schema with name 'PUBLIC_UNK' not found"
         );
+
+        CatalogCommand alterCommand = builder.ifTableExists(true)
+                .build();
+
+        alterCommand.get(updateContext); // No exception
     }
 
     @Test
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CreateAbstractIndexCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CreateAbstractIndexCommandValidationTest.java
index 470787fc649..e94e1478f41 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CreateAbstractIndexCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CreateAbstractIndexCommandValidationTest.java
@@ -37,8 +37,6 @@ import org.junit.jupiter.params.provider.MethodSource;
  */
 @SuppressWarnings({"ThrowableNotThrown", "rawtypes", "unchecked"})
 public abstract class CreateAbstractIndexCommandValidationTest extends 
AbstractCommandValidationTest {
-    protected static final String INDEX_NAME = "IDX";
-
     protected abstract <T extends AbstractCreateIndexCommandBuilder<T>> T 
prefilledBuilder();
 
     @ParameterizedTest(name = "[{index}] ''{argumentsWithNames}''")
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropIndexCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropIndexCommandValidationTest.java
index 4277e965754..a01529b9991 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropIndexCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropIndexCommandValidationTest.java
@@ -36,6 +36,7 @@ import org.junit.jupiter.params.provider.MethodSource;
  */
 @SuppressWarnings("ThrowableNotThrown")
 public class DropIndexCommandValidationTest extends 
AbstractCommandValidationTest {
+
     @ParameterizedTest(name = "[{index}] ''{argumentsWithNames}''")
     @MethodSource("nullAndBlankStrings")
     void schemaNameMustNotBeNullOrBlank(String name) {
@@ -80,6 +81,14 @@ public class DropIndexCommandValidationTest extends 
AbstractCommandValidationTes
                 CatalogValidationException.class,
                 "Schema with name 'PUBLIC_UNK' not found"
         );
+
+        CatalogCommand dropCommand = DropIndexCommand.builder()
+                .schemaName(SCHEMA_NAME + "_UNK")
+                .indexName("TEST")
+                .ifExists(true)
+                .build();
+
+        dropCommand.get(new UpdateContext(catalog)); // No exception is thrown
     }
 
     @Test
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropTableCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropTableCommandValidationTest.java
index b4528842b09..6c18ffc3240 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropTableCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/DropTableCommandValidationTest.java
@@ -79,6 +79,14 @@ public class DropTableCommandValidationTest extends 
AbstractCommandValidationTes
                 () -> command.get(new UpdateContext(catalog)),
                 "Schema with name 'PUBLIC_UNK' not found"
         );
+
+        CatalogCommand dropCommand = DropTableCommand.builder()
+                .schemaName(SCHEMA_NAME + "_UNK")
+                .tableName("TEST")
+                .ifTableExists(true)
+                .build();
+
+        dropCommand.get(new UpdateContext(catalog)); // No exception
     }
 
     @Test
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommandValidationTest.java
index 951a273fb9b..9e0f486597e 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameIndexCommandValidationTest.java
@@ -80,17 +80,18 @@ public class RenameIndexCommandValidationTest extends 
AbstractCommandValidationT
     void exceptionIsThrownIfSchemaDoesNotExist() {
         Catalog catalog = catalogWithDefaultZone();
 
-        CatalogCommand command = RenameIndexCommand.builder()
+        RenameIndexCommandBuilder builder = RenameIndexCommand.builder()
                 .schemaName("TEST")
                 .indexName("TEST")
-                .newIndexName("TEST2")
-                .build();
+                .newIndexName("TEST2");
 
         assertThrows(
                 CatalogValidationException.class,
-                () -> command.get(new UpdateContext(catalog)),
+                () -> builder.build().get(new UpdateContext(catalog)),
                 "Schema with name 'TEST' not found"
         );
+
+        builder.ifIndexExists(true).build().get(new UpdateContext(catalog)); 
// No exception
     }
 
     @Test
diff --git 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameTableCommandValidationTest.java
 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameTableCommandValidationTest.java
index c53a4bc857c..9a06572189e 100644
--- 
a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameTableCommandValidationTest.java
+++ 
b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/RenameTableCommandValidationTest.java
@@ -82,17 +82,18 @@ public class RenameTableCommandValidationTest extends 
AbstractCommandValidationT
     void exceptionIsThrownIfSchemaDoesNotExist() {
         Catalog catalog = catalogWithDefaultZone();
 
-        CatalogCommand command = RenameTableCommand.builder()
+        RenameTableCommandBuilder builder = RenameTableCommand.builder()
                 .schemaName("TEST")
                 .tableName("TEST")
-                .newTableName("TEST2")
-                .build();
+                .newTableName("TEST2");
 
         assertThrows(
                 CatalogValidationException.class,
-                () -> command.get(new UpdateContext(catalog)),
+                () -> builder.build().get(new UpdateContext(catalog)),
                 "Schema with name 'TEST' not found"
         );
+
+        builder.ifTableExists(true).build().get(new UpdateContext(catalog)); 
// No exception
     }
 
     @Test

Reply via email to