From dae361f79eea15c3c1f29967a1f262fe55f0e8a8 Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 2 Jul 2012 10:57:03 +0800 Subject: [PATCH] support cobar hints --- .../mock/handler/MySqlMockExecuteHandlerImpl.java | 1 + .../druid/sql/parser/SQLStatementParser.java | 5 +++++ .../alibaba/druid/bvt/sql/mysql/CobarHintsTest.java | 13 +++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/mysql/CobarHintsTest.java diff --git a/src/main/java/com/alibaba/druid/mock/handler/MySqlMockExecuteHandlerImpl.java b/src/main/java/com/alibaba/druid/mock/handler/MySqlMockExecuteHandlerImpl.java index 03d27b5121..38e5f52e16 100644 --- a/src/main/java/com/alibaba/druid/mock/handler/MySqlMockExecuteHandlerImpl.java +++ b/src/main/java/com/alibaba/druid/mock/handler/MySqlMockExecuteHandlerImpl.java @@ -102,6 +102,7 @@ public class MySqlMockExecuteHandlerImpl implements MockExecuteHandler { return rs; } + @SuppressWarnings("resource") public ResultSet executeQueryFromDual(MockStatement statement, SQLSelectQueryBlock query) throws SQLException { MockResultSet rs = new MockResultSet(statement); MockResultSetMetaData metaData = rs.getMockMetaData(); diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java index 68b0431ebd..719038dfa8 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java @@ -215,6 +215,11 @@ public class SQLStatementParser extends SQLParser { if (parseStatementListDialect(statementList)) { continue; } + + if (lexer.token() == Token.HINT) { + lexer.nextToken(); + continue; + } throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal()); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/CobarHintsTest.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/CobarHintsTest.java new file mode 100644 index 0000000000..0ecbc0829f --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/CobarHintsTest.java @@ -0,0 +1,13 @@ +package com.alibaba.druid.bvt.sql.mysql; + +import junit.framework.TestCase; + +import com.alibaba.druid.sql.SQLUtils; + +public class CobarHintsTest extends TestCase { + public void test_0 () throws Exception { + String sql = "/*!cobar: select,4,ireport.dm_mdm_mem_prod_noeff_sdt0.admin_member_seq=45654723*/ select * from t"; + + SQLUtils.formatMySql(sql); + } +}