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