Handle Dates correctly when parsing Date string without query

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8c785ccc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8c785ccc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8c785ccc

Branch: refs/heads/ignite-6022-proto
Commit: 8c785ccc6c3b4fde3c6580fab7f5f5c0f8d3a154
Parents: d362da5
Author: Alexander Paschenko <[email protected]>
Authored: Wed Dec 28 11:54:51 2016 +0300
Committer: Alexander Paschenko <[email protected]>
Committed: Wed Dec 28 11:54:51 2016 +0300

----------------------------------------------------------------------
 .../processors/query/h2/DmlStatementsProcessor.java         | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8c785ccc/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
index f660148..70bd2bd 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
@@ -680,7 +680,14 @@ public class DmlStatementsProcessor {
 
         Value h2Val = desc.wrap(val, objType);
 
-        return h2Val.convertTo(type).getObject();
+        Object res = h2Val.convertTo(type).getObject();
+
+        if (res instanceof Date && res.getClass() != Date.class && expCls == 
Date.class) {
+            // We can get a Timestamp instead of Date when converting a String 
to Date without query - let's handle this
+            return new Date(((Date) res).getTime());
+        }
+
+        return res;
     }
 
     /**

Reply via email to