You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/03/25 16:10:10 UTC
[shardingsphere] branch master updated: Merge ParseContext and ParseASTNode (#16382)
This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 36e4fdb Merge ParseContext and ParseASTNode (#16382)
36e4fdb is described below
commit 36e4fdb42161d80d4279ed4bca0a87ffde40f088
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Mar 26 00:08:43 2022 +0800
Merge ParseContext and ParseASTNode (#16382)
* Refactor ParseASTNode
* Merge ParseContext and ParseASTNode
* Merge ParseContext and ParseASTNode
* Merge ParseContext and ParseASTNode
---
.../mysql/format/MySQLParserFormatExample.java | 10 +++---
.../statement/MySQLParserStatementExample.java | 12 +++----
.../statement/OpenGaussParserStatementExample.java | 10 +++---
.../statement/OracleParserStatementExample.java | 10 +++---
.../PostgreSQLParserStatementExample.java | 10 +++---
.../statement/SQL92ParserStatementExample.java | 10 +++---
.../statement/SQLServerParserStatementExample.java | 10 +++---
.../parser/sql/SQLStatementParserExecutor.java | 4 +--
.../text/distsql/ral/advanced/FormatHandler.java | 12 +++----
.../sql/parser/api/SQLParserEngine.java | 14 ++++----
.../sql/parser/api/SQLVisitorEngine.java | 22 +++++++------
.../sql/parser/core/ParseASTNode.java | 15 +++++++--
.../sql/parser/core/ParseContext.java | 37 ----------------------
.../core/database/cache/ParseTreeCacheBuilder.java | 7 ++--
.../core/database/cache/ParseTreeCacheLoader.java | 10 +++---
.../core/database/parser/SQLParserExecutor.java | 14 ++------
.../sql/parser/api/SQLParserEngineTest.java | 12 +++----
.../sql/parser/core/SQLParserEngineTest.java | 10 +++---
.../database/cache/ParseTreeCacheBuilderTest.java | 4 +--
.../database/cache/ParseTreeCacheLoaderTest.java | 6 ++--
.../SQLNodeConvertEngineParameterizedTest.java | 2 +-
.../engine/SQLParserParameterizedTest.java | 2 +-
.../UnsupportedSQLParserParameterizedTest.java | 6 ++--
23 files changed, 109 insertions(+), 140 deletions(-)
diff --git a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/format/MySQLParserFormatExample.java b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/format/MySQLParserFormatExample.java
index 0b27624..208b523 100644
--- a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/format/MySQLParserFormatExample.java
+++ b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/format/MySQLParserFormatExample.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.example.parser.mysql.format;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import java.util.Arrays;
import java.util.List;
@@ -56,10 +56,10 @@ public final class MySQLParserFormatExample {
Properties props = new Properties();
props.setProperty("parameterized", "false");
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("MySQL", cacheOption, false);
- ParseContext parseContext = parserEngine.parse(sql, false);
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("MySQL", "FORMAT", props);
- String result = visitorEngine.visit(parseContext);
+ SQLParserEngine parserEngine = new SQLParserEngine("MySQL", cacheOption);
+ ParseASTNode parseASTNode = parserEngine.parse(sql, false);
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("MySQL", "FORMAT", false, props);
+ String result = visitorEngine.visit(parseASTNode);
System.out.println(result);
});
}
diff --git a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/statement/MySQLParserStatementExample.java b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/statement/MySQLParserStatementExample.java
index 336ee36..20f3ff7 100644
--- a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/statement/MySQLParserStatementExample.java
+++ b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/mysql/statement/MySQLParserStatementExample.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.example.parser.mysql.statement;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.MySQLStatement;
import java.util.Arrays;
@@ -53,12 +53,12 @@ public final class MySQLParserStatementExample {
}
public static void main(String[] args) {
- MYSQL_PARSER_STATEMENT_LIST.stream().forEach(sql -> {
+ MYSQL_PARSER_STATEMENT_LIST.forEach(sql -> {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("MySQL", cacheOption, false);
- ParseContext parseContext = parserEngine.parse(sql, false);
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("MySQL", "STATEMENT", new Properties());
- MySQLStatement sqlStatement = visitorEngine.visit(parseContext);
+ SQLParserEngine parserEngine = new SQLParserEngine("MySQL", cacheOption);
+ ParseASTNode parseASTNode = parserEngine.parse(sql, false);
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("MySQL", "STATEMENT", false, new Properties());
+ MySQLStatement sqlStatement = visitorEngine.visit(parseASTNode);
System.out.println(sqlStatement.toString());
});
}
diff --git a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/opengauss/statement/OpenGaussParserStatementExample.java b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/opengauss/statement/OpenGaussParserStatementExample.java
index 7043409..89842ef 100644
--- a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/opengauss/statement/OpenGaussParserStatementExample.java
+++ b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/opengauss/statement/OpenGaussParserStatementExample.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.example.parser.opengauss.statement;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.OpenGaussStatement;
import java.util.Arrays;
@@ -53,10 +53,10 @@ public final class OpenGaussParserStatementExample {
public static void main(String[] args) {
OPEN_GAUSS_PARSER_STATEMENT_LIST.forEach(sql -> {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("openGauss", cacheOption, false);
- ParseContext parseContext = parserEngine.parse(sql, false);
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("openGauss", "STATEMENT", new Properties());
- OpenGaussStatement sqlStatement = visitorEngine.visit(parseContext);
+ SQLParserEngine parserEngine = new SQLParserEngine("openGauss", cacheOption);
+ ParseASTNode parseASTNode = parserEngine.parse(sql, false);
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("openGauss", "STATEMENT", false, new Properties());
+ OpenGaussStatement sqlStatement = visitorEngine.visit(parseASTNode);
System.out.println(sqlStatement.toString());
});
}
diff --git a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/oracle/statement/OracleParserStatementExample.java b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/oracle/statement/OracleParserStatementExample.java
index ef26599..61ad19b 100644
--- a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/oracle/statement/OracleParserStatementExample.java
+++ b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/oracle/statement/OracleParserStatementExample.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.example.parser.oracle.statement;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
import java.util.Arrays;
@@ -53,10 +53,10 @@ public final class OracleParserStatementExample {
public static void main(String[] args) {
ORACLE_PARSER_STATEMENT_LIST.forEach(sql -> {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("Oracle", cacheOption, false);
- ParseContext parseContext = parserEngine.parse(sql, false);
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("Oracle", "STATEMENT", new Properties());
- OracleStatement sqlStatement = visitorEngine.visit(parseContext);
+ SQLParserEngine parserEngine = new SQLParserEngine("Oracle", cacheOption);
+ ParseASTNode parseASTNode = parserEngine.parse(sql, false);
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("Oracle", "STATEMENT", false, new Properties());
+ OracleStatement sqlStatement = visitorEngine.visit(parseASTNode);
System.out.println(sqlStatement.toString());
});
}
diff --git a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/postgresql/statement/PostgreSQLParserStatementExample.java b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/postgresql/statement/PostgreSQLParserStatementExample.java
index aa2d2d1..f604293 100644
--- a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/postgresql/statement/PostgreSQLParserStatementExample.java
+++ b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/postgresql/statement/PostgreSQLParserStatementExample.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.example.parser.postgresql.statement;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.PostgreSQLStatement;
import java.util.Arrays;
@@ -53,10 +53,10 @@ public final class PostgreSQLParserStatementExample {
public static void main(String[] args) {
POSTGRESQL_PARSER_STATEMENT_LIST.forEach(sql -> {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("PostgreSQL", cacheOption, false);
- ParseContext parseContext = parserEngine.parse(sql, false);
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("PostgreSQL", "STATEMENT", new Properties());
- PostgreSQLStatement sqlStatement = visitorEngine.visit(parseContext);
+ SQLParserEngine parserEngine = new SQLParserEngine("PostgreSQL", cacheOption);
+ ParseASTNode parseASTNode = parserEngine.parse(sql, false);
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("PostgreSQL", "STATEMENT", false, new Properties());
+ PostgreSQLStatement sqlStatement = visitorEngine.visit(parseASTNode);
System.out.println(sqlStatement.toString());
});
}
diff --git a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sql92/statement/SQL92ParserStatementExample.java b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sql92/statement/SQL92ParserStatementExample.java
index 47cb8e2..c8b743a 100644
--- a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sql92/statement/SQL92ParserStatementExample.java
+++ b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sql92/statement/SQL92ParserStatementExample.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.example.parser.sql92.statement;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sql92.SQL92Statement;
import java.util.Arrays;
@@ -53,10 +53,10 @@ public final class SQL92ParserStatementExample {
public static void main(String[] args) {
SQL92_PARSER_STATEMENT_LIST.forEach(sql -> {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("SQL92", cacheOption,false);
- ParseContext parseContext = parserEngine.parse(sql, false);
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("SQL92", "STATEMENT", new Properties());
- SQL92Statement sqlStatement = visitorEngine.visit(parseContext);
+ SQLParserEngine parserEngine = new SQLParserEngine("SQL92", cacheOption);
+ ParseASTNode parseASTNode = parserEngine.parse(sql, false);
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("SQL92", "STATEMENT", false, new Properties());
+ SQL92Statement sqlStatement = visitorEngine.visit(parseASTNode);
System.out.println(sqlStatement.toString());
});
}
diff --git a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sqlserver/statement/SQLServerParserStatementExample.java b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sqlserver/statement/SQLServerParserStatementExample.java
index 9f00252..88e96f5 100644
--- a/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sqlserver/statement/SQLServerParserStatementExample.java
+++ b/examples/other-example/shardingsphere-parser-example/src/main/java/org/apache/shardingsphere/example/parser/sqlserver/statement/SQLServerParserStatementExample.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.example.parser.sqlserver.statement;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.SQLServerStatement;
import java.util.Arrays;
@@ -55,10 +55,10 @@ public final class SQLServerParserStatementExample {
public static void main(String[] args) {
SQLSERVER_PARSER_STATEMENT_LIST.forEach(sql -> {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("SQLServer", cacheOption, false);
- ParseContext parseContext = parserEngine.parse(sql, false);
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("SQLServer", "STATEMENT", new Properties());
- SQLServerStatement sqlStatement = visitorEngine.visit(parseContext);
+ SQLParserEngine parserEngine = new SQLParserEngine("SQLServer", cacheOption);
+ ParseASTNode parseASTNode = parserEngine.parse(sql, false);
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("SQLServer", "STATEMENT", false, new Properties());
+ SQLServerStatement sqlStatement = visitorEngine.visit(parseASTNode);
System.out.println(sqlStatement);
});
}
diff --git a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserExecutor.java b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserExecutor.java
index 5a7983d..3fae837 100644
--- a/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserExecutor.java
+++ b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserExecutor.java
@@ -34,8 +34,8 @@ public final class SQLStatementParserExecutor {
private final SQLVisitorEngine visitorEngine;
public SQLStatementParserExecutor(final String databaseType, final SQLParserRule sqlParserRule) {
- parserEngine = new SQLParserEngine(databaseType, sqlParserRule.getParseTreeCache(), sqlParserRule.isSqlCommentParseEnabled());
- visitorEngine = new SQLVisitorEngine(databaseType, "STATEMENT", new Properties());
+ parserEngine = new SQLParserEngine(databaseType, sqlParserRule.getParseTreeCache());
+ visitorEngine = new SQLVisitorEngine(databaseType, "STATEMENT", sqlParserRule.isSqlCommentParseEnabled(), new Properties());
}
/**
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
index 3699bbf..bfd0667 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.proxy.backend.text.distsql.ral.QueryableRALBack
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.exception.SQLParsingException;
import java.sql.SQLException;
@@ -47,16 +47,16 @@ public final class FormatHandler extends QueryableRALBackendHandler<FormatStatem
@Override
protected Collection<List<Object>> getRows(final ContextManager contextManager) throws SQLException {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine parserEngine = new SQLParserEngine("MySQL", cacheOption, false);
- ParseContext parseContext;
+ SQLParserEngine parserEngine = new SQLParserEngine("MySQL", cacheOption);
+ ParseASTNode parseASTNode;
try {
- parseContext = parserEngine.parse(sqlStatement.getSql(), false);
+ parseASTNode = parserEngine.parse(sqlStatement.getSql(), false);
} catch (SQLParsingException ex) {
throw new SQLParsingException("You have a syntax error in your formatted statement");
}
Properties props = new Properties();
props.setProperty("parameterized", "false");
- SQLVisitorEngine visitorEngine = new SQLVisitorEngine("MySQL", "FORMAT", props);
- return Collections.singleton(Collections.singletonList(visitorEngine.visit(parseContext)));
+ SQLVisitorEngine visitorEngine = new SQLVisitorEngine("MySQL", "FORMAT", false, props);
+ return Collections.singleton(Collections.singletonList(visitorEngine.visit(parseASTNode)));
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java
index 131d6c0..067f6bf 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngine.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.sql.parser.api;
import com.google.common.cache.LoadingCache;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.core.database.cache.ParseTreeCacheBuilder;
import org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
@@ -29,11 +29,11 @@ public final class SQLParserEngine {
private final SQLParserExecutor sqlParserExecutor;
- private final LoadingCache<String, ParseContext> parseTreeCache;
+ private final LoadingCache<String, ParseASTNode> parseTreeCache;
- public SQLParserEngine(final String databaseType, final CacheOption cacheOption, final boolean sqlCommentParseEnabled) {
- sqlParserExecutor = new SQLParserExecutor(databaseType, sqlCommentParseEnabled);
- parseTreeCache = ParseTreeCacheBuilder.build(cacheOption, databaseType, sqlCommentParseEnabled);
+ public SQLParserEngine(final String databaseType, final CacheOption cacheOption) {
+ sqlParserExecutor = new SQLParserExecutor(databaseType);
+ parseTreeCache = ParseTreeCacheBuilder.build(cacheOption, databaseType);
}
/**
@@ -41,9 +41,9 @@ public final class SQLParserEngine {
*
* @param sql SQL to be parsed
* @param useCache whether use cache
- * @return parse tree
+ * @return parse AST node
*/
- public ParseContext parse(final String sql, final boolean useCache) {
+ public ParseASTNode parse(final String sql, final boolean useCache) {
return useCache ? parseTreeCache.getUnchecked(sql) : sqlParserExecutor.parse(sql);
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLVisitorEngine.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLVisitorEngine.java
index 80ba87a..37b32da 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLVisitorEngine.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/api/SQLVisitorEngine.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.api;
import lombok.RequiredArgsConstructor;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.core.database.visitor.SQLVisitorFactory;
import org.apache.shardingsphere.sql.parser.core.database.visitor.SQLVisitorRule;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.CommentSegment;
@@ -39,25 +39,29 @@ public final class SQLVisitorEngine {
private final String visitorType;
+ private final boolean isParseComment;
+
private final Properties props;
/**
* Visit parse context.
*
- * @param parseContext parse context
+ * @param parseASTNode parse AST node
* @param <T> type of SQL visitor result
* @return SQL visitor result
*/
- public <T> T visit(final ParseContext parseContext) {
- ParseTreeVisitor<T> visitor = SQLVisitorFactory.newInstance(databaseType, visitorType, SQLVisitorRule.valueOf(parseContext.getParseTree().getClass()), props);
- T result = parseContext.getParseTree().accept(visitor);
- appendSQLComments(parseContext, result);
+ public <T> T visit(final ParseASTNode parseASTNode) {
+ ParseTreeVisitor<T> visitor = SQLVisitorFactory.newInstance(databaseType, visitorType, SQLVisitorRule.valueOf(parseASTNode.getRootNode().getClass()), props);
+ T result = parseASTNode.getRootNode().accept(visitor);
+ if (isParseComment) {
+ appendSQLComments(parseASTNode, result);
+ }
return result;
}
- private <T> void appendSQLComments(final ParseContext parseContext, final T visitResult) {
- if (!parseContext.getHiddenTokens().isEmpty() && visitResult instanceof AbstractSQLStatement) {
- Collection<CommentSegment> commentSegments = parseContext.getHiddenTokens().stream().map(
+ private <T> void appendSQLComments(final ParseASTNode parseASTNode, final T visitResult) {
+ if (visitResult instanceof AbstractSQLStatement) {
+ Collection<CommentSegment> commentSegments = parseASTNode.getHiddenTokens().stream().map(
each -> new CommentSegment(each.getText(), each.getStartIndex(), each.getStopIndex())).collect(Collectors.toList());
((AbstractSQLStatement) visitResult).getCommentSegments().addAll(commentSegments);
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/ParseASTNode.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/ParseASTNode.java
index ca47b02..c27567e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/ParseASTNode.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/ParseASTNode.java
@@ -17,12 +17,15 @@
package org.apache.shardingsphere.sql.parser.core;
-import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.tree.ParseTree;
import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
+import java.util.Collection;
+import java.util.stream.Collectors;
+
/**
* Parse AST node.
*/
@@ -31,7 +34,6 @@ public final class ParseASTNode implements ASTNode {
private final ParseTree parseTree;
- @Getter
private final CommonTokenStream tokenStream;
/**
@@ -42,4 +44,13 @@ public final class ParseASTNode implements ASTNode {
public ParseTree getRootNode() {
return parseTree.getChild(0);
}
+
+ /**
+ * Get hidden tokens.
+ *
+ * @return hidden tokens
+ */
+ public Collection<Token> getHiddenTokens() {
+ return tokenStream.getTokens().stream().filter(each -> Token.HIDDEN_CHANNEL == each.getChannel()).collect(Collectors.toList());
+ }
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/ParseContext.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/ParseContext.java
deleted file mode 100644
index 7a18e09..0000000
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/ParseContext.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.core;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.tree.ParseTree;
-
-import java.util.Collection;
-
-/**
- * Parse context.
- */
-@RequiredArgsConstructor
-@Getter
-public final class ParseContext {
-
- private final ParseTree parseTree;
-
- private final Collection<Token> hiddenTokens;
-}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java
index 7616ba5..c90c7b0 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilder.java
@@ -22,7 +22,7 @@ import com.google.common.cache.LoadingCache;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
/**
* Parse tree cache builder.
@@ -35,12 +35,11 @@ public final class ParseTreeCacheBuilder {
*
* @param option cache option
* @param databaseType database type
- * @param sqlCommentParseEnabled sql comment parse enabled
* @return built parse tree cache
*/
- public static LoadingCache<String, ParseContext> build(final CacheOption option, final String databaseType, final boolean sqlCommentParseEnabled) {
+ public static LoadingCache<String, ParseASTNode> build(final CacheOption option, final String databaseType) {
return CacheBuilder.newBuilder().softValues()
.initialCapacity(option.getInitialCapacity()).maximumSize(option.getMaximumSize()).concurrencyLevel(option.getConcurrencyLevel())
- .build(new ParseTreeCacheLoader(databaseType, sqlCommentParseEnabled));
+ .build(new ParseTreeCacheLoader(databaseType));
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
index b5ddc0c..c02804b 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoader.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.sql.parser.core.database.cache;
import com.google.common.cache.CacheLoader;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
import javax.annotation.ParametersAreNonnullByDefault;
@@ -26,17 +26,17 @@ import javax.annotation.ParametersAreNonnullByDefault;
/**
* Parse context cache loader.
*/
-public final class ParseTreeCacheLoader extends CacheLoader<String, ParseContext> {
+public final class ParseTreeCacheLoader extends CacheLoader<String, ParseASTNode> {
private final SQLParserExecutor sqlParserExecutor;
- public ParseTreeCacheLoader(final String databaseType, final boolean sqlCommentParseEnabled) {
- sqlParserExecutor = new SQLParserExecutor(databaseType, sqlCommentParseEnabled);
+ public ParseTreeCacheLoader(final String databaseType) {
+ sqlParserExecutor = new SQLParserExecutor(databaseType);
}
@ParametersAreNonnullByDefault
@Override
- public ParseContext load(final String sql) {
+ public ParseASTNode load(final String sql) {
return sqlParserExecutor.parse(sql);
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/parser/SQLParserExecutor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/parser/SQLParserExecutor.java
index 1a7471c..65134f3 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/parser/SQLParserExecutor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/parser/SQLParserExecutor.java
@@ -19,20 +19,15 @@ package org.apache.shardingsphere.sql.parser.core.database.parser;
import lombok.RequiredArgsConstructor;
import org.antlr.v4.runtime.Parser;
-import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.atn.PredictionMode;
import org.antlr.v4.runtime.misc.ParseCancellationException;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.apache.shardingsphere.sql.parser.api.parser.SQLParser;
import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
import org.apache.shardingsphere.sql.parser.core.SQLParserFactory;
import org.apache.shardingsphere.sql.parser.exception.SQLParsingException;
import org.apache.shardingsphere.sql.parser.spi.DatabaseTypedSQLParserFacade;
-import java.util.Collections;
-import java.util.stream.Collectors;
-
/**
* SQL parser executor.
*/
@@ -41,21 +36,18 @@ public final class SQLParserExecutor {
private final String databaseType;
- private final boolean isParseComment;
-
/**
* Parse SQL.
*
* @param sql SQL to be parsed
- * @return parse context
+ * @return parse AST node
*/
- public ParseContext parse(final String sql) {
+ public ParseASTNode parse(final String sql) {
ParseASTNode result = twoPhaseParse(sql);
if (result.getRootNode() instanceof ErrorNode) {
throw new SQLParsingException("Unsupported SQL of `%s`", sql);
}
- return new ParseContext(result.getRootNode(), isParseComment
- ? result.getTokenStream().getTokens().stream().filter(each -> Token.HIDDEN_CHANNEL == each.getChannel()).collect(Collectors.toList()) : Collections.emptyList());
+ return result;
}
private ParseASTNode twoPhaseParse(final String sql) {
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java
index 969738a..dcfb303 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/api/SQLParserEngineTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.sql.parser.api;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
import org.junit.Test;
@@ -39,20 +39,20 @@ public final class SQLParserEngineTest {
@Test
public void assertParse() throws NoSuchFieldException, IllegalAccessException {
SQLParserExecutor sqlParserExecutor = mock(SQLParserExecutor.class);
- when(sqlParserExecutor.parse(SQL)).thenReturn(mock(ParseContext.class));
+ when(sqlParserExecutor.parse(SQL)).thenReturn(mock(ParseASTNode.class));
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- SQLParserEngine sqlParserEngine = new SQLParserEngine("H2", cacheOption, false);
+ SQLParserEngine sqlParserEngine = new SQLParserEngine("H2", cacheOption);
Field sqlParserExecutorFiled = sqlParserEngine.getClass().getDeclaredField("sqlParserExecutor");
Field parseTreeCacheField = sqlParserEngine.getClass().getDeclaredField("parseTreeCache");
sqlParserExecutorFiled.setAccessible(true);
parseTreeCacheField.setAccessible(true);
sqlParserExecutorFiled.set(sqlParserEngine, sqlParserExecutor);
- LoadingCache<String, ParseContext> parseTreeCache = CacheBuilder.newBuilder().softValues().initialCapacity(128)
- .maximumSize(1024).concurrencyLevel(4).build(new CacheLoader<String, ParseContext>() {
+ LoadingCache<String, ParseASTNode> parseTreeCache = CacheBuilder.newBuilder().softValues().initialCapacity(128)
+ .maximumSize(1024).concurrencyLevel(4).build(new CacheLoader<String, ParseASTNode>() {
@ParametersAreNonnullByDefault
@Override
- public ParseContext load(final String sql) {
+ public ParseASTNode load(final String sql) {
return sqlParserExecutor.parse(sql);
}
});
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
index db1d41a..cf52d61 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/SQLParserEngineTest.java
@@ -35,13 +35,13 @@ public final class SQLParserEngineTest {
@Test
public void assertParse() {
SQLParserExecutor sqlParserExecutor = mock(SQLParserExecutor.class);
- when(sqlParserExecutor.parse("")).thenReturn(mock(ParseContext.class));
- LoadingCache<String, ParseContext> parseTreeCache = CacheBuilder.newBuilder().softValues()
- .initialCapacity(128).maximumSize(1024).concurrencyLevel(4).build(new CacheLoader<String, ParseContext>() {
-
+ when(sqlParserExecutor.parse("")).thenReturn(mock(ParseASTNode.class));
+ LoadingCache<String, ParseASTNode> parseTreeCache = CacheBuilder.newBuilder().softValues()
+ .initialCapacity(128).maximumSize(1024).concurrencyLevel(4).build(new CacheLoader<String, ParseASTNode>() {
+
@ParametersAreNonnullByDefault
@Override
- public ParseContext load(final String sql) {
+ public ParseASTNode load(final String sql) {
return sqlParserExecutor.parse(sql);
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java
index 8ac92ba..02e07d8 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheBuilderTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.core.database.cache;
import com.google.common.cache.LoadingCache;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.isA;
@@ -29,7 +29,7 @@ public final class ParseTreeCacheBuilderTest {
@Test
public void assertParseTreeCacheBuild() {
- LoadingCache<String, ParseContext> cache = ParseTreeCacheBuilder.build(new CacheOption(1, 10, 1), "MySQL", false);
+ LoadingCache<String, ParseASTNode> cache = ParseTreeCacheBuilder.build(new CacheOption(1, 10, 1), "MySQL");
assertThat(cache, isA(LoadingCache.class));
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java
index 38f45f7..78f58ab 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/cache/ParseTreeCacheLoaderTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.sql.parser.core.database.cache;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.core.database.parser.SQLParserExecutor;
import org.junit.Test;
@@ -35,10 +35,10 @@ public final class ParseTreeCacheLoaderTest {
@Test
public void assertParseTreeCacheLoader() throws NoSuchFieldException, IllegalAccessException {
SQLParserExecutor sqlParserExecutor = mock(SQLParserExecutor.class, RETURNS_DEEP_STUBS);
- ParseTreeCacheLoader loader = new ParseTreeCacheLoader("MySQL", false);
+ ParseTreeCacheLoader loader = new ParseTreeCacheLoader("MySQL");
Field sqlParserExecutorField = loader.getClass().getDeclaredField("sqlParserExecutor");
sqlParserExecutorField.setAccessible(true);
sqlParserExecutorField.set(loader, sqlParserExecutor);
- assertThat(loader.load(SQL), isA(ParseContext.class));
+ assertThat(loader.load(SQL), isA(ParseASTNode.class));
}
}
diff --git a/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java b/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
index a15e77d..7b389d4 100644
--- a/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
+++ b/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
@@ -168,6 +168,6 @@ public final class SQLNodeConvertEngineParameterizedTest {
private SQLStatement parseSQLStatement(final String databaseType, final String sql) {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- return new SQLVisitorEngine(databaseType, "STATEMENT", new Properties()).visit(new SQLParserEngine(databaseType, cacheOption, true).parse(sql, false));
+ return new SQLVisitorEngine(databaseType, "STATEMENT", true, new Properties()).visit(new SQLParserEngine(databaseType, cacheOption).parse(sql, false));
}
}
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java
index 31cc5b6..9b5ccf0 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java
@@ -75,6 +75,6 @@ public abstract class SQLParserParameterizedTest {
private SQLStatement parseSQLStatement(final String databaseType, final String sql) {
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- return new SQLVisitorEngine(databaseType, "STATEMENT", new Properties()).visit(new SQLParserEngine(databaseType, cacheOption, true).parse(sql, false));
+ return new SQLVisitorEngine(databaseType, "STATEMENT", true, new Properties()).visit(new SQLParserEngine(databaseType, cacheOption).parse(sql, false));
}
}
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java
index 04f4c92..bbdaec5 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseContext;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.sql.SQLCaseType;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.sql.loader.SQLCasesLoader;
@@ -52,7 +52,7 @@ public abstract class UnsupportedSQLParserParameterizedTest {
String sql = SQL_CASES_LOADER.getCaseValue(sqlCaseId, sqlCaseType, Collections.emptyList(), databaseType);
String databaseType = "H2".equals(this.databaseType) ? "MySQL" : this.databaseType;
CacheOption cacheOption = new CacheOption(128, 1024L, 4);
- ParseContext parseContext = new SQLParserEngine(databaseType, cacheOption, true).parse(sql, false);
- SQLStatement sqlStatement = new SQLVisitorEngine(databaseType, "STATEMENT", new Properties()).visit(parseContext);
+ ParseASTNode parseContext = new SQLParserEngine(databaseType, cacheOption).parse(sql, false);
+ SQLStatement sqlStatement = new SQLVisitorEngine(databaseType, "STATEMENT", true, new Properties()).visit(parseContext);
}
}