You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2016/07/25 12:12:36 UTC

[04/50] [abbrv] kylin git commit: KYLIN-1817: support date type for PreparedStatement

KYLIN-1817: support date type for PreparedStatement

Signed-off-by: Li Yang <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/56071064
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/56071064
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/56071064

Branch: refs/heads/1.5.x-HBase1.x
Commit: 56071064f085e72373446bde00143b4e1de7e454
Parents: 13ae661
Author: Yiming Liu <li...@gmail.com>
Authored: Mon Jul 4 21:51:01 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Tue Jul 5 16:43:40 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/jdbc/KylinPreparedStatement.java  | 13 ++++++++-----
 .../java/org/apache/kylin/jdbc/KylinResultSet.java     |  2 +-
 2 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/56071064/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java
index 1a1deda..167894c 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java
@@ -25,12 +25,14 @@ import java.sql.RowId;
 import java.sql.SQLException;
 import java.sql.SQLXML;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.apache.calcite.avatica.AvaticaConnection;
 import org.apache.calcite.avatica.AvaticaPreparedStatement;
 import org.apache.calcite.avatica.Meta.Signature;
 import org.apache.calcite.avatica.Meta.StatementHandle;
+import org.apache.calcite.avatica.remote.TypedValue;
 
 public class KylinPreparedStatement extends AvaticaPreparedStatement {
 
@@ -40,12 +42,13 @@ public class KylinPreparedStatement extends AvaticaPreparedStatement {
             this.handle.signature = signature;
     }
 
-    protected List<Object> getParameterValues2() {
-        List<Object> values = new ArrayList<>(slots.length);
-        for (int i = 0; i < slots.length; i++) {
-            values.add(slots[i].value);
+    protected List<Object> getParameterJDBCValues() {
+        List<TypedValue> typeValues = getParameterValues();
+        List<Object> jdbcValues = new ArrayList<Object>(typeValues.size());
+        for(TypedValue typeValue: typeValues){
+            jdbcValues.add(typeValue.toJdbc(getCalendar()));
         }
-        return values;
+        return jdbcValues;
     }
 
     // ============================================================================

http://git-wip-us.apache.org/repos/asf/kylin/blob/56071064/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 a6117cc..1bf2555 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
@@ -53,7 +53,7 @@ public class KylinResultSet extends AvaticaResultSet {
         if (!(statement instanceof KylinPreparedStatement)) {
             params = null;
         } else if (params != null && params.size() > 0) {
-            paramValues = ((KylinPreparedStatement) statement).getParameterValues2();
+            paramValues = ((KylinPreparedStatement) statement).getParameterJDBCValues();
         }
 
         IRemoteClient client = ((KylinConnection) statement.connection).getRemoteClient();