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 620e8c93ab3 Refactor MySQLShowCreateDatabaseExecutor (#36860)
620e8c93ab3 is described below
commit 620e8c93ab3664d7cd20a6466e0b3cc6fa113246
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Oct 12 22:49:14 2025 +0800
Refactor MySQLShowCreateDatabaseExecutor (#36860)
---
.../raw/metadata/RawQueryResultColumnMetaData.java | 11 +--------
.../show/MySQLShowCreateDatabaseExecutor.java | 28 +++++++++-------------
.../executor/show/MySQLShowDatabasesExecutor.java | 6 ++---
.../show/MySQLShowFunctionStatusExecutor.java | 2 +-
.../show/MySQLShowProcedureStatusExecutor.java | 2 +-
5 files changed, 17 insertions(+), 32 deletions(-)
diff --git
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/raw/metadata/RawQueryResultColumnMetaData.java
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/raw/metadata/RawQueryResultColumnMetaData.java
index a6e4834f071..c769e363d30 100644
---
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/raw/metadata/RawQueryResultColumnMetaData.java
+++
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/raw/metadata/RawQueryResultColumnMetaData.java
@@ -48,15 +48,6 @@ public final class RawQueryResultColumnMetaData {
private final boolean autoIncrement;
public RawQueryResultColumnMetaData(final String tableName, final String
name, final String label, final int type, final String typeName, final int
length, final int decimals) {
- this.tableName = tableName;
- this.name = name;
- this.label = label;
- this.type = type;
- this.typeName = typeName;
- this.length = length;
- this.decimals = decimals;
- signed = false;
- notNull = false;
- autoIncrement = false;
+ this(tableName, name, label, type, typeName, length, decimals, false,
false, false);
}
}
diff --git
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowCreateDatabaseExecutor.java
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowCreateDatabaseExecutor.java
index f06be0250ad..10e7e3236a3 100644
---
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowCreateDatabaseExecutor.java
+++
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowCreateDatabaseExecutor.java
@@ -46,13 +46,7 @@ import java.util.List;
@Getter
public final class MySQLShowCreateDatabaseExecutor implements
DatabaseAdminQueryExecutor {
- private static final String CREATE_DATABASE_PATTERN = "CREATE DATABASE
`%s`;";
-
- private static final String DATABASE = "Database";
-
- private static final String CREATE_DATABASE = "CREATE DATABASE ";
-
- private final MySQLShowCreateDatabaseStatement showCreateDatabaseStatement;
+ private final MySQLShowCreateDatabaseStatement sqlStatement;
private QueryResultMetaData queryResultMetaData;
@@ -61,19 +55,19 @@ public final class MySQLShowCreateDatabaseExecutor
implements DatabaseAdminQuery
@Override
public void execute(final ConnectionSession connectionSession, final
ShardingSphereMetaData metaData) {
queryResultMetaData = createQueryResultMetaData();
- mergedResult = new
TransparentMergedResult(getQueryResult(showCreateDatabaseStatement.getDatabaseName(),
metaData));
- }
-
- private QueryResult getQueryResult(final String databaseName, final
ShardingSphereMetaData metaData) {
-
ShardingSpherePreconditions.checkState(metaData.containsDatabase(databaseName),
- () -> new UnknownDatabaseException(databaseName));
- List<MemoryQueryResultDataRow> rows = Collections.singletonList(new
MemoryQueryResultDataRow(Arrays.asList(databaseName,
String.format(CREATE_DATABASE_PATTERN, databaseName))));
- return new RawMemoryQueryResult(queryResultMetaData, rows);
+ mergedResult = new
TransparentMergedResult(getQueryResult(sqlStatement.getDatabaseName(),
metaData));
}
private QueryResultMetaData createQueryResultMetaData() {
- List<RawQueryResultColumnMetaData> columnMetaData = Arrays.asList(new
RawQueryResultColumnMetaData("", DATABASE, DATABASE, Types.VARCHAR, "VARCHAR",
255, 0),
- new RawQueryResultColumnMetaData("", CREATE_DATABASE,
CREATE_DATABASE, Types.VARCHAR, "VARCHAR", 255, 0));
+ List<RawQueryResultColumnMetaData> columnMetaData = Arrays.asList(
+ new RawQueryResultColumnMetaData("", "Database", "Database",
Types.VARCHAR, "VARCHAR", 255, 0),
+ new RawQueryResultColumnMetaData("", "Create Database",
"Create Database", Types.VARCHAR, "VARCHAR", 255, 0));
return new RawQueryResultMetaData(columnMetaData);
}
+
+ private QueryResult getQueryResult(final String databaseName, final
ShardingSphereMetaData metaData) {
+
ShardingSpherePreconditions.checkState(metaData.containsDatabase(databaseName),
() -> new UnknownDatabaseException(databaseName));
+ List<MemoryQueryResultDataRow> rows = Collections.singletonList(new
MemoryQueryResultDataRow(Arrays.asList(databaseName, String.format("CREATE
DATABASE `%s`;", databaseName))));
+ return new RawMemoryQueryResult(queryResultMetaData, rows);
+ }
}
diff --git
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowDatabasesExecutor.java
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowDatabasesExecutor.java
index 33fb87c1f43..cc712512356 100644
---
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowDatabasesExecutor.java
+++
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowDatabasesExecutor.java
@@ -47,7 +47,7 @@ import java.util.stream.Collectors;
@Getter
public final class MySQLShowDatabasesExecutor implements
DatabaseAdminQueryExecutor {
- private final MySQLShowDatabasesStatement showDatabasesStatement;
+ private final MySQLShowDatabasesStatement sqlStatement;
private MergedResult mergedResult;
@@ -64,8 +64,8 @@ public final class MySQLShowDatabasesExecutor implements
DatabaseAdminQueryExecu
}
private boolean checkLikePattern(final String databaseName) {
- if (showDatabasesStatement.getFilter().isPresent()) {
- Optional<String> pattern =
showDatabasesStatement.getFilter().get().getLike().map(optional ->
RegexUtils.convertLikePatternToRegex(optional.getPattern()));
+ if (sqlStatement.getFilter().isPresent()) {
+ Optional<String> pattern =
sqlStatement.getFilter().get().getLike().map(optional ->
RegexUtils.convertLikePatternToRegex(optional.getPattern()));
return !pattern.isPresent() || databaseName.matches(pattern.get());
}
return true;
diff --git
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowFunctionStatusExecutor.java
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowFunctionStatusExecutor.java
index 4721502e824..15a1f217c21 100644
---
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowFunctionStatusExecutor.java
+++
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowFunctionStatusExecutor.java
@@ -43,7 +43,7 @@ import java.util.List;
@Getter
public final class MySQLShowFunctionStatusExecutor implements
DatabaseAdminQueryExecutor {
- private final MySQLShowFunctionStatusStatement showFunctionStatusStatement;
+ private final MySQLShowFunctionStatusStatement sqlStatement;
private QueryResultMetaData queryResultMetaData;
diff --git
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowProcedureStatusExecutor.java
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowProcedureStatusExecutor.java
index eb46c33b8c5..a223ed1f8e4 100644
---
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowProcedureStatusExecutor.java
+++
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/show/MySQLShowProcedureStatusExecutor.java
@@ -43,7 +43,7 @@ import java.util.List;
@Getter
public final class MySQLShowProcedureStatusExecutor implements
DatabaseAdminQueryExecutor {
- private final MySQLShowProcedureStatusStatement
showProcedureStatusStatement;
+ private final MySQLShowProcedureStatusStatement sqlStatement;
private QueryResultMetaData queryResultMetaData;