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);

Reply via email to