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 3518488ab2f Refactor SQLRewriterIT.bind() (#35161) 3518488ab2f is described below commit 3518488ab2f2c16b2dc750109b412ad43167d726 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Thu Apr 10 23:14:34 2025 +0800 Refactor SQLRewriterIT.bind() (#35161) --- .../test/it/rewrite/engine/SQLRewriterIT.java | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 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 fd00be95486..ad9a879af8f 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 @@ -112,13 +112,7 @@ public abstract class SQLRewriterIT { RuleMetaData globalRuleMetaData = new RuleMetaData(GlobalRulesBuilder.buildRules(Collections.emptyList(), Collections.emptyList(), new ConfigurationProperties(new Properties()))); ShardingSphereMetaData metaData = new ShardingSphereMetaData(Collections.singleton(database), mock(), globalRuleMetaData, mock()); HintValueContext hintValueContext = SQLHintUtils.extractHint(testParams.getInputSQL()); - SQLStatementContext sqlStatementContext = new SQLBindEngine(metaData, databaseName, hintValueContext).bind(sqlStatement, Collections.emptyList()); - if (sqlStatementContext instanceof ParameterAware) { - ((ParameterAware) sqlStatementContext).setUpParameters(testParams.getInputParameters()); - } - if (sqlStatementContext instanceof CursorAware) { - ((CursorAware) sqlStatementContext).setCursorStatementContext(createCursorDefinition(databaseName, metaData, sqlParserEngine)); - } + SQLStatementContext sqlStatementContext = bind(testParams, metaData, databaseName, hintValueContext, sqlStatement, sqlParserEngine); ConnectionContext connectionContext = createConnectionContext(database.getName()); QueryContext queryContext = new QueryContext(sqlStatementContext, sql, testParams.getInputParameters(), hintValueContext, connectionContext, metaData); ConfigurationProperties props = new ConfigurationProperties(rootConfig.getProps()); @@ -143,9 +137,15 @@ public abstract class SQLRewriterIT { return result; } - private ConnectionContext createConnectionContext(final String databaseName) { - ConnectionContext result = new ConnectionContext(() -> Collections.singleton("foo_ds")); - result.setCurrentDatabaseName(databaseName); + private SQLStatementContext bind(final SQLRewriteEngineTestParameters testParams, final ShardingSphereMetaData metaData, + final String databaseName, final HintValueContext hintValueContext, final SQLStatement sqlStatement, final SQLParserEngine sqlParserEngine) { + SQLStatementContext result = new SQLBindEngine(metaData, databaseName, hintValueContext).bind(sqlStatement, Collections.emptyList()); + if (result instanceof ParameterAware) { + ((ParameterAware) result).setUpParameters(testParams.getInputParameters()); + } + if (result instanceof CursorAware) { + ((CursorAware) result).setCursorStatementContext(createCursorDefinition(databaseName, metaData, sqlParserEngine)); + } return result; } @@ -154,6 +154,12 @@ public abstract class SQLRewriterIT { return (CursorStatementContext) new SQLBindEngine(metaData, schemaName, new HintValueContext()).bind(sqlStatement, Collections.emptyList()); } + private ConnectionContext createConnectionContext(final String databaseName) { + ConnectionContext result = new ConnectionContext(() -> Collections.singleton("foo_ds")); + result.setCurrentDatabaseName(databaseName); + return result; + } + protected abstract Collection<ShardingSphereSchema> mockSchemas(String schemaName); protected abstract void mockDatabaseRules(Collection<ShardingSphereRule> rules, String schemaName, SQLStatement sqlStatement);