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

ppa 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 266fdc6fa6 IGNITE-20606 Sql. Add syntax to support setting the default 
distribution zone (#3567)
266fdc6fa6 is described below

commit 266fdc6fa6133b4052f3e4c37413e5ffd81d2486
Author: Pavel Pereslegin <xxt...@gmail.com>
AuthorDate: Tue Apr 9 14:03:02 2024 +0300

    IGNITE-20606 Sql. Add syntax to support setting the default distribution 
zone (#3567)
---
 .../AlterZoneSetDefaultCatalogCommand.java         | 76 ++++++++++++++++++++++
 .../ignite/internal/sql/engine/ItZoneDdlTest.java  |  9 +++
 modules/sql-engine/src/main/codegen/config.fmpp    |  1 +
 .../src/main/codegen/includes/parserImpls.ftl      | 13 +++-
 .../sql/engine/exec/ddl/DdlCommandHandler.java     |  9 +++
 .../exec/ddl/DdlToCatalogCommandConverter.java     |  8 +++
 .../prepare/ddl/AlterZoneSetDefaultCommand.java    | 34 ++++++++++
 .../prepare/ddl/DdlSqlToCommandConverter.java      | 21 ++++++
 .../engine/sql/IgniteSqlAlterZoneSetDefault.java   | 67 +++++++++++++++++++
 .../DistributionZoneSqlToCommandConverterTest.java | 24 +++++++
 10 files changed, 259 insertions(+), 3 deletions(-)

diff --git 
a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterZoneSetDefaultCatalogCommand.java
 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterZoneSetDefaultCatalogCommand.java
new file mode 100644
index 0000000000..50e8fe2e1e
--- /dev/null
+++ 
b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/AlterZoneSetDefaultCatalogCommand.java
@@ -0,0 +1,76 @@
+/*
+ * 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.catalog.commands;
+
+import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_ZONE_NAME;
+
+import java.util.Collections;
+import java.util.List;
+import org.apache.ignite.internal.catalog.Catalog;
+import org.apache.ignite.internal.catalog.CatalogCommand;
+import org.apache.ignite.internal.catalog.CatalogValidationException;
+import org.apache.ignite.internal.catalog.storage.UpdateEntry;
+
+/**
+ * A command that set specified zone as default.
+ */
+public class AlterZoneSetDefaultCatalogCommand extends AbstractZoneCommand {
+    /** Returns builder to create a command that set specified zone as 
default. */
+    public static Builder builder() {
+        return new AlterZoneSetDefaultCatalogCommand.Builder();
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param zoneName Name of the zone.
+     * @throws CatalogValidationException if any of restrictions above is 
violated.
+     */
+    private AlterZoneSetDefaultCatalogCommand(String zoneName) throws 
CatalogValidationException {
+        super(zoneName);
+    }
+
+    @Override
+    public List<UpdateEntry> get(Catalog catalog) {
+        // TODO https://issues.apache.org/jira/browse/IGNITE-19687
+        if (zoneName.equals(DEFAULT_ZONE_NAME)) {
+            return Collections.emptyList();
+        }
+
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Builder of a command that set specified zone as default.
+     */
+    public static class Builder implements AbstractZoneCommandBuilder<Builder> 
{
+        private String zoneName;
+
+        @Override
+        public Builder zoneName(String zoneName) {
+            this.zoneName = zoneName;
+
+            return this;
+        }
+
+        @Override
+        public CatalogCommand build() {
+            return new AlterZoneSetDefaultCatalogCommand(zoneName);
+        }
+    }
+}
diff --git 
a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItZoneDdlTest.java
 
b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItZoneDdlTest.java
index 2169acb4b0..5fdba7b80c 100644
--- 
a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItZoneDdlTest.java
+++ 
b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItZoneDdlTest.java
@@ -17,7 +17,10 @@
 
 package org.apache.ignite.internal.sql.engine;
 
+import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
+
 import org.apache.ignite.internal.ClusterPerClassIntegrationTest;
+import org.apache.ignite.internal.catalog.CatalogService;
 import 
org.apache.ignite.internal.catalog.DistributionZoneExistsValidationException;
 import 
org.apache.ignite.internal.catalog.DistributionZoneNotFoundValidationException;
 import org.apache.ignite.internal.testframework.IgniteTestUtils;
@@ -112,6 +115,12 @@ public class ItZoneDdlTest extends 
ClusterPerClassIntegrationTest {
         tryToAlterZone("not_existing_" + ZONE_NAME, 200, false);
     }
 
+    @Test
+    public void testSetDefaultZoneThatIsAlreadyDefaultDoesNotThrowException() {
+        // TODO https://issues.apache.org/jira/browse/IGNITE-19687 The test 
should not only check the zone named "Default".
+        sql(format("ALTER ZONE \"{}\" SET DEFAULT", 
CatalogService.DEFAULT_ZONE_NAME));
+    }
+
     private static void tryToCreateZone(String zoneName, boolean failIfExists) 
{
         sql(String.format("CREATE ZONE %s", failIfExists ? zoneName : "IF NOT 
EXISTS " + zoneName));
     }
diff --git a/modules/sql-engine/src/main/codegen/config.fmpp 
b/modules/sql-engine/src/main/codegen/config.fmpp
index 418f9f5f17..a7296bd0cb 100644
--- a/modules/sql-engine/src/main/codegen/config.fmpp
+++ b/modules/sql-engine/src/main/codegen/config.fmpp
@@ -55,6 +55,7 @@ data: {
       "org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterZoneSet",
       "org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterZoneRenameTo",
       "org.apache.ignite.internal.sql.engine.sql.IgniteSqlTypeNameSpec",
+      "org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterZoneSetDefault",
       "org.apache.ignite.internal.sql.engine.type.UuidType",
     ]
 
diff --git a/modules/sql-engine/src/main/codegen/includes/parserImpls.ftl 
b/modules/sql-engine/src/main/codegen/includes/parserImpls.ftl
index 5e9c164165..2b3040b7c9 100644
--- a/modules/sql-engine/src/main/codegen/includes/parserImpls.ftl
+++ b/modules/sql-engine/src/main/codegen/includes/parserImpls.ftl
@@ -587,9 +587,16 @@ SqlNode SqlAlterZone() :
         return new IgniteSqlAlterZoneRenameTo(s.end(this), zoneId, newZoneId, 
ifExists);
       }
       |
-      <SET> { s.add(this); } optionList = AlterZoneOptions() {
-        return new IgniteSqlAlterZoneSet(s.end(this), zoneId, optionList, 
ifExists);
-      }
+      <SET>
+      (
+        <DEFAULT_> {
+          return new IgniteSqlAlterZoneSetDefault(s.end(this), zoneId, 
ifExists);
+        }
+        |
+        { s.add(this); } optionList = AlterZoneOptions() {
+          return new IgniteSqlAlterZoneSet(s.end(this), zoneId, optionList, 
ifExists);
+        }
+      )
     )
 }
 
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 c6e6f5832e..105822d9d5 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
@@ -54,6 +54,7 @@ import 
org.apache.ignite.internal.sql.engine.prepare.ddl.AlterTableAddCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.AlterTableDropCommand;
 import 
org.apache.ignite.internal.sql.engine.prepare.ddl.AlterZoneRenameCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.AlterZoneSetCommand;
+import 
org.apache.ignite.internal.sql.engine.prepare.ddl.AlterZoneSetDefaultCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.CreateIndexCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.CreateTableCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.CreateZoneCommand;
@@ -111,6 +112,8 @@ public class DdlCommandHandler implements LifecycleAware {
             return handleRenameZone((AlterZoneRenameCommand) cmd);
         } else if (cmd instanceof AlterZoneSetCommand) {
             return handleAlterZone((AlterZoneSetCommand) cmd);
+        } else if (cmd instanceof AlterZoneSetDefaultCommand) {
+            return handleAlterZoneSetDefault((AlterZoneSetDefaultCommand) cmd);
         } else if (cmd instanceof DropZoneCommand) {
             return handleDropZone((DropZoneCommand) cmd);
         } else {
@@ -138,6 +141,12 @@ public class DdlCommandHandler implements LifecycleAware {
                 .handle(handleModificationResult(cmd.ifExists(), 
DistributionZoneNotFoundValidationException.class));
     }
 
+    /** Handles alter zone set default command. */
+    private CompletableFuture<Boolean> 
handleAlterZoneSetDefault(AlterZoneSetDefaultCommand cmd) {
+        return 
catalogManager.execute(DdlToCatalogCommandConverter.convert(cmd))
+                .handle(handleModificationResult(cmd.ifExists(), 
DistributionZoneNotFoundValidationException.class));
+    }
+
     /** Handles drop distribution zone command. */
     private CompletableFuture<Boolean> handleDropZone(DropZoneCommand cmd) {
         return 
catalogManager.execute(DdlToCatalogCommandConverter.convert(cmd))
diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlToCatalogCommandConverter.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlToCatalogCommandConverter.java
index b2cabe1e70..a1fe0f8fe4 100644
--- 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlToCatalogCommandConverter.java
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlToCatalogCommandConverter.java
@@ -32,6 +32,7 @@ import 
org.apache.ignite.internal.catalog.commands.AlterTableAlterColumnCommand;
 import 
org.apache.ignite.internal.catalog.commands.AlterTableAlterColumnCommandBuilder;
 import org.apache.ignite.internal.catalog.commands.AlterTableDropColumnCommand;
 import org.apache.ignite.internal.catalog.commands.AlterZoneCommand;
+import 
org.apache.ignite.internal.catalog.commands.AlterZoneSetDefaultCatalogCommand;
 import org.apache.ignite.internal.catalog.commands.ColumnParams;
 import org.apache.ignite.internal.catalog.commands.CreateHashIndexCommand;
 import org.apache.ignite.internal.catalog.commands.CreateSortedIndexCommand;
@@ -47,6 +48,7 @@ import 
org.apache.ignite.internal.sql.engine.prepare.ddl.AlterTableAddCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.AlterTableDropCommand;
 import 
org.apache.ignite.internal.sql.engine.prepare.ddl.AlterZoneRenameCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.AlterZoneSetCommand;
+import 
org.apache.ignite.internal.sql.engine.prepare.ddl.AlterZoneSetDefaultCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.ColumnDefinition;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.CreateIndexCommand;
 import org.apache.ignite.internal.sql.engine.prepare.ddl.CreateTableCommand;
@@ -152,6 +154,12 @@ class DdlToCatalogCommandConverter {
                 .build();
     }
 
+    static CatalogCommand convert(AlterZoneSetDefaultCommand cmd) {
+        return AlterZoneSetDefaultCatalogCommand.builder()
+                .zoneName(cmd.zoneName())
+                .build();
+    }
+
     static CatalogCommand convert(AlterColumnCommand cmd) {
         AlterTableAlterColumnCommandBuilder builder = 
AlterTableAlterColumnCommand.builder()
                 .schemaName(cmd.schemaName())
diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/AlterZoneSetDefaultCommand.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/AlterZoneSetDefaultCommand.java
new file mode 100644
index 0000000000..f5111e83ce
--- /dev/null
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/AlterZoneSetDefaultCommand.java
@@ -0,0 +1,34 @@
+/*
+ * 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.sql.engine.prepare.ddl;
+
+/**
+ * ALTER ZONE ... SET DEFAULT statement.
+ */
+public class AlterZoneSetDefaultCommand extends AbstractZoneDdlCommand {
+    /** Quietly ignore this command if zone does not exists. */
+    private boolean ifExists;
+
+    public boolean ifExists() {
+        return ifExists;
+    }
+
+    public void ifExists(boolean ifExists) {
+        this.ifExists = ifExists;
+    }
+}
diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java
index b58ce671ff..460a12eac9 100644
--- 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java
@@ -94,6 +94,7 @@ import 
org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterTableAddColumn;
 import org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterTableDropColumn;
 import org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterZoneRenameTo;
 import org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterZoneSet;
+import org.apache.ignite.internal.sql.engine.sql.IgniteSqlAlterZoneSetDefault;
 import org.apache.ignite.internal.sql.engine.sql.IgniteSqlCreateIndex;
 import org.apache.ignite.internal.sql.engine.sql.IgniteSqlCreateTable;
 import org.apache.ignite.internal.sql.engine.sql.IgniteSqlCreateTableOption;
@@ -254,6 +255,10 @@ public class DdlSqlToCommandConverter {
             return convertAlterZoneSet((IgniteSqlAlterZoneSet) ddlNode, ctx);
         }
 
+        if (ddlNode instanceof IgniteSqlAlterZoneSetDefault) {
+            return convertAlterZoneSetDefault((IgniteSqlAlterZoneSetDefault) 
ddlNode, ctx);
+        }
+
         if (ddlNode instanceof IgniteSqlDropZone) {
             return convertDropZone((IgniteSqlDropZone) ddlNode, ctx);
         }
@@ -653,6 +658,22 @@ public class DdlSqlToCommandConverter {
         return alterZoneCmd;
     }
 
+    /**
+     * Converts the given {@link IgniteSqlAlterZoneSetDefault} AST node to a 
{@link AlterZoneSetDefaultCommand}.
+     *
+     * @param alterZoneSetDefault Root node of the given AST.
+     * @param ctx Planning context.
+     */
+    private DdlCommand convertAlterZoneSetDefault(IgniteSqlAlterZoneSetDefault 
alterZoneSetDefault, PlanningContext ctx) {
+        AlterZoneSetDefaultCommand cmd = new AlterZoneSetDefaultCommand();
+
+        cmd.schemaName(deriveSchemaName(alterZoneSetDefault.name(), ctx));
+        cmd.zoneName(deriveObjectName(alterZoneSetDefault.name(), ctx, 
"zoneName"));
+        cmd.ifExists(alterZoneSetDefault.ifExists());
+
+        return cmd;
+    }
+
     /**
      * Converts the given IgniteSqlAlterZoneRenameTo AST node to a 
AlterZoneCommand.
      *
diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteSqlAlterZoneSetDefault.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteSqlAlterZoneSetDefault.java
new file mode 100644
index 0000000000..28990eab65
--- /dev/null
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteSqlAlterZoneSetDefault.java
@@ -0,0 +1,67 @@
+/*
+ * 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.sql.engine.sql;
+
+import java.util.List;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlWriter;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.util.ImmutableNullableList;
+import org.checkerframework.checker.nullness.qual.Nullable;
+
+/**
+ * Parse tree for {@code ALTER ZONE SET DEFAULT} statement.
+ */
+public class IgniteSqlAlterZoneSetDefault extends IgniteAbstractSqlAlterZone {
+
+    /** ALTER ZONE SET DEFAULT operator. */
+    protected static class Operator extends IgniteDdlOperator {
+
+        /** Constructor. */
+        protected Operator(boolean existsFlag) {
+            super("ALTER ZONE", SqlKind.OTHER_DDL, existsFlag);
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public SqlCall createCall(@Nullable SqlLiteral functionQualifier, 
SqlParserPos pos, @Nullable SqlNode... operands) {
+            return new IgniteSqlAlterZoneSetDefault(pos, (SqlIdentifier) 
operands[0], existFlag());
+        }
+    }
+
+    /** Constructor. */
+    public IgniteSqlAlterZoneSetDefault(SqlParserPos pos, SqlIdentifier name, 
boolean ifExists) {
+        super(new Operator(ifExists), pos, name);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public List<SqlNode> getOperandList() {
+        return ImmutableNullableList.of(name);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void unparseAlterZoneOperation(SqlWriter writer, int leftPrec, 
int rightPrec) {
+        writer.keyword("SET DEFAULT");
+    }
+}
diff --git 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java
 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java
index 3445ca69dc..6d444f0dce 100644
--- 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java
+++ 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java
@@ -180,6 +180,30 @@ public class DistributionZoneSqlToCommandConverterTest 
extends AbstractDdlSqlToC
         assertThat(zoneCmd.dataNodesAutoAdjust(), equalTo(300));
     }
 
+    @Test
+    public void testAlterZoneSetDefault() throws SqlParseException {
+        SqlNode node = parse("ALTER ZONE test SET DEFAULT");
+
+        DdlCommand cmd = converter.convert((SqlDdl) node, createContext());
+        assertThat(cmd, Matchers.instanceOf(AlterZoneSetDefaultCommand.class));
+
+        AlterZoneSetDefaultCommand zoneCmd = (AlterZoneSetDefaultCommand) cmd;
+        assertThat(zoneCmd.zoneName(), equalTo("TEST"));
+        assertThat(zoneCmd.ifExists(), is(false));
+    }
+
+    @Test
+    public void testAlterZoneSetDefaultIfExists() throws SqlParseException {
+        SqlNode node = parse("ALTER ZONE IF EXISTS test SET DEFAULT");
+
+        DdlCommand cmd = converter.convert((SqlDdl) node, createContext());
+        assertThat(cmd, Matchers.instanceOf(AlterZoneSetDefaultCommand.class));
+
+        AlterZoneSetDefaultCommand zoneCmd = (AlterZoneSetDefaultCommand) cmd;
+        assertThat(zoneCmd.zoneName(), equalTo("TEST"));
+        assertThat(zoneCmd.ifExists(), is(true));
+    }
+
     @Test
     public void testAlterZoneCommandWithInvalidOptions() throws 
SqlParseException {
         SqlNode node = parse("ALTER ZONE test SET replicas=2, 
data_nodes_auto_adjust=-100");

Reply via email to