diff --git a/pom.xml b/pom.xml
index 7bc1af46f4..e60a4c9dfe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -394,7 +394,7 @@
mysql
mysql-connector-java
- 5.1.22
+ 5.1.24
provided
diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java
index 391126264b..b5cac8202f 100644
--- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java
+++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java
@@ -531,6 +531,13 @@ public class MySqlExprParser extends SQLExprParser {
if (identifierEquals("PARTITION")) {
throw new ParserException("syntax error " + lexer.token() + " " + lexer.stringVal());
}
+
+ if (identifierEquals("COMMENT")) {
+ lexer.nextToken();
+ column.setComment(lexer.stringVal());
+ accept(Token.LITERAL_CHARS);
+ }
+
super.parseColumnRest(column);
return column;
diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlCreateTableTest11.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlCreateTableTest11.java
new file mode 100644
index 0000000000..931b47c341
--- /dev/null
+++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlCreateTableTest11.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 1999-2011 Alibaba Group Holding Ltd.
+ *
+ * Licensed 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 com.alibaba.druid.bvt.sql.mysql;
+
+import java.util.List;
+
+import org.junit.Assert;
+
+import com.alibaba.druid.sql.MysqlTest;
+import com.alibaba.druid.sql.ast.SQLStatement;
+import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement;
+import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
+import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor;
+import com.alibaba.druid.stat.TableStat;
+import com.alibaba.druid.stat.TableStat.Column;
+
+public class MySqlCreateTableTest11 extends MysqlTest {
+
+ public void test_0() throws Exception {
+ String sql = "CREATE TABLE `tmall_campaign` (" + //
+ "`id` int(11) NOT NULL AUTO_INCREMENT," + //
+ "`campaign_name` varchar(200) NOT NULL COMMENT '活动名称'," + //
+ "`create_date` datetime DEFAULT NULL COMMENT '活动创建时间'," + //
+ "`delete_flag` int(11) DEFAULT '0' COMMENT '活动删除标识'," + //
+ "PRIMARY KEY (`id`)" + //
+ ") ENGINE=InnoDB DEFAULT CHARSET=gbk;";
+
+ MySqlStatementParser parser = new MySqlStatementParser(sql);
+ List statementList = parser.parseStatementList();
+ SQLCreateTableStatement stmt = (SQLCreateTableStatement) statementList.get(0);
+ print(statementList);
+
+ Assert.assertEquals(1, statementList.size());
+
+ MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
+ stmt.accept(visitor);
+
+ System.out.println("Tables : " + visitor.getTables());
+ System.out.println("fields : " + visitor.getColumns());
+ System.out.println("coditions : " + visitor.getConditions());
+ System.out.println("orderBy : " + visitor.getOrderByColumns());
+
+ Assert.assertEquals(1, visitor.getTables().size());
+ Assert.assertEquals(4, visitor.getColumns().size());
+ Assert.assertEquals(0, visitor.getConditions().size());
+
+ Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("tmall_campaign")));
+
+ Assert.assertTrue(visitor.getColumns().contains(new Column("tmall_campaign", "id")));
+ Assert.assertTrue(visitor.getColumns().contains(new Column("tmall_campaign", "campaign_name")));
+ Assert.assertTrue(visitor.getColumns().contains(new Column("tmall_campaign", "create_date")));
+ Assert.assertTrue(visitor.getColumns().contains(new Column("tmall_campaign", "delete_flag")));
+ }
+}
diff --git a/src/test/java/com/alibaba/druid/pool/oceanbase/OBTest.java b/src/test/java/com/alibaba/druid/pool/oceanbase/OBTest.java
new file mode 100644
index 0000000000..99f8caf19d
--- /dev/null
+++ b/src/test/java/com/alibaba/druid/pool/oceanbase/OBTest.java
@@ -0,0 +1,38 @@
+package com.alibaba.druid.pool.oceanbase;
+
+import java.sql.Connection;
+
+import junit.framework.TestCase;
+
+import com.alibaba.druid.pool.DruidDataSource;
+
+public class OBTest extends TestCase {
+
+ private DruidDataSource dataSource;
+
+ protected void setUp() throws Exception {
+ dataSource = new DruidDataSource();
+ dataSource.setUrl("jdbc:mysql://10.232.36.171:45447/");
+ dataSource.setUsername("admin");
+ dataSource.setPassword("admin");
+ dataSource.setFilters("log4j");
+ }
+
+ public void test_connect() throws Exception {
+ {
+ Connection conn = dataSource.getConnection();
+
+ conn.setAutoCommit(false);
+
+ conn.close();
+ }
+ {
+ Connection conn = dataSource.getConnection();
+
+ conn.setAutoCommit(true);
+
+ conn.close();
+ }
+ }
+
+}