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 6923bf2d397 Refactor FederationMetaDataRefresher (#34448)
6923bf2d397 is described below
commit 6923bf2d3979fb64140088675a878513888f9f0b
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jan 23 21:35:50 2025 +0800
Refactor FederationMetaDataRefresher (#34448)
---
.../refresher/federation/FederationMetaDataRefresher.java | 4 +---
.../type/AlterViewFederationMetaDataRefresher.java | 6 ++----
.../type/CreateViewFederationMetaDataRefresher.java | 6 ++----
.../federation/type/DropViewFederationMetaDataRefresher.java | 12 +++++-------
.../metadata/refresher/metadata/MetaDataRefreshEngine.java | 4 ++--
5 files changed, 12 insertions(+), 20 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefresher.java
index 4c49c90eef5..fc3a558fa94 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefresher.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.mode.metadata.refresher.federation;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
@@ -38,10 +37,9 @@ public interface FederationMetaDataRefresher<T extends
SQLStatement> extends Typ
* @param metaDataManagerPersistService meta data manager persist service
* @param database database
* @param schemaName schema name
- * @param databaseType database type
* @param sqlStatement SQL statement
*/
- void refresh(MetaDataManagerPersistService metaDataManagerPersistService,
ShardingSphereDatabase database, String schemaName, DatabaseType databaseType,
T sqlStatement);
+ void refresh(MetaDataManagerPersistService metaDataManagerPersistService,
ShardingSphereDatabase database, String schemaName, T sqlStatement);
@Override
Class<T> getType();
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
index 4148bc161c8..2617b54ba5b 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.mode.metadata.refresher.federation.type;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
@@ -35,9 +34,8 @@ import java.util.Optional;
public final class AlterViewFederationMetaDataRefresher implements
FederationMetaDataRefresher<AlterViewStatement> {
@Override
- public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName,
- final DatabaseType databaseType, final
AlterViewStatement sqlStatement) {
- String viewName = TableRefreshUtils.getTableName(databaseType,
sqlStatement.getView().getTableName().getIdentifier());
+ public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName, final AlterViewStatement sqlStatement) {
+ String viewName =
TableRefreshUtils.getTableName(sqlStatement.getDatabaseType(),
sqlStatement.getView().getTableName().getIdentifier());
AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
Optional<SimpleTableSegment> renameView = sqlStatement.getRenameView();
if (renameView.isPresent()) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
index d91bd67a6dc..909997b609e 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.mode.metadata.refresher.federation.type;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
@@ -32,9 +31,8 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateV
public final class CreateViewFederationMetaDataRefresher implements
FederationMetaDataRefresher<CreateViewStatement> {
@Override
- public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName,
- final DatabaseType databaseType, final
CreateViewStatement sqlStatement) {
- String viewName = TableRefreshUtils.getTableName(databaseType,
sqlStatement.getView().getTableName().getIdentifier());
+ public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName, final CreateViewStatement sqlStatement) {
+ String viewName =
TableRefreshUtils.getTableName(sqlStatement.getDatabaseType(),
sqlStatement.getView().getTableName().getIdentifier());
AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
alterSchemaMetaDataPOJO.getAlteredViews().add(new
ShardingSphereView(viewName, sqlStatement.getViewDefinition()));
metaDataManagerPersistService.alterSchemaMetaData(alterSchemaMetaDataPOJO);
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
index f1e34b0c1aa..0865124f23e 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
@@ -17,11 +17,11 @@
package org.apache.shardingsphere.mode.metadata.refresher.federation.type;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.mode.metadata.refresher.federation.FederationMetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
+import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
/**
@@ -30,13 +30,11 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropVie
public final class DropViewFederationMetaDataRefresher implements
FederationMetaDataRefresher<DropViewStatement> {
@Override
- public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database,
- final String schemaName, final DatabaseType
databaseType, final DropViewStatement sqlStatement) {
+ public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName, final DropViewStatement sqlStatement) {
AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
- sqlStatement.getViews().forEach(each -> {
- String viewName = each.getTableName().getIdentifier().getValue();
- alterSchemaMetaDataPOJO.getDroppedViews().add(viewName);
- });
+ for (SimpleTableSegment each : sqlStatement.getViews()) {
+
alterSchemaMetaDataPOJO.getDroppedViews().add(each.getTableName().getIdentifier().getValue());
+ }
metaDataManagerPersistService.alterSchemaMetaData(alterSchemaMetaDataPOJO);
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/MetaDataRefreshEngine.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/MetaDataRefreshEngine.java
index ad519d82b9c..6992bee591b 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/MetaDataRefreshEngine.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/MetaDataRefreshEngine.java
@@ -97,8 +97,8 @@ public final class MetaDataRefreshEngine {
*/
@SuppressWarnings("unchecked")
public void refresh(final SQLStatementContext sqlStatementContext) {
- getFederationMetaDataRefresher(sqlStatementContext).ifPresent(optional
-> optional.refresh(
- metaDataManagerPersistService, database,
getSchemaName(sqlStatementContext), sqlStatementContext.getDatabaseType(),
sqlStatementContext.getSqlStatement()));
+ getFederationMetaDataRefresher(sqlStatementContext).ifPresent(
+ optional -> optional.refresh(metaDataManagerPersistService,
database, getSchemaName(sqlStatementContext),
sqlStatementContext.getSqlStatement()));
}
private String getSchemaName(final SQLStatementContext
sqlStatementContext) {