diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java index b9f266abb6..f6244c205d 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlLexer.java @@ -537,7 +537,7 @@ public class MySqlLexer extends Lexer { if (c <= identifierFlags.length) { return identifierFlags[c]; } - return false; + return c != ' ' && c != ','; } public void scanNumber() { diff --git a/src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest.java b/src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest.java index 8c1a355862..facae89ff8 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest.java @@ -2,11 +2,12 @@ package com.alibaba.druid.bvt.sql.schemaStat; import org.junit.Assert; +import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser; -import com.alibaba.druid.sql.dialect.odps.visitor.OdpsSchemaStatVisitor; +import com.alibaba.druid.sql.parser.SQLParserUtils; import com.alibaba.druid.sql.parser.SQLStatementParser; import com.alibaba.druid.sql.visitor.SchemaStatVisitor; +import com.alibaba.druid.util.JdbcConstants; import junit.framework.TestCase; @@ -17,10 +18,12 @@ public class SchemaStatTest extends TestCase { + " from alisec_app.adl_tb_wing_rubbish_laidian_new_reason_realname_fdt " + " order by 来电日期 desc limit 30;"; - SQLStatementParser parser = new OdpsStatementParser(sql); + + String dbType = JdbcConstants.ODPS; + SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType); SQLStatement stmt = parser.parseStatementList().get(0); - SchemaStatVisitor statVisitor = new OdpsSchemaStatVisitor(); + SchemaStatVisitor statVisitor = SQLUtils.createSchemaStatVisitor(dbType); stmt.accept(statVisitor); System.out.println(statVisitor.getColumns());