From 89bc4ae1616ceaab62bc760031d4cfac05c8a886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Thu, 22 Oct 2020 17:10:35 +0800 Subject: [PATCH] bug fixed for issue #3986 --- .../java/com/alibaba/druid/sql/SQLUtils.java | 9 +++++++++ .../alibaba/druid/bvt/sql/CompatibleTest.java | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/CompatibleTest.java diff --git a/src/main/java/com/alibaba/druid/sql/SQLUtils.java b/src/main/java/com/alibaba/druid/sql/SQLUtils.java index 116067802a..5c20f3b14d 100644 --- a/src/main/java/com/alibaba/druid/sql/SQLUtils.java +++ b/src/main/java/com/alibaba/druid/sql/SQLUtils.java @@ -571,6 +571,15 @@ public class SQLUtils { return stmtList; } + public static List parseStatements(String sql, String dbType) { + return parseStatements(sql, dbType, new SQLParserFeature[0]); + } + + + public static List parseStatements(String sql, DbType dbType) { + return parseStatements(sql, dbType, new SQLParserFeature[0]); + } + public static SQLStatement parseSingleStatement(String sql, DbType dbType, boolean keepComments) { SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType, keepComments); List stmtList = parser.parseStatementList(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/CompatibleTest.java b/src/test/java/com/alibaba/druid/bvt/sql/CompatibleTest.java new file mode 100644 index 0000000000..a8b0d13b73 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/CompatibleTest.java @@ -0,0 +1,18 @@ +package com.alibaba.druid.bvt.sql; + +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.sql.ast.SQLStatement; +import junit.framework.TestCase; + +import java.util.List; + +public class CompatibleTest extends TestCase { + public void test_for_issue_3986() throws Exception { + String sql = "select 1 from dual;"; + + List stmts = SQLUtils.parseStatements(sql, "mysql"); + assertEquals(1, stmts.size()); + assertEquals("select 1\n" + + "from dual;", stmts.get(0).toLowerCaseString()); + } +}