You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/05/12 13:32:11 UTC

kylin git commit: KYLIN-1685, error happens while execute a sql contains '?' using Statement

Repository: kylin
Updated Branches:
  refs/heads/1.3.x 404fe1ef9 -> 5705a1809


KYLIN-1685,error happens while execute a sql contains '?' using Statement

Signed-off-by: fengyu <hz...@corp.netease.com>
Signed-off-by: lidongsjtu <li...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/5705a180
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/5705a180
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/5705a180

Branch: refs/heads/1.3.x
Commit: 5705a18090d9d114f6c30bdbb31fe58f1f95b1d4
Parents: 404fe1e
Author: fengyu <hz...@corp.netease.com>
Authored: Thu May 12 17:42:26 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Thu May 12 21:29:24 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/jdbc/KylinResultSet.java    |  3 +++
 .../java/org/apache/kylin/jdbc/DriverTest.java   | 19 +++++++++++++++++++
 2 files changed, 22 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/5705a180/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
index 9db53f4..09ce804 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
@@ -50,6 +50,9 @@ public class KylinResultSet extends AvaticaResultSet {
         String sql = signature.sql;
         List<AvaticaParameter> params = signature.parameters;
         List<Object> paramValues = null;
+        if(statement instanceof KylinStatement) {
+            params = null;
+        }
         if (params != null && params.size() > 0) {
             paramValues = ((KylinPreparedStatement) statement).getParameterValues2();
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/5705a180/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
index eec7f91..4a16151 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
@@ -66,6 +66,25 @@ public class DriverTest {
             assertEquals("tool", resultSet.getString(3));
         }
     }
+    
+    @Test
+    public void testStatementWithQuestionMask() throws SQLException {
+        Driver driver = new DummyDriver();
+
+        Connection conn = driver.connect("jdbc:kylin://test_url/test_db", null);
+        Statement state = conn.createStatement();
+        ResultSet resultSet = state.executeQuery("select * from test_table where url not in ('http://a.b.com/?a=b')");
+        ResultSetMetaData metadata = resultSet.getMetaData();
+        assertEquals(12, metadata.getColumnType(1));
+        assertEquals("varchar", metadata.getColumnTypeName(1));
+        assertEquals(1, metadata.isNullable(1));
+
+        while (resultSet.next()) {
+            assertEquals("foo", resultSet.getString(1));
+            assertEquals("bar", resultSet.getString(2));
+            assertEquals("tool", resultSet.getString(3));
+        }
+    }
 
     @Test
     public void testPreparedStatementWithMockData() throws SQLException {