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 f4e04850cef Refactor ExplainStatementBinder (#35669)
f4e04850cef is described below
commit f4e04850cef8540a533b31eae830a379c4e9331f
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Jun 11 12:06:50 2025 +0800
Refactor ExplainStatementBinder (#35669)
---
.../binder/engine/statement/dal/ExplainStatementBinder.java | 13 ++-----------
.../infra/binder/engine/type/DALStatementBindEngine.java | 2 +-
2 files changed, 3 insertions(+), 12 deletions(-)
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dal/ExplainStatementBinder.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dal/ExplainStatementBinder.java
index 0038f1d2859..10c105a501e 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dal/ExplainStatementBinder.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dal/ExplainStatementBinder.java
@@ -17,13 +17,10 @@
package org.apache.shardingsphere.infra.binder.engine.statement.dal;
-import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder;
import
org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext;
import
org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementCopyUtils;
import
org.apache.shardingsphere.infra.binder.engine.type.DMLStatementBindEngine;
-import org.apache.shardingsphere.infra.hint.HintValueContext;
-import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ExplainStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DMLStatement;
@@ -31,21 +28,15 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DMLStat
/**
* Explain statement binder.
*/
-@RequiredArgsConstructor
public final class ExplainStatementBinder implements
SQLStatementBinder<ExplainStatement> {
- private final ShardingSphereMetaData metaData;
-
- private final String currentDatabaseName;
-
- private final HintValueContext hintValueContext;
-
@Override
public ExplainStatement bind(final ExplainStatement sqlStatement, final
SQLStatementBinderContext binderContext) {
ExplainStatement result = copy(sqlStatement);
SQLStatement explainSQLStatement = sqlStatement.getSqlStatement();
SQLStatement boundSQLStatement = explainSQLStatement instanceof
DMLStatement
- ? new DMLStatementBindEngine(metaData, currentDatabaseName,
hintValueContext, binderContext.getDatabaseType()).bind((DMLStatement)
explainSQLStatement)
+ ? new DMLStatementBindEngine(binderContext.getMetaData(),
+ binderContext.getCurrentDatabaseName(),
binderContext.getHintValueContext(),
binderContext.getDatabaseType()).bind((DMLStatement) explainSQLStatement)
: explainSQLStatement;
result.setSqlStatement(boundSQLStatement);
return result;
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DALStatementBindEngine.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DALStatementBindEngine.java
index e654342af2c..9b5ff93c5e2 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DALStatementBindEngine.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DALStatementBindEngine.java
@@ -69,7 +69,7 @@ public final class DALStatementBindEngine {
return new ShowIndexStatementBinder().bind((ShowIndexStatement)
statement, binderContext);
}
if (statement instanceof ExplainStatement) {
- return new ExplainStatementBinder(metaData, currentDatabaseName,
hintValueContext).bind((ExplainStatement) statement, binderContext);
+ return new ExplainStatementBinder().bind((ExplainStatement)
statement, binderContext);
}
return statement;
}