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 336b491f980 Remove MetaDataRefreshEngine.DDL_STATEMENT_CLASSES (#34451)
336b491f980 is described below
commit 336b491f98032ed55468f88fc9e32871b7a074c2
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jan 23 22:12:23 2025 +0800
Remove MetaDataRefreshEngine.DDL_STATEMENT_CLASSES (#34451)
* Remove MetaDataRefreshEngine.DDL_STATEMENT_CLASSES
* Remove MetaDataRefreshEngine.DDL_STATEMENT_CLASSES
---
.../DriverJDBCPushDownExecuteUpdateExecutor.java | 2 +-
.../refresher/metadata/MetaDataRefreshEngine.java | 26 ++--------------------
2 files changed, 3 insertions(+), 25 deletions(-)
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
index db4d9671ed3..7a0eeb82eb3 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
@@ -109,7 +109,7 @@ public final class DriverJDBCPushDownExecuteUpdateExecutor {
.newInstance(database,
executionContext.getSqlStatementContext().getSqlStatement(), updateCallback);
List<Integer> updateCounts =
jdbcExecutor.execute(executionGroupContext, callback);
MetaDataRefreshEngine metaDataRefreshEngine = new
MetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(),
database, props);
- if
(metaDataRefreshEngine.isNeedRefreshMetaData(executionContext.getSqlStatementContext()))
{
+ if
(metaDataRefreshEngine.isNeedRefresh(executionContext.getSqlStatementContext()))
{
if
(isNeedImplicitCommit(executionContext.getSqlStatementContext())) {
connection.commit();
}
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 30bde2fee73..c0f0eeb2064 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
@@ -29,23 +29,8 @@ import
org.apache.shardingsphere.infra.route.context.RouteUnit;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.federation.FederationMetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterIndexStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTableStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterViewStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateIndexStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateSchemaStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateViewStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DDLStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropIndexStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropSchemaStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
-import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RenameTableStatement;
import java.sql.SQLException;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Objects;
import java.util.Optional;
@@ -57,10 +42,6 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public final class MetaDataRefreshEngine {
- private static final Collection<Class<? extends DDLStatement>>
DDL_STATEMENT_CLASSES = Arrays.asList(CreateTableStatement.class,
AlterTableStatement.class, DropTableStatement.class,
- CreateViewStatement.class, AlterViewStatement.class,
DropViewStatement.class, CreateIndexStatement.class, AlterIndexStatement.class,
DropIndexStatement.class, CreateSchemaStatement.class,
- AlterSchemaStatement.class, DropSchemaStatement.class,
RenameTableStatement.class);
-
private final MetaDataManagerPersistService metaDataManagerPersistService;
private final ShardingSphereDatabase database;
@@ -73,9 +54,9 @@ public final class MetaDataRefreshEngine {
* @param sqlStatementContext SQL statement context
* @return is need refresh meta data or not
*/
- public boolean isNeedRefreshMetaData(final SQLStatementContext
sqlStatementContext) {
+ public boolean isNeedRefresh(final SQLStatementContext
sqlStatementContext) {
Class<?> sqlStatementClass =
sqlStatementContext.getSqlStatement().getClass().getSuperclass();
- return DDL_STATEMENT_CLASSES.contains(sqlStatementClass);
+ return TypedSPILoader.findService(MetaDataRefresher.class,
sqlStatementClass).isPresent();
}
/**
@@ -87,9 +68,6 @@ public final class MetaDataRefreshEngine {
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public void refresh(final SQLStatementContext sqlStatementContext, final
Collection<RouteUnit> routeUnits) throws SQLException {
- if (!isNeedRefreshMetaData(sqlStatementContext)) {
- return;
- }
Class<?> sqlStatementClass =
sqlStatementContext.getSqlStatement().getClass().getSuperclass();
Optional<MetaDataRefresher> metaDataRefresher =
TypedSPILoader.findService(MetaDataRefresher.class, sqlStatementClass);
if (!metaDataRefresher.isPresent()) {