From 0125b38d8d3688f3051a0d4acef1fa3988044ced Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 14 May 2011 15:36:41 +0000 Subject: [PATCH] git-svn-id: http://code.alibabatech.com/svn/druid/trunk@83 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../mock/handler/MySqlMockExecuteHandlerImpl.java | 4 ++++ .../java/com/alibaba/druid/sql/parser/Token.java | 2 ++ .../alibaba/druid/bvt/mock/MockExecuteTest.java | 14 ++++++++++++++ 3 files changed, 20 insertions(+) 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 32246c8206..6d270d144e 100644 --- a/src/main/java/com/alibaba/druid/mock/handler/MySqlMockExecuteHandlerImpl.java +++ b/src/main/java/com/alibaba/druid/mock/handler/MySqlMockExecuteHandlerImpl.java @@ -27,6 +27,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectQuery; import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock; import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; import com.alibaba.druid.sql.ast.statement.SQLTableSource; +import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr; import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; import com.alibaba.druid.sql.parser.SQLStatementParser; @@ -105,6 +106,9 @@ public class MySqlMockExecuteHandlerImpl implements MockExecuteHandler { } else if (expr instanceof SQLNCharExpr) { row[i] = ((SQLNCharExpr) expr).getText(); column.setColumnType(Types.NVARCHAR); + } else if (expr instanceof MySqlBooleanExpr) { + row[i] = ((MySqlBooleanExpr) expr).getValue(); + column.setColumnType(Types.NVARCHAR); } else if (expr instanceof SQLNullExpr) { row[i] = null; } else if (expr instanceof SQLMethodInvokeExpr) { diff --git a/src/main/java/com/alibaba/druid/sql/parser/Token.java b/src/main/java/com/alibaba/druid/sql/parser/Token.java index dd8a31e5f3..e4dfb4655a 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/Token.java +++ b/src/main/java/com/alibaba/druid/sql/parser/Token.java @@ -28,6 +28,8 @@ public enum Token { LOCK("LOCK"), SOME("SOME"), ANY("ANY"), + TRUE("TRUE"), FALSE("FALSE"), + EOF, ERROR, IDENTIFIER, HINT, diff --git a/src/test/java/com/alibaba/druid/bvt/mock/MockExecuteTest.java b/src/test/java/com/alibaba/druid/bvt/mock/MockExecuteTest.java index 01256608b2..30ead3ea1f 100644 --- a/src/test/java/com/alibaba/druid/bvt/mock/MockExecuteTest.java +++ b/src/test/java/com/alibaba/druid/bvt/mock/MockExecuteTest.java @@ -77,4 +77,18 @@ public class MockExecuteTest extends TestCase { stmt.close(); conn.close(); } + + public void test_5() throws Exception { + Connection conn = DriverManager.getConnection("jdbc:mock:"); + Statement stmt = conn.createStatement(); + + ResultSet rs = stmt.executeQuery("SELECT true FROM DUAL"); + Assert.assertTrue(rs.next()); + Assert.assertEquals(true, rs.getBoolean(1)); + + rs.close(); + + stmt.close(); + conn.close(); + } }