From 3963836daa49fefe6c4edcbde0cf91ba2144aaf6 Mon Sep 17 00:00:00 2001 From: abirdman <152974495@qq.com> Date: Tue, 5 May 2015 17:29:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=85=BC=E5=AE=B9mysql=E7=9A=84=E5=8F=A6?= =?UTF-8?q?=E4=B8=80=E7=A7=8D=E8=AF=AD=E6=B3=95=EF=BC=9A=20show=20columns?= =?UTF-8?q?=20from=20tableName=20in=20databaseName;=20=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E5=8F=AA=E6=94=AF=E6=8C=81show=20columns=20from=20tableName=20?= =?UTF-8?q?from=20databaseName;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../druid/sql/dialect/mysql/parser/MySqlStatementParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java index be7d736c70..e7aa2ff4f5 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java @@ -1482,7 +1482,7 @@ public class MySqlStatementParser extends SQLStatementParser { SQLName table = exprParser.name(); stmt.setTable(table); - if (lexer.token() == Token.FROM) { + if (lexer.token() == Token.FROM || lexer.token() == Token.IN) { lexer.nextToken(); SQLName database = exprParser.name(); stmt.setDatabase(database); From 1c62c49d7322f38316173fd826d0951ecbc2c2cb Mon Sep 17 00:00:00 2001 From: abirdman <152974495@qq.com> Date: Wed, 6 May 2015 14:20:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A1=A5=E5=85=85testcase---=E5=85=BC?= =?UTF-8?q?=E5=AE=B9mysql=E7=9A=84=E5=8F=A6=E4=B8=80=E7=A7=8D=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=EF=BC=9Ashow=20columns=20from=20tableName=20in=20data?= =?UTF-8?q?baseName;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java index 1e3bf9933d..da5fa51303 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java @@ -59,6 +59,17 @@ public class SHOW_COLUMNS_Syntax_Test extends TestCase { Assert.assertEquals("SHOW COLUMNS FROM mydb.mytable;", text); } + + public void test_3() throws Exception { + String sql = "SHOW COLUMNS FROM mytable IN mydb;"; + + SQLStatementParser parser = new MySqlStatementParser(sql); + List stmtList = parser.parseStatementList(); + + String text = output(stmtList); + + Assert.assertEquals("SHOW COLUMNS FROM mydb.mytable;", text); + } private String output(List stmtList) { StringBuilder out = new StringBuilder();