You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2016/12/01 23:26:53 UTC
hive git commit: HIVE-15291: Comparison of timestamp fails if only
date part is provided (Dhiraj Kumar, reviewed by Jason Dere)
Repository: hive
Updated Branches:
refs/heads/master e5baa7617 -> d53aa79ca
HIVE-15291: Comparison of timestamp fails if only date part is provided (Dhiraj Kumar, reviewed by Jason Dere)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/d53aa79c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/d53aa79c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/d53aa79c
Branch: refs/heads/master
Commit: d53aa79caf9f1574a05a98d8b899ca13a5c5b24f
Parents: e5baa76
Author: Jason Dere <jd...@hortonworks.com>
Authored: Thu Dec 1 15:25:54 2016 -0800
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Thu Dec 1 15:25:54 2016 -0800
----------------------------------------------------------------------
.../clientpositive/timestamp_date_only.q | 3 +++
.../clientpositive/timestamp_date_only.q.out | 27 ++++++++++++++++++++
.../PrimitiveObjectInspectorUtils.java | 3 +++
.../TestPrimitiveObjectInspectorUtils.java | 6 +++++
4 files changed, 39 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/d53aa79c/ql/src/test/queries/clientpositive/timestamp_date_only.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/timestamp_date_only.q b/ql/src/test/queries/clientpositive/timestamp_date_only.q
new file mode 100644
index 0000000..324938e
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/timestamp_date_only.q
@@ -0,0 +1,3 @@
+select cast("2016-12-29 23:59:59" as timestamp) < "2016-12-30";
+select cast("2016-12-30 00:00:00" as timestamp) = "2016-12-30";
+select cast("2016-12-30 00:00:01" as timestamp) > "2016-12-30";
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d53aa79c/ql/src/test/results/clientpositive/timestamp_date_only.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/timestamp_date_only.q.out b/ql/src/test/results/clientpositive/timestamp_date_only.q.out
new file mode 100644
index 0000000..8f37a29
--- /dev/null
+++ b/ql/src/test/results/clientpositive/timestamp_date_only.q.out
@@ -0,0 +1,27 @@
+PREHOOK: query: select cast("2016-12-29 23:59:59" as timestamp) < "2016-12-30"
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select cast("2016-12-29 23:59:59" as timestamp) < "2016-12-30"
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+true
+PREHOOK: query: select cast("2016-12-30 00:00:00" as timestamp) = "2016-12-30"
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select cast("2016-12-30 00:00:00" as timestamp) = "2016-12-30"
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+true
+PREHOOK: query: select cast("2016-12-30 00:00:01" as timestamp) > "2016-12-30"
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select cast("2016-12-30 00:00:01" as timestamp) > "2016-12-30"
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+true
http://git-wip-us.apache.org/repos/asf/hive/blob/d53aa79c/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java
index 51b529e..26b19f5 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java
@@ -1133,6 +1133,9 @@ public final class PrimitiveObjectInspectorUtils {
s = s.substring(0, periodIdx + 10);
}
}
+ if (s.indexOf(' ') < 0) {
+ s = s.concat(" 00:00:00");
+ }
try {
result = Timestamp.valueOf(s);
} catch (IllegalArgumentException e) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d53aa79c/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/primitive/TestPrimitiveObjectInspectorUtils.java
----------------------------------------------------------------------
diff --git a/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/primitive/TestPrimitiveObjectInspectorUtils.java b/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/primitive/TestPrimitiveObjectInspectorUtils.java
index 1c00e16..ca37b1a 100644
--- a/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/primitive/TestPrimitiveObjectInspectorUtils.java
+++ b/serde/src/test/org/apache/hadoop/hive/serde2/objectinspector/primitive/TestPrimitiveObjectInspectorUtils.java
@@ -217,4 +217,10 @@ public class TestPrimitiveObjectInspectorUtils extends TestCase {
.getPrimitiveJavaObjectInspector(PrimitiveCategory.TIMESTAMP);
assertEquals("2015-02-07 15:01:22.123", gmtDateFormat.format(PrimitiveObjectInspectorUtils.getTimestamp(new Timestamp(1423321282123L), timestampOI, true)));
}
+
+ @Test
+ public void testGetTimestampFromString() {
+ DateFormat localDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+ assertEquals("2015-02-07 00:00:00.000", localDateFormat.format(PrimitiveObjectInspectorUtils.getTimestampFromString("2015-02-07")));
+ }
}