From af75c602198a7e5a6f0def772455c83ed18799a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Wed, 16 May 2012 16:20:07 +0800 Subject: [PATCH] refactor --- .../sql/dialect/mysql/parser/MySqlCreateTableParser.java | 2 +- .../com/alibaba/druid/bvt/sql/cobar/DDLParserTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java index 2ce48ae081..6b7b970a43 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java @@ -59,7 +59,7 @@ public class MySqlCreateTableParser extends SQLCreateTableParser { accept(Token.TABLE); - if (identifierEquals("IF")) { + if (lexer.token() == Token.IF || identifierEquals("IF")) { lexer.nextToken(); accept(Token.NOT); accept(Token.EXISTS); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/cobar/DDLParserTest.java b/src/test/java/com/alibaba/druid/bvt/sql/cobar/DDLParserTest.java index 4a0c11b020..2389e4de65 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/cobar/DDLParserTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/cobar/DDLParserTest.java @@ -72,6 +72,15 @@ public class DDLParserTest extends TestCase { Assert.assertEquals("ALTER TABLE `test`.`tb1`" + // "\n\tDROP COLUMN `name`", output); } + + public void test_createTable_0() throws Exception { + String sql = "crEate temporary tabLe if not exists tb_name (fid int)"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + SQLStatement stmt = parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(stmt); + Assert.assertEquals("CREATE TEMPORARY TABLE IF NOT EXISTS tb_name (\n\tfid int\n)", output); + } // public void testDDLStmt() throws Exception { // String sql = "alTer ignore table tb_name";