You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zi...@apache.org on 2023/04/07 05:02:44 UTC
[shardingsphere] branch master updated: Add parse test for some RQL. (#25046)
This is an automated email from the ASF dual-hosted git repository.
zichaowang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 1d3656d0000 Add parse test for some RQL. (#25046)
1d3656d0000 is described below
commit 1d3656d00008cb25ac308e32fd836e7f235966a5
Author: Raigor <ra...@gmail.com>
AuthorDate: Fri Apr 7 13:02:36 2023 +0800
Add parse test for some RQL. (#25046)
---
.../asserts/statement/rql/RQLStatementAssert.java | 10 +++
.../rql/impl/ShowStorageUnitsStatementAssert.java | 66 ++++++++++++++++++++
.../rql/impl/ShowTablesStatementAssert.java | 71 ++++++++++++++++++++++
.../table/ShowSingleTablesStatementAssert.java | 59 ++++++++++++++++++
.../cases/parser/jaxb/RootSQLParserTestCases.java | 12 +++-
.../ShowRulesUsedStorageUnitStatementTestCase.java | 2 +-
.../unit/ShowStorageUnitsStatementTestCase.java} | 10 +--
.../ShowLogicalTableStatementTestCase.java} | 17 +-----
.../ShowSingleTableStatementTestCase.java | 7 +--
.../ShowTableStatementTestCase.java} | 10 +--
.../it/parser/src/main/resources/case/rql/show.xml | 31 +++++++++-
.../src/main/resources/sql/supported/rql/show.xml | 8 +++
12 files changed, 270 insertions(+), 33 deletions(-)
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/RQLStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/RQLStatementAssert.java
index 322e3305ab1..098f41256b7 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/RQLStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/RQLStatementAssert.java
@@ -21,8 +21,12 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rql.RQLStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowTablesStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl.ShowRulesStatementAssert;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl.ShowStorageUnitsStatementAssert;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl.ShowTablesStatementAssert;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
/**
@@ -42,5 +46,11 @@ public final class RQLStatementAssert {
if (actual instanceof ShowRulesStatement) {
ShowRulesStatementAssert.assertIs(assertContext, (ShowRulesStatement) actual, expected);
}
+ if (actual instanceof ShowTablesStatement) {
+ ShowTablesStatementAssert.assertIs(assertContext, (ShowTablesStatement) actual, expected);
+ }
+ if (actual instanceof ShowStorageUnitsStatement) {
+ ShowStorageUnitsStatementAssert.assertIs(assertContext, (ShowStorageUnitsStatement) actual, expected);
+ }
}
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowStorageUnitsStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowStorageUnitsStatementAssert.java
new file mode 100644
index 00000000000..ce8b37fff55
--- /dev/null
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowStorageUnitsStatementAssert.java
@@ -0,0 +1,66 @@
+/*
+ * 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.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.database.DatabaseAssert;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.storage.unit.ShowStorageUnitsStatementTestCase;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+/**
+ * Show storage units statement assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShowStorageUnitsStatementAssert {
+
+ /**
+ * Assert show storage units statement is correct with expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual show storage units statement
+ * @param expected expected show storage units statement test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext, final ShowStorageUnitsStatement actual, final SQLParserTestCase expected) {
+ assertThat("Expected value should be ShowStorageUnitsStatementTestCase", expected, instanceOf(ShowStorageUnitsStatementTestCase.class));
+ assertIs(assertContext, actual, (ShowStorageUnitsStatementTestCase) expected);
+ }
+
+ private static void assertIs(final SQLCaseAssertContext assertContext, final ShowStorageUnitsStatement actual, final ShowStorageUnitsStatementTestCase expected) {
+ if (null == expected.getDatabase()) {
+ assertFalse(actual.getDatabase().isPresent(), assertContext.getText("Actual database should not exist."));
+ } else {
+ assertTrue(actual.getDatabase().isPresent(), assertContext.getText("Actual database should exist."));
+ DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
+ }
+ if (null == expected.getUsageCount()) {
+ assertFalse(actual.getUsageCount().isPresent(), assertContext.getText("Actual usage count should not exist."));
+ } else {
+ assertTrue(actual.getUsageCount().isPresent(), assertContext.getText("Actual usage count should exist."));
+ assertThat(assertContext.getText("Usage count assertion error"), actual.getUsageCount().get(), is(expected.getUsageCount()));
+ }
+ }
+}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
new file mode 100644
index 00000000000..c35e3a621d8
--- /dev/null
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
@@ -0,0 +1,71 @@
+/*
+ * 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.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowTablesStatement;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.database.DatabaseAssert;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl.table.ShowSingleTablesStatementAssert;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowTableStatementTestCase;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+/**
+ * Show tables statement assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShowTablesStatementAssert {
+
+ /**
+ * Assert show tables statement is correct with expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual show tables statement
+ * @param expected expected show tables statement test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext, final ShowTablesStatement actual, final SQLParserTestCase expected) {
+ assertThat("Expected value should be ShowTableStatementTestCase", expected, instanceOf(ShowTableStatementTestCase.class));
+ assertIs(assertContext, actual, (ShowTableStatementTestCase) expected);
+ if (actual instanceof ShowSingleTableStatement) {
+ ShowSingleTablesStatementAssert.assertIs(assertContext, (ShowSingleTableStatement) actual, expected);
+ }
+ }
+
+ private static void assertIs(final SQLCaseAssertContext assertContext, final ShowTablesStatement actual, final ShowTableStatementTestCase expected) {
+ if (null == expected.getDatabase()) {
+ assertFalse(actual.getDatabase().isPresent(), assertContext.getText("Actual database should not exist."));
+ } else {
+ assertTrue(actual.getDatabase().isPresent(), assertContext.getText("Actual database should exist."));
+ DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
+ }
+ if (null == expected.getLikePattern()) {
+ assertFalse(actual.getLikePattern().isPresent(), assertContext.getText("Actual like pattern should not exist."));
+ } else {
+ assertTrue(actual.getLikePattern().isPresent(), assertContext.getText("Actual like pattern should exist."));
+ assertThat(assertContext.getText("Like pattern assertion error"), actual.getLikePattern().get(), is(expected.getLikePattern()));
+ }
+ }
+}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java
new file mode 100644
index 00000000000..9dc368e6d6a
--- /dev/null
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java
@@ -0,0 +1,59 @@
+/*
+ * 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.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl.table;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
+import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowSingleTableStatementTestCase;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+/**
+ * Show single tables statement assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShowSingleTablesStatementAssert {
+
+ /**
+ * Assert show single tables statement is correct with expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual show single tables statement
+ * @param expected expected show single tables statement test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext, final ShowSingleTableStatement actual, final SQLParserTestCase expected) {
+ assertThat("Expected value should be ShowSingleTableStatementTestCase", expected, instanceOf(ShowSingleTableStatementTestCase.class));
+ assertIs(assertContext, actual, (ShowSingleTableStatementTestCase) expected);
+ }
+
+ private static void assertIs(final SQLCaseAssertContext assertContext, final ShowSingleTableStatement actual, final ShowSingleTableStatementTestCase expected) {
+ if (null == expected.getTable()) {
+ assertFalse(actual.getTableName().isPresent(), assertContext.getText("Actual table name should not exist."));
+ } else {
+ assertTrue(actual.getTableName().isPresent(), assertContext.getText("Actual table name should exist."));
+ assertThat(assertContext.getText("Table name assertion error"), actual.getTableName().get(), is(expected.getTable()));
+ }
+ }
+}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
index 7b2f8c132eb..87426f68b71 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
@@ -371,7 +371,6 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.sharding.DropShardingTableReferenceRuleStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.sharding.DropShardingTableRuleStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.single.SetDefaultSingleTableStorageUnitStatementTestCase;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.resource.ShowRulesUsedStorageUnitStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.encrypt.CountEncryptRuleStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.encrypt.ShowEncryptRulesStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.mask.CountMaskRuleStatementTestCase;
@@ -400,7 +399,10 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.sharding.ShowUnusedShardingKeyGeneratorsStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.single.CountSingleTableStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.single.ShowDefaultSingleTableStorageUnitStatementTestCase;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.single.ShowSingleTableStatementTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.storage.unit.ShowRulesUsedStorageUnitStatementTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.storage.unit.ShowStorageUnitsStatementTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowLogicalTableStatementTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowSingleTableStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rul.FormatSQLStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rul.ParseStatementTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rul.PreviewStatementTestCase;
@@ -1089,9 +1091,15 @@ public final class RootSQLParserTestCases {
@XmlElement(name = "uninstall-plugin")
private final List<UninstallPluginStatementTestCase> uninstallPluginTestCases = new LinkedList<>();
+ @XmlElement(name = "show-storage-units")
+ private final List<ShowStorageUnitsStatementTestCase> showStorageUnitsTestCases = new LinkedList<>();
+
@XmlElement(name = "show-single-table")
private final List<ShowSingleTableStatementTestCase> showSingleTableTestCases = new LinkedList<>();
+ @XmlElement(name = "show-logical-tables")
+ private final List<ShowLogicalTableStatementTestCase> showLogicalTableTestCases = new LinkedList<>();
+
@XmlElement(name = "show-default-single-table-storage-unit")
private final List<ShowDefaultSingleTableStorageUnitStatementTestCase> showDefaultSingleTableStorageUnitTestCases = new LinkedList<>();
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/resource/ShowRulesUsedStorageUnitStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/storage/unit/ShowRulesUsedStorageUnitStatementTestCase.java
similarity index 96%
rename from test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/resource/ShowRulesUsedStorageUnitStatementTestCase.java
rename to test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/storage/unit/ShowRulesUsedStorageUnitStatementTestCase.java
index 02750e21951..8a4e27a931e 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/resource/ShowRulesUsedStorageUnitStatementTestCase.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/storage/unit/ShowRulesUsedStorageUnitStatementTestCase.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.resource;
+package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.storage.unit;
import lombok.Getter;
import lombok.Setter;
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/storage/unit/ShowStorageUnitsStatementTestCase.java
similarity index 81%
copy from test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
copy to test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/storage/unit/ShowStorageUnitsStatementTestCase.java
index 011ca6f5b66..b38c756a9c3 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/storage/unit/ShowStorageUnitsStatementTestCase.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.single;
+package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.storage.unit;
import lombok.Getter;
import lombok.Setter;
@@ -24,12 +24,12 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
import javax.xml.bind.annotation.XmlAttribute;
/**
- * Show single table statement test case.
+ * Show storage units statement test case.
*/
@Getter
@Setter
-public final class ShowSingleTableStatementTestCase extends DatabaseContainedTestCase {
+public final class ShowStorageUnitsStatementTestCase extends DatabaseContainedTestCase {
- @XmlAttribute
- private String name;
+ @XmlAttribute(name = "usage-count")
+ private Integer usageCount;
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowLogicalTableStatementTestCase.java
similarity index 66%
copy from test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
copy to test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowLogicalTableStatementTestCase.java
index 011ca6f5b66..ba753370904 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowLogicalTableStatementTestCase.java
@@ -15,21 +15,10 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.single;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.DatabaseContainedTestCase;
-
-import javax.xml.bind.annotation.XmlAttribute;
+package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table;
/**
- * Show single table statement test case.
+ * Show logical table statement test case.
*/
-@Getter
-@Setter
-public final class ShowSingleTableStatementTestCase extends DatabaseContainedTestCase {
-
- @XmlAttribute
- private String name;
+public final class ShowLogicalTableStatementTestCase extends ShowTableStatementTestCase {
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowSingleTableStatementTestCase.java
similarity index 79%
copy from test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
copy to test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowSingleTableStatementTestCase.java
index 011ca6f5b66..4760c3d3cc2 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowSingleTableStatementTestCase.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.single;
+package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table;
import lombok.Getter;
import lombok.Setter;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.DatabaseContainedTestCase;
import javax.xml.bind.annotation.XmlAttribute;
@@ -28,8 +27,8 @@ import javax.xml.bind.annotation.XmlAttribute;
*/
@Getter
@Setter
-public final class ShowSingleTableStatementTestCase extends DatabaseContainedTestCase {
+public final class ShowSingleTableStatementTestCase extends ShowTableStatementTestCase {
@XmlAttribute
- private String name;
+ private String table;
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowTableStatementTestCase.java
similarity index 82%
rename from test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
rename to test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowTableStatementTestCase.java
index 011ca6f5b66..47e08f9b122 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/rule/single/ShowSingleTableStatementTestCase.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowTableStatementTestCase.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.single;
+package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table;
import lombok.Getter;
import lombok.Setter;
@@ -24,12 +24,12 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
import javax.xml.bind.annotation.XmlAttribute;
/**
- * Show single table statement test case.
+ * Show table statement test case.
*/
@Getter
@Setter
-public final class ShowSingleTableStatementTestCase extends DatabaseContainedTestCase {
+public abstract class ShowTableStatementTestCase extends DatabaseContainedTestCase {
- @XmlAttribute
- private String name;
+ @XmlAttribute(name = "like-pattern")
+ private String likePattern;
}
diff --git a/test/it/parser/src/main/resources/case/rql/show.xml b/test/it/parser/src/main/resources/case/rql/show.xml
index f745f37a094..abafa0a5d4b 100644
--- a/test/it/parser/src/main/resources/case/rql/show.xml
+++ b/test/it/parser/src/main/resources/case/rql/show.xml
@@ -74,11 +74,18 @@
<database name="shadow_db" start-index="35" stop-index="43" />
</show-default-shadow-algorithm>
- <show-single-table sql-case-id="show-single-table">
- <name name="t_order" start-index="19" stop-index="25" />
+ <show-single-table sql-case-id="show-single-table" table="t_order">
<database name="single_table_db" start-index="31" stop-index="45" />
</show-single-table>
+ <show-single-table sql-case-id="show-single-tables">
+ <database name="single_table_db" start-index="24" stop-index="38" />
+ </show-single-table>
+
+ <show-single-table sql-case-id="show-single-tables-like" like-pattern="t_%">
+ <database name="single_table_db" start-index="35" stop-index="49" />
+ </show-single-table>
+
<show-default-single-table-storage-unit sql-case-id="show-default-single-table-storage-unit">
<database name="single_table_db" start-index="44" stop-index="58" />
</show-default-single-table-storage-unit>
@@ -150,4 +157,24 @@
<count-mask-rule sql-case-id="count-mask-rule">
<database name="db1" start-index="21" stop-index="23" />
</count-mask-rule>
+
+ <show-storage-units sql-case-id="show-storage-units" />
+
+ <show-storage-units sql-case-id="show-storage-units-from">
+ <database name="sharding_db" start-index="24" stop-index="34" />
+ </show-storage-units>
+
+ <show-storage-units sql-case-id="show-storage-units-where-usage-count" usage-count="0">
+ <database name="sharding_db" start-index="24" stop-index="34" />
+ </show-storage-units>
+
+ <show-logical-tables sql-case-id="show-logical-tables" />
+
+ <show-logical-tables sql-case-id="show-logical-tables-from">
+ <database name="sharding_db" start-index="25" stop-index="35" />
+ </show-logical-tables>
+
+ <show-logical-tables sql-case-id="show-logical-tables-like" like-pattern="t_%">
+ <database name="sharding_db" start-index="36" stop-index="46" />
+ </show-logical-tables>
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/rql/show.xml b/test/it/parser/src/main/resources/sql/supported/rql/show.xml
index 1fe91b4c4a1..1109317fdfc 100644
--- a/test/it/parser/src/main/resources/sql/supported/rql/show.xml
+++ b/test/it/parser/src/main/resources/sql/supported/rql/show.xml
@@ -32,6 +32,8 @@
<sql-case id="show-shadow-algorithms" value="SHOW SHADOW ALGORITHMS FROM shadow_db" db-types="ShardingSphere" />
<sql-case id="show-default-shadow-algorithm" value="SHOW DEFAULT SHADOW ALGORITHM FROM shadow_db" db-types="ShardingSphere" />
<sql-case id="show-single-table" value="SHOW SINGLE TABLE t_order FROM single_table_db" db-types="ShardingSphere" />
+ <sql-case id="show-single-tables" value="SHOW SINGLE TABLES FROM single_table_db" db-types="ShardingSphere" />
+ <sql-case id="show-single-tables-like" value="SHOW SINGLE TABLES LIKE 't_%' FROM single_table_db" db-types="ShardingSphere" />
<sql-case id="show-default-single-table-storage-unit" value="SHOW DEFAULT SINGLE TABLE STORAGE UNIT FROM single_table_db" db-types="ShardingSphere" />
<sql-case id="show-sharding-table-nodes" value="SHOW SHARDING TABLE NODES t_order FROM sharding_db" db-types="ShardingSphere" />
<sql-case id="show-sharding-key-generators" value="SHOW SHARDING KEY GENERATORS FROM sharding_db" db-types="ShardingSphere" />
@@ -50,4 +52,10 @@
<sql-case id="count-encrypt-rule" value="COUNT ENCRYPT RULE FROM db1" db-types="ShardingSphere" />
<sql-case id="count-shadow-rule" value="COUNT SHADOW RULE FROM db1" db-types="ShardingSphere" />
<sql-case id="count-mask-rule" value="COUNT MASK RULE FROM db1" db-types="ShardingSphere" />
+ <sql-case id="show-storage-units" value="SHOW STORAGE UNITS" db-types="ShardingSphere" />
+ <sql-case id="show-storage-units-from" value="SHOW STORAGE UNITS FROM sharding_db" db-types="ShardingSphere" />
+ <sql-case id="show-storage-units-where-usage-count" value="SHOW STORAGE UNITS FROM sharding_db WHERE USAGE_COUNT = 0" db-types="ShardingSphere" />
+ <sql-case id="show-logical-tables" value="SHOW LOGICAL TABLES" db-types="ShardingSphere" />
+ <sql-case id="show-logical-tables-from" value="SHOW LOGICAL TABLES FROM sharding_db" db-types="ShardingSphere" />
+ <sql-case id="show-logical-tables-like" value="SHOW LOGICAL TABLES LIKE 't_%' FROM sharding_db" db-types="ShardingSphere" />
</sql-cases>