This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 49a46117e07 Support parsing Doris SHOW DATA (TYPES) syntax (#38236)
49a46117e07 is described below
commit 49a46117e072d81fcbf707308c0f2d5e9976b630
Author: cxy <[email protected]>
AuthorDate: Fri Feb 27 17:29:54 2026 +0800
Support parsing Doris SHOW DATA (TYPES) syntax (#38236)
---
.../core/database/visitor/SQLVisitorRule.java | 4 ++
.../src/main/antlr4/imports/doris/DALStatement.g4 | 10 ++++
.../statement/type/DorisDALStatementVisitor.java | 24 +++++++++
.../doris/dal/DorisShowDataStatement.java | 61 ++++++++++++++++++++++
.../doris/dal/DorisShowDataTypesStatement.java | 31 +++++++++++
.../dal/dialect/doris/DorisDALStatementAssert.java | 10 ++++
.../doris/type/DorisShowDataStatementAssert.java | 58 ++++++++++++++++++++
.../type/DorisShowDataTypesStatementAssert.java | 41 +++++++++++++++
.../cases/parser/jaxb/RootSQLParserTestCases.java | 8 +++
.../doris/DorisShowDataStatementTestCase.java | 40 ++++++++++++++
.../doris/DorisShowDataTypesStatementTestCase.java | 26 +++++++++
.../main/resources/case/dal/show-data-types.xml | 21 ++++++++
.../src/main/resources/case/dal/show-data.xml | 45 ++++++++++++++++
.../sql/supported/dal/show-data-types.xml | 21 ++++++++
.../main/resources/sql/supported/dal/show-data.xml | 25 +++++++++
15 files changed, 425 insertions(+)
diff --git
a/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
b/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
index 0572ee66864..8fa65d270ec 100644
---
a/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
+++
b/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
@@ -417,6 +417,10 @@ public enum SQLVisitorRule {
SHOW_BUILD_INDEX("ShowBuildIndex", SQLStatementType.DAL),
+ SHOW_DATA("ShowData", SQLStatementType.DAL),
+
+ SHOW_DATA_TYPES("ShowDataTypes", SQLStatementType.DAL),
+
ALTER_SQL_BLOCK_RULE("AlterSqlBlockRule", SQLStatementType.DAL),
DROP_SQL_BLOCK_RULE("DropSqlBlockRule", SQLStatementType.DAL),
diff --git
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4
index 1ea447da784..9d3440cdee0 100644
---
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4
+++
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4
@@ -287,6 +287,14 @@ showCharset
: SHOW CHARSET
;
+showDataTypes
+ : SHOW DATA TYPES
+ ;
+
+showData
+ : SHOW DATA (FROM tableName)? orderByClause?
+ ;
+
setCharacter
: SET (CHARACTER SET | CHARSET) (charsetName | DEFAULT)
;
@@ -836,4 +844,6 @@ show
| showRoutineLoad
| showProc
| showSyncJob
+ | showDataTypes
+ | showData
;
diff --git
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
index 38e41340752..63275446874 100644
---
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
+++
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
@@ -147,6 +147,8 @@ import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.DorisAl
import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowQueryStatsContext;
import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowProcContext;
import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowSyncJobContext;
+import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowDataTypesContext;
+import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowDataContext;
import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.AlterSqlBlockRuleContext;
import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.DropSqlBlockRuleContext;
import
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowSqlBlockRuleContext;
@@ -216,6 +218,8 @@ import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDropSqlBloc
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowFunctionsStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowProcStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowSyncJobStatement;
+import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowDataTypesStatement;
+import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowDataStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowSqlBlockRuleStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowRoutineLoadTaskStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowRoutineLoadStatement;
@@ -1403,4 +1407,24 @@ public final class DorisDALStatementVisitor extends
DorisStatementVisitor implem
result.addParameterMarkers(getParameterMarkerSegments());
return result;
}
+
+ @Override
+ public ASTNode visitShowDataTypes(final ShowDataTypesContext ctx) {
+ DorisShowDataTypesStatement result = new
DorisShowDataTypesStatement(getDatabaseType());
+ result.addParameterMarkers(getParameterMarkerSegments());
+ return result;
+ }
+
+ @Override
+ public ASTNode visitShowData(final ShowDataContext ctx) {
+ DorisShowDataStatement result = new
DorisShowDataStatement(getDatabaseType());
+ if (null != ctx.tableName()) {
+ result.setTable((SimpleTableSegment) visit(ctx.tableName()));
+ }
+ if (null != ctx.orderByClause()) {
+ result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
+ }
+ result.addParameterMarkers(getParameterMarkerSegments());
+ return result;
+ }
}
diff --git
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowDataStatement.java
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowDataStatement.java
new file mode 100644
index 00000000000..edcff2ddd6f
--- /dev/null
+++
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowDataStatement.java
@@ -0,0 +1,61 @@
+/*
+ * 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.sql.parser.statement.doris.dal;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.OrderBySegment;
+import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
+import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.DALStatement;
+
+import java.util.Optional;
+
+/**
+ * Show data statement for Doris.
+ */
+@Getter
+@Setter
+public final class DorisShowDataStatement extends DALStatement {
+
+ private SimpleTableSegment table;
+
+ private OrderBySegment orderBy;
+
+ public DorisShowDataStatement(final DatabaseType databaseType) {
+ super(databaseType);
+ }
+
+ /**
+ * Get table.
+ *
+ * @return table
+ */
+ public Optional<SimpleTableSegment> getTable() {
+ return Optional.ofNullable(table);
+ }
+
+ /**
+ * Get order by.
+ *
+ * @return order by
+ */
+ public Optional<OrderBySegment> getOrderBy() {
+ return Optional.ofNullable(orderBy);
+ }
+}
diff --git
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowDataTypesStatement.java
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowDataTypesStatement.java
new file mode 100644
index 00000000000..dc2db50d0cc
--- /dev/null
+++
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowDataTypesStatement.java
@@ -0,0 +1,31 @@
+/*
+ * 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.sql.parser.statement.doris.dal;
+
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.DALStatement;
+
+/**
+ * Show data types statement for Doris.
+ */
+public final class DorisShowDataTypesStatement extends DALStatement {
+
+ public DorisShowDataTypesStatement(final DatabaseType databaseType) {
+ super(databaseType);
+ }
+}
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
index 93482afab53..0922a75e8eb 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
@@ -28,6 +28,8 @@ import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisCreateRepos
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDescFunctionStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDropRepositoryStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowFunctionsStatement;
+import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowDataStatement;
+import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowDataTypesStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowProcStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowCreateRoutineLoadStatement;
import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowSyncJobStatement;
@@ -41,6 +43,8 @@ import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.d
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisDescFunctionStatementAssert;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisDropRepositoryStatementAssert;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowFunctionsStatementAssert;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowDataStatementAssert;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowDataTypesStatementAssert;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowProcStatementAssert;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowCreateRoutineLoadStatementAssert;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowQueryStatsStatementAssert;
@@ -55,6 +59,8 @@ 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.dal.dialect.doris.DorisDescFunctionStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisDropRepositoryStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowFunctionsStatementTestCase;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowDataStatementTestCase;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowDataTypesStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowProcStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowCreateRoutineLoadStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowSyncJobStatementTestCase;
@@ -102,6 +108,10 @@ public final class DorisDALStatementAssert {
DorisShowCreateRoutineLoadStatementAssert.assertIs(assertContext,
(DorisShowCreateRoutineLoadStatement) actual,
(DorisShowCreateRoutineLoadStatementTestCase) expected);
} else if (actual instanceof DorisShowSyncJobStatement) {
DorisShowSyncJobStatementAssert.assertIs(assertContext,
(DorisShowSyncJobStatement) actual, (DorisShowSyncJobStatementTestCase)
expected);
+ } else if (actual instanceof DorisShowDataTypesStatement) {
+ DorisShowDataTypesStatementAssert.assertIs(assertContext,
(DorisShowDataTypesStatement) actual, (DorisShowDataTypesStatementTestCase)
expected);
+ } else if (actual instanceof DorisShowDataStatement) {
+ DorisShowDataStatementAssert.assertIs(assertContext,
(DorisShowDataStatement) actual, (DorisShowDataStatementTestCase) expected);
}
}
}
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowDataStatementAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowDataStatementAssert.java
new file mode 100644
index 00000000000..b8c5945720a
--- /dev/null
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowDataStatementAssert.java
@@ -0,0 +1,58 @@
+/*
+ * 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.dal.dialect.doris.type;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowDataStatement;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.orderby.OrderByClauseAssert;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.table.TableAssert;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowDataStatementTestCase;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+/**
+ * Show data statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisShowDataStatementAssert {
+
+ /**
+ * Assert show data statement is correct with expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual show data statement
+ * @param expected expected show data statement test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final DorisShowDataStatement actual, final DorisShowDataStatementTestCase
expected) {
+ if (null != expected.getTable()) {
+ assertNotNull(actual.getTable().orElse(null),
assertContext.getText("Actual table should exist."));
+ TableAssert.assertIs(assertContext, actual.getTable().get(),
expected.getTable());
+ } else {
+ assertNull(actual.getTable().orElse(null),
assertContext.getText("Actual table should not exist."));
+ }
+ if (null != expected.getOrderBy()) {
+ assertNotNull(actual.getOrderBy().orElse(null),
assertContext.getText("Actual order by segment should exist."));
+ OrderByClauseAssert.assertIs(assertContext,
actual.getOrderBy().get(), expected.getOrderBy());
+ } else {
+ assertNull(actual.getOrderBy().orElse(null),
assertContext.getText("Actual order by segment should not exist."));
+ }
+ }
+}
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowDataTypesStatementAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowDataTypesStatementAssert.java
new file mode 100644
index 00000000000..47373556bb1
--- /dev/null
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowDataTypesStatementAssert.java
@@ -0,0 +1,41 @@
+/*
+ * 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.dal.dialect.doris.type;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowDataTypesStatement;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowDataTypesStatementTestCase;
+
+/**
+ * Show data types statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisShowDataTypesStatementAssert {
+
+ /**
+ * Assert show data types statement is correct with expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual show data types statement
+ * @param expected expected show data types statement test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final DorisShowDataTypesStatement actual, final
DorisShowDataTypesStatementTestCase expected) {
+ }
+}
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 175fb9d130e..0d7165aaec1 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
@@ -39,6 +39,8 @@ 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.dal.dialect.doris.DorisShowCreateRoutineLoadStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.dialect.doris.DorisStopRoutineLoadStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowProcStatementTestCase;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowDataTypesStatementTestCase;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowDataStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowSyncJobStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowSqlBlockRuleStatementTestCase;
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowRoutineLoadTaskStatementTestCase;
@@ -609,6 +611,12 @@ public final class RootSQLParserTestCases {
@XmlElement(name = "doris-show-proc")
private final List<DorisShowProcStatementTestCase> dorisShowProcTestCases
= new LinkedList<>();
+ @XmlElement(name = "doris-show-data-types")
+ private final List<DorisShowDataTypesStatementTestCase>
dorisShowDataTypesTestCases = new LinkedList<>();
+
+ @XmlElement(name = "doris-show-data")
+ private final List<DorisShowDataStatementTestCase> dorisShowDataTestCases
= new LinkedList<>();
+
@XmlElement(name = "build-index")
private final List<BuildIndexStatementTestCase> buildIndexTestCases = new
LinkedList<>();
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowDataStatementTestCase.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowDataStatementTestCase.java
new file mode 100644
index 00000000000..edbfaef2700
--- /dev/null
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowDataStatementTestCase.java
@@ -0,0 +1,40 @@
+/*
+ * 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.cases.parser.jaxb.statement.dal.dialect.doris;
+
+import lombok.Getter;
+import lombok.Setter;
+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.segment.impl.orderby.ExpectedOrderByClause;
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.table.ExpectedSimpleTable;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * Show data statement test case for Doris.
+ */
+@Getter
+@Setter
+public final class DorisShowDataStatementTestCase extends SQLParserTestCase {
+
+ @XmlElement
+ private ExpectedSimpleTable table;
+
+ @XmlElement(name = "order-by")
+ private ExpectedOrderByClause orderBy;
+}
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowDataTypesStatementTestCase.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowDataTypesStatementTestCase.java
new file mode 100644
index 00000000000..43dd20ed2fd
--- /dev/null
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowDataTypesStatementTestCase.java
@@ -0,0 +1,26 @@
+/*
+ * 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.cases.parser.jaxb.statement.dal.dialect.doris;
+
+import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+
+/**
+ * Show data types statement test case for Doris.
+ */
+public final class DorisShowDataTypesStatementTestCase extends
SQLParserTestCase {
+}
diff --git a/test/it/parser/src/main/resources/case/dal/show-data-types.xml
b/test/it/parser/src/main/resources/case/dal/show-data-types.xml
new file mode 100644
index 00000000000..37633799037
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/dal/show-data-types.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<sql-parser-test-cases>
+ <doris-show-data-types sql-case-id="show_data_types" />
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dal/show-data.xml
b/test/it/parser/src/main/resources/case/dal/show-data.xml
new file mode 100644
index 00000000000..68023dad352
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/dal/show-data.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<sql-parser-test-cases>
+ <doris-show-data sql-case-id="show_data" />
+
+ <doris-show-data sql-case-id="show_data_from_table">
+ <table name="table1" start-index="15" stop-index="20" />
+ </doris-show-data>
+
+ <doris-show-data sql-case-id="show_data_from_db_table">
+ <table name="table1" start-index="15" stop-index="24">
+ <owner name="db1" start-index="15" stop-index="17" />
+ </table>
+ </doris-show-data>
+
+ <doris-show-data sql-case-id="show_data_order_by">
+ <order-by>
+ <column-item name="ReplicaCount" order-direction="DESC"
start-index="19" stop-index="30" />
+ <column-item name="Size" order-direction="ASC" start-index="38"
stop-index="41" />
+ </order-by>
+ </doris-show-data>
+
+ <doris-show-data sql-case-id="show_data_from_table_order_by">
+ <table name="table1" start-index="15" stop-index="20" />
+ <order-by>
+ <column-item name="Size" order-direction="DESC" start-index="31"
stop-index="34" />
+ </order-by>
+ </doris-show-data>
+</sql-parser-test-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/dal/show-data-types.xml
b/test/it/parser/src/main/resources/sql/supported/dal/show-data-types.xml
new file mode 100644
index 00000000000..fe4f004adeb
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/dal/show-data-types.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<sql-cases>
+ <sql-case id="show_data_types" value="SHOW DATA TYPES;" db-types="Doris" />
+</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/show-data.xml
b/test/it/parser/src/main/resources/sql/supported/dal/show-data.xml
new file mode 100644
index 00000000000..c9612643780
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/dal/show-data.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<sql-cases>
+ <sql-case id="show_data" value="SHOW DATA;" db-types="Doris" />
+ <sql-case id="show_data_from_table" value="SHOW DATA FROM table1;"
db-types="Doris" />
+ <sql-case id="show_data_from_db_table" value="SHOW DATA FROM db1.table1;"
db-types="Doris" />
+ <sql-case id="show_data_order_by" value="SHOW DATA ORDER BY ReplicaCount
DESC, Size ASC;" db-types="Doris" />
+ <sql-case id="show_data_from_table_order_by" value="SHOW DATA FROM table1
ORDER BY Size DESC;" db-types="Doris" />
+</sql-cases>