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 <[email protected]>
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);
}
}