This is an automated email from the ASF dual-hosted git repository.

panjuan 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 853c5e9e583 Refactor SQLStatementVisitorEngine (#27337)
853c5e9e583 is described below

commit 853c5e9e583c51495b15418a969bd4502b091f76
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 20 20:33:14 2023 +0800

    Refactor SQLStatementVisitorEngine (#27337)
---
 .../shardingsphere/sql/parser/api/SQLStatementVisitorEngine.java  | 8 +++++++-
 .../parser/core/database/visitor/SQLStatementVisitorFactory.java  | 5 ++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git 
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLStatementVisitorEngine.java
 
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLStatementVisitorEngine.java
index a8bfc6bc5f4..ed75568fd71 100644
--- 
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLStatementVisitorEngine.java
+++ 
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLStatementVisitorEngine.java
@@ -19,6 +19,8 @@ package org.apache.shardingsphere.sql.parser.api;
 
 import lombok.RequiredArgsConstructor;
 import org.antlr.v4.runtime.Token;
+import org.apache.shardingsphere.infra.database.spi.DatabaseType;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.sql.parser.api.visitor.statement.SQLStatementVisitor;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 import 
org.apache.shardingsphere.sql.parser.core.database.visitor.SQLStatementVisitorFactory;
@@ -33,10 +35,14 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 @RequiredArgsConstructor
 public final class SQLStatementVisitorEngine {
     
-    private final String databaseType;
+    private final DatabaseType databaseType;
     
     private final boolean isParseComment;
     
+    public SQLStatementVisitorEngine(final String databaseType, final boolean 
isParseComment) {
+        this(TypedSPILoader.getService(DatabaseType.class, databaseType), 
isParseComment);
+    }
+    
     /**
      * Visit parse context.
      *
diff --git 
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLStatementVisitorFactory.java
 
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLStatementVisitorFactory.java
index 47eee29566e..3e8314fb9eb 100644
--- 
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLStatementVisitorFactory.java
+++ 
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLStatementVisitorFactory.java
@@ -22,7 +22,6 @@ import lombok.NoArgsConstructor;
 import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.sql.parser.api.visitor.statement.SQLStatementVisitor;
 import org.apache.shardingsphere.sql.parser.exception.SQLParsingException;
 import org.apache.shardingsphere.sql.parser.spi.SQLStatementVisitorFacade;
@@ -41,8 +40,8 @@ public final class SQLStatementVisitorFactory {
      * @param visitorRule SQL visitor rule
      * @return created instance
      */
-    public static SQLStatementVisitor newInstance(final String databaseType, 
final SQLVisitorRule visitorRule) {
-        SQLStatementVisitorFacade facade = 
DatabaseTypedSPILoader.getService(SQLStatementVisitorFacade.class, 
TypedSPILoader.getService(DatabaseType.class, databaseType));
+    public static SQLStatementVisitor newInstance(final DatabaseType 
databaseType, final SQLVisitorRule visitorRule) {
+        SQLStatementVisitorFacade facade = 
DatabaseTypedSPILoader.getService(SQLStatementVisitorFacade.class, 
databaseType);
         return createParseTreeVisitor(facade, visitorRule.getType());
     }
     

Reply via email to