From 40e66210b5d196f5f7eca4a48fd0063d6b6454ff Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 9 Feb 2018 17:14:35 +0800 Subject: [PATCH] bug fixed for mysql parser. for issue #2326 --- .../mysql/parser/MySqlStatementParser.java | 21 +++++++++++++------ .../mysql/insert/MySqlInsertTest_25_time.java | 1 - 2 files changed, 15 insertions(+), 7 deletions(-) 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 72f2d026ea..5092330b76 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 @@ -3664,13 +3664,22 @@ public class MySqlStatementParser extends SQLStatementParser { if (lexer.token() == Token.TO || lexer.token() == Token.AS) { lexer.nextToken(); } - MySqlRenameTableStatement renameStmt = new MySqlRenameTableStatement(); - MySqlRenameTableStatement.Item item = new MySqlRenameTableStatement.Item(); - item.setName((SQLName) stmt.getTableSource().getExpr()); - item.setTo(this.exprParser.name()); - renameStmt.addItem(item); - return renameStmt; + if (stmt.getItems().size() > 0) { + SQLAlterTableRename item = new SQLAlterTableRename(); + SQLName to = this.exprParser.name(); + item.setTo(to); + stmt.addItem(item); + } else { + MySqlRenameTableStatement renameStmt = new MySqlRenameTableStatement(); + MySqlRenameTableStatement.Item item = new MySqlRenameTableStatement.Item(); + item.setName((SQLName) stmt.getTableSource().getExpr()); + item.setTo(this.exprParser.name()); + // SQLAlterTableRename + renameStmt.addItem(item); + + return renameStmt; + } } else if (lexer.token() == Token.ORDER) { throw new ParserException("TODO " + lexer.info()); } else if (lexer.identifierEquals("CONVERT")) { diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/insert/MySqlInsertTest_25_time.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/insert/MySqlInsertTest_25_time.java index 731d04747f..1f298ee869 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/insert/MySqlInsertTest_25_time.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/insert/MySqlInsertTest_25_time.java @@ -55,5 +55,4 @@ public class MySqlInsertTest_25_time extends MysqlTest { } - }