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

panjuan 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 ae12d153e51 Refactor ShowPluginsExecutor (#30090)
ae12d153e51 is described below

commit ae12d153e51dbf2540540ee3fb4449e7328a3606
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 11 19:26:42 2024 +0800

    Refactor ShowPluginsExecutor (#30090)
---
 .../query/ShowEncryptAlgorithmPluginsResultRowBuilder.java |  4 ++--
 .../query/ShowMaskAlgorithmPluginsResultRowBuilder.java    |  5 +++--
 ...adQueryLoadBalanceAlgorithmPluginsResultRowBuilder.java |  4 ++--
 .../query/ShowShadowAlgorithmPluginsResultRowBuilder.java  |  4 ++--
 .../ShowShardingAlgorithmPluginsResultRowBuilder.java      |  4 ++--
 .../query/ral/plugin/PluginMetaDataQueryResultRows.java    | 14 --------------
 .../handler/executor/ral/plugin/ShowPluginsExecutor.java   |  7 ++++++-
 .../executor/ral/plugin/ShowPluginsResultRowBuilder.java   |  8 ++++----
 .../ShowKeyGenerateAlgorithmPluginsResultRowBuilder.java   |  4 ++--
 .../query/ShowMigrationCheckAlgorithmsExecutor.java        |  3 ++-
 .../ral/queryable/ShowCommonPluginsResultRowBuilder.java   |  6 ++----
 11 files changed, 27 insertions(+), 36 deletions(-)

diff --git 
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptAlgorithmPluginsResultRowBuilder.java
 
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptAlgorithmPluginsResultRowBuilder.java
index e76f4bc17e2..d81568a9c99 100644
--- 
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptAlgorithmPluginsResultRowBuilder.java
+++ 
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/ShowEncryptAlgorithmPluginsResultRowBuilder.java
@@ -38,8 +38,8 @@ public final class 
ShowEncryptAlgorithmPluginsResultRowBuilder implements ShowPl
     }
     
     @Override
-    public Collection<String> getColumnNames() {
-        return pluginMetaDataQueryResultRows.getColumnNames();
+    public Class<EncryptAlgorithm> getPluginClass() {
+        return EncryptAlgorithm.class;
     }
     
     @Override
diff --git 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskAlgorithmPluginsResultRowBuilder.java
 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskAlgorithmPluginsResultRowBuilder.java
index cf70add495b..d421806e07c 100644
--- 
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskAlgorithmPluginsResultRowBuilder.java
+++ 
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/query/ShowMaskAlgorithmPluginsResultRowBuilder.java
@@ -37,9 +37,10 @@ public final class ShowMaskAlgorithmPluginsResultRowBuilder 
implements ShowPlugi
         return pluginMetaDataQueryResultRows.getRows();
     }
     
+    @SuppressWarnings("rawtypes")
     @Override
-    public Collection<String> getColumnNames() {
-        return pluginMetaDataQueryResultRows.getColumnNames();
+    public Class<MaskAlgorithm> getPluginClass() {
+        return MaskAlgorithm.class;
     }
     
     @Override
diff --git 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadQueryLoadBalanceAlgorithmPluginsResultRowBuilder.java
 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadQueryLoadBalanceAlgorithmPluginsResultRowBuilder.java
index e5d62d8abd7..82de3dd8e1f 100644
--- 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadQueryLoadBalanceAlgorithmPluginsResultRowBuilder.java
+++ 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/query/ShowReadQueryLoadBalanceAlgorithmPluginsResultRowBuilder.java
@@ -38,8 +38,8 @@ public final class 
ShowReadQueryLoadBalanceAlgorithmPluginsResultRowBuilder impl
     }
     
     @Override
-    public Collection<String> getColumnNames() {
-        return pluginMetaDataQueryResultRows.getColumnNames();
+    public Class<ReadQueryLoadBalanceAlgorithm> getPluginClass() {
+        return ReadQueryLoadBalanceAlgorithm.class;
     }
     
     @Override
diff --git 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowAlgorithmPluginsResultRowBuilder.java
 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowAlgorithmPluginsResultRowBuilder.java
index b87e7d1683e..bd40b1d2608 100644
--- 
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowAlgorithmPluginsResultRowBuilder.java
+++ 
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowAlgorithmPluginsResultRowBuilder.java
@@ -38,8 +38,8 @@ public final class ShowShadowAlgorithmPluginsResultRowBuilder 
implements ShowPlu
     }
     
     @Override
-    public Collection<String> getColumnNames() {
-        return pluginMetaDataQueryResultRows.getColumnNames();
+    public Class<ShadowAlgorithm> getPluginClass() {
+        return ShadowAlgorithm.class;
     }
     
     @Override
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingAlgorithmPluginsResultRowBuilder.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingAlgorithmPluginsResultRowBuilder.java
index 0df9fe04790..c47a38916fc 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingAlgorithmPluginsResultRowBuilder.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingAlgorithmPluginsResultRowBuilder.java
@@ -38,8 +38,8 @@ public final class 
ShowShardingAlgorithmPluginsResultRowBuilder implements ShowP
     }
     
     @Override
-    public Collection<String> getColumnNames() {
-        return pluginMetaDataQueryResultRows.getColumnNames();
+    public Class<ShardingAlgorithm> getPluginClass() {
+        return ShardingAlgorithm.class;
     }
     
     @Override
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/ral/plugin/PluginMetaDataQueryResultRows.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/ral/plugin/PluginMetaDataQueryResultRows.java
index 8d083652217..c5b3f5bf487 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/ral/plugin/PluginMetaDataQueryResultRows.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/query/ral/plugin/PluginMetaDataQueryResultRows.java
@@ -17,12 +17,10 @@
 
 package org.apache.shardingsphere.distsql.handler.engine.query.ral.plugin;
 
-import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseSupportedTypedSPI;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
 
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.stream.Collectors;
 
@@ -31,24 +29,12 @@ import java.util.stream.Collectors;
  */
 public final class PluginMetaDataQueryResultRows {
     
-    private final boolean containsDatabaseTypes;
-    
     private final Collection<PluginMetaDataQueryResultRow> rows;
     
     public PluginMetaDataQueryResultRows(final Class<? extends TypedSPI> 
pluginClass) {
-        containsDatabaseTypes = 
DatabaseSupportedTypedSPI.class.isAssignableFrom(pluginClass);
         rows = 
ShardingSphereServiceLoader.getServiceInstances(pluginClass).stream().map(PluginMetaDataQueryResultRow::new).collect(Collectors.toList());
     }
     
-    /**
-     * Get column names.
-     *
-     * @return column names
-     */
-    public Collection<String> getColumnNames() {
-        return containsDatabaseTypes ? Arrays.asList("type", "type_aliases", 
"supported_database_types", "description") : Arrays.asList("type", 
"type_aliases", "description");
-    }
-    
     /**
      * Get rows.
      * 
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsExecutor.java
index a64f86194c5..de0bad0b1fd 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsExecutor.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.distsql.handler.executor.ral.plugin;
 
 import 
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor;
 import 
org.apache.shardingsphere.distsql.statement.ral.queryable.show.ShowPluginsStatement;
+import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseSupportedTypedSPI;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -26,6 +27,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Optional;
 
 /**
  * Show plugins executor.
@@ -34,7 +36,10 @@ public final class ShowPluginsExecutor implements 
DistSQLQueryExecutor<ShowPlugi
     
     @Override
     public Collection<String> getColumnNames(final ShowPluginsStatement 
sqlStatement) {
-        return Arrays.asList("type", "type_aliases", "description");
+        Optional<ShowPluginsResultRowBuilder> rowBuilder = 
TypedSPILoader.findService(ShowPluginsResultRowBuilder.class, 
sqlStatement.getType());
+        return rowBuilder.isPresent() && 
DatabaseSupportedTypedSPI.class.isAssignableFrom(rowBuilder.get().getPluginClass())
+                ? Arrays.asList("type", "type_aliases", 
"supported_database_types", "description")
+                : Arrays.asList("type", "type_aliases", "description");
     }
     
     @Override
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsResultRowBuilder.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsResultRowBuilder.java
index d624f456d21..1d1e0422321 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsResultRowBuilder.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsResultRowBuilder.java
@@ -39,11 +39,11 @@ public interface ShowPluginsResultRowBuilder extends 
TypedSPI {
     Collection<LocalDataQueryResultRow> generateRows(ShowPluginsStatement 
sqlStatement);
     
     /**
-     * Get column names.
-     *
-     * @return column names
+     * Get plugin class.
+     * 
+     * @return plugin class
      */
-    Collection<String> getColumnNames();
+    Class<? extends TypedSPI> getPluginClass();
     
     @Override
     String getType();
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/type/ShowKeyGenerateAlgorithmPluginsResultRowBuilder.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/type/ShowKeyGenerateAlgorithmPluginsResultRowBuilder.java
index bc701fb9a2f..79c4315048a 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/type/ShowKeyGenerateAlgorithmPluginsResultRowBuilder.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/type/ShowKeyGenerateAlgorithmPluginsResultRowBuilder.java
@@ -38,8 +38,8 @@ public final class 
ShowKeyGenerateAlgorithmPluginsResultRowBuilder implements Sh
     }
     
     @Override
-    public Collection<String> getColumnNames() {
-        return pluginMetaDataQueryResultRows.getColumnNames();
+    public Class<KeyGenerateAlgorithm> getPluginClass() {
+        return KeyGenerateAlgorithm.class;
     }
     
     @Override
diff --git 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/query/ShowMigrationCheckAlgorithmsExecutor.java
 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/query/ShowMigrationCheckAlgorithmsExecutor.java
index 5b54afcad3d..e4c5fd03916 100644
--- 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/query/ShowMigrationCheckAlgorithmsExecutor.java
+++ 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/query/ShowMigrationCheckAlgorithmsExecutor.java
@@ -24,6 +24,7 @@ import 
org.apache.shardingsphere.distsql.handler.engine.query.ral.plugin.PluginM
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 
+import java.util.Arrays;
 import java.util.Collection;
 
 /**
@@ -33,7 +34,7 @@ public final class ShowMigrationCheckAlgorithmsExecutor 
implements DistSQLQueryE
     
     @Override
     public Collection<String> getColumnNames(final 
ShowMigrationCheckAlgorithmsStatement sqlStatement) {
-        return new 
PluginMetaDataQueryResultRows(TableDataConsistencyChecker.class).getColumnNames();
+        return Arrays.asList("type", "type_aliases", 
"supported_database_types", "description");
     }
     
     @Override
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowCommonPluginsResultRowBuilder.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowCommonPluginsResultRowBuilder.java
index df98b9b61b0..9a4f52ca6a4 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowCommonPluginsResultRowBuilder.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowCommonPluginsResultRowBuilder.java
@@ -25,7 +25,6 @@ import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePrecondition
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
 
-import java.util.Arrays;
 import java.util.Collection;
 
 /**
@@ -50,9 +49,8 @@ public final class ShowCommonPluginsResultRowBuilder 
implements ShowPluginsResul
     }
     
     @Override
-    public Collection<String> getColumnNames() {
-        // TODO change to pluginMetaDataQueryResultRows.getColumnNames after 
adding SQL statement as param for this method
-        return Arrays.asList("type", "type_aliases", "description");
+    public Class<TypedSPI> getPluginClass() {
+        return TypedSPI.class;
     }
     
     @Override

Reply via email to