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 ed2e726519c Refactor SQLRewriterIT.createDatabaseRules() (#35156) ed2e726519c is described below commit ed2e726519ce03e145014ce8734669996637d429 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Thu Apr 10 11:55:10 2025 +0800 Refactor SQLRewriterIT.createDatabaseRules() (#35156) * Refactor SQLRewriterIT * Refactor SQLRewriterIT.createDatabaseRules() --- .../test/it/rewrite/engine/SQLRewriterIT.java | 21 +++++++++------------ .../engine/scenario/EncryptSQLRewriterIT.java | 2 +- .../rewrite/engine/scenario/MixSQLRewriterIT.java | 2 +- .../engine/scenario/ShardingSQLRewriterIT.java | 2 +- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java index f110cfb13e9..bdc60f951b6 100644 --- a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java +++ b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java @@ -31,7 +31,6 @@ import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry; import org.apache.shardingsphere.infra.hint.HintValueContext; import org.apache.shardingsphere.infra.hint.SQLHintUtils; -import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; import org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData; @@ -118,9 +117,8 @@ public abstract class SQLRewriterIT { String sql = SQLHintUtils.removeHint(testParams.getInputSQL()); SQLParserEngine sqlParserEngine = sqlParserRule.getSQLParserEngine(databaseType); SQLStatement sqlStatement = sqlParserEngine.parse(sql, false); - Collection<ShardingSphereRule> databaseRules = createDatabaseRules(databaseConfig, schemaName, sqlStatement, databaseType); - RuleMetaData databaseRuleMetaData = new RuleMetaData(databaseRules); - ShardingSphereDatabase database = new ShardingSphereDatabase(databaseName, databaseType, resourceMetaData, databaseRuleMetaData, mockSchemas(schemaName)); + Collection<ShardingSphereRule> rules = createDatabaseRules(databaseConfig, schemaName, sqlStatement, databaseType); + ShardingSphereDatabase database = new ShardingSphereDatabase(databaseName, databaseType, resourceMetaData, new RuleMetaData(rules), mockSchemas(schemaName)); RuleMetaData globalRuleMetaData = new RuleMetaData(createGlobalRules()); ShardingSphereMetaData metaData = new ShardingSphereMetaData(Collections.singleton(database), mock(), globalRuleMetaData, mock()); HintValueContext hintValueContext = SQLHintUtils.extractHint(testParams.getInputSQL()); @@ -134,7 +132,7 @@ public abstract class SQLRewriterIT { ConnectionContext connectionContext = createConnectionContext(database.getName()); QueryContext queryContext = new QueryContext(sqlStatementContext, sql, testParams.getInputParameters(), hintValueContext, connectionContext, metaData); ConfigurationProperties props = new ConfigurationProperties(rootConfig.getProps()); - RouteContext routeContext = new SQLRouteEngine(databaseRules, props).route(queryContext, globalRuleMetaData, database); + RouteContext routeContext = new SQLRouteEngine(rules, props).route(queryContext, globalRuleMetaData, database); SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(database, globalRuleMetaData, props); SQLRewriteResult sqlRewriteResult = sqlRewriteEntry.rewrite(queryContext, routeContext); return sqlRewriteResult instanceof GenericSQLRewriteResult @@ -149,11 +147,9 @@ public abstract class SQLRewriterIT { } private Collection<ShardingSphereRule> createDatabaseRules(final DatabaseConfiguration databaseConfig, final String schemaName, final SQLStatement sqlStatement, final DatabaseType databaseType) { - Collection<ShardingSphereRule> result = DatabaseRulesBuilder.build(DefaultDatabase.LOGIC_NAME, databaseType, databaseConfig, mock(ComputeNodeInstanceContext.class), - new ResourceMetaData(databaseConfig.getDataSources(), databaseConfig.getStorageUnits())); - mockRules(result, schemaName, sqlStatement); - result.add(sqlParserRule); - result.add(timestampServiceRule); + Collection<ShardingSphereRule> result = DatabaseRulesBuilder.build( + DefaultDatabase.LOGIC_NAME, databaseType, databaseConfig, mock(), new ResourceMetaData(databaseConfig.getDataSources(), databaseConfig.getStorageUnits())); + mockDatabaseRules(result, schemaName, sqlStatement); return result; } @@ -165,8 +161,9 @@ public abstract class SQLRewriterIT { private Collection<ShardingSphereRule> createGlobalRules() { Collection<ShardingSphereRule> result = new LinkedList<>(); + result.add(sqlParserRule); + result.add(timestampServiceRule); result.add(new SQLTranslatorRule(new DefaultSQLTranslatorRuleConfigurationBuilder().build())); - result.add(new TimestampServiceRule(mock(TimestampServiceRuleConfiguration.class))); return result; } @@ -177,7 +174,7 @@ public abstract class SQLRewriterIT { protected abstract Collection<ShardingSphereSchema> mockSchemas(String schemaName); - protected abstract void mockRules(Collection<ShardingSphereRule> rules, String schemaName, SQLStatement sqlStatement); + protected abstract void mockDatabaseRules(Collection<ShardingSphereRule> rules, String schemaName, SQLStatement sqlStatement); private static class TestCaseArgumentsProvider implements ArgumentsProvider { diff --git a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java index 9eed0395663..64383b98dfd 100644 --- a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java +++ b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java @@ -74,7 +74,7 @@ class EncryptSQLRewriterIT extends SQLRewriterIT { } @Override - protected void mockRules(final Collection<ShardingSphereRule> rules, final String schemaName, final SQLStatement sqlStatement) { + protected void mockDatabaseRules(final Collection<ShardingSphereRule> rules, final String schemaName, final SQLStatement sqlStatement) { Optional<SingleRule> singleRule = rules.stream().filter(SingleRule.class::isInstance).map(SingleRule.class::cast).findFirst(); if (singleRule.isPresent() && !(sqlStatement instanceof CreateTableStatement)) { singleRule.get().getAttributes().getAttribute(MutableDataNodeRuleAttribute.class).put("encrypt_ds", schemaName, "t_account"); diff --git a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java index 4083f88ea6d..96fc65a9f52 100644 --- a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java +++ b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java @@ -58,6 +58,6 @@ class MixSQLRewriterIT extends SQLRewriterIT { } @Override - protected void mockRules(final Collection<ShardingSphereRule> rules, final String schemaName, final SQLStatement sqlStatement) { + protected void mockDatabaseRules(final Collection<ShardingSphereRule> rules, final String schemaName, final SQLStatement sqlStatement) { } } diff --git a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java index 1891af7ab16..489377801cb 100644 --- a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java +++ b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java @@ -40,7 +40,7 @@ import java.util.Optional; class ShardingSQLRewriterIT extends SQLRewriterIT { @Override - protected void mockRules(final Collection<ShardingSphereRule> rules, final String schemaName, final SQLStatement sqlStatement) { + protected void mockDatabaseRules(final Collection<ShardingSphereRule> rules, final String schemaName, final SQLStatement sqlStatement) { Optional<SingleRule> singleRule = rules.stream().filter(SingleRule.class::isInstance).map(SingleRule.class::cast).findFirst(); if (singleRule.isPresent() && !(sqlStatement instanceof CreateTableStatement)) { singleRule.get().getAttributes().getAttribute(MutableDataNodeRuleAttribute.class).put("db", schemaName, "t_single");