You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ma...@apache.org on 2014/07/21 09:47:04 UTC

[1/2] [SPARK-2190][SQL] Specialized ColumnType for Timestamp

Repository: spark
Updated Branches:
  refs/heads/master db56f2df1 -> cd273a238


http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-52-de3c42ab06c17ae895fd7deaf7bd9571
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-52-de3c42ab06c17ae895fd7deaf7bd9571 b/sql/hive/src/test/resources/golden/timestamp_2-52-de3c42ab06c17ae895fd7deaf7bd9571
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-52-de3c42ab06c17ae895fd7deaf7bd9571
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-53-da3937d21b7c2cfe1e624e812ae1d3ef
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-53-da3937d21b7c2cfe1e624e812ae1d3ef b/sql/hive/src/test/resources/golden/timestamp_2-53-da3937d21b7c2cfe1e624e812ae1d3ef
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-53-da3937d21b7c2cfe1e624e812ae1d3ef
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-54-252aebfe7882335d31bfc53a8705b7a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-54-252aebfe7882335d31bfc53a8705b7a b/sql/hive/src/test/resources/golden/timestamp_2-54-252aebfe7882335d31bfc53a8705b7a
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-54-252aebfe7882335d31bfc53a8705b7a
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-55-5181279a0bf8939fe46ddacae015dad8
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-55-5181279a0bf8939fe46ddacae015dad8 b/sql/hive/src/test/resources/golden/timestamp_2-55-5181279a0bf8939fe46ddacae015dad8
new file mode 100644
index 0000000..3eefb34
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-55-5181279a0bf8939fe46ddacae015dad8
@@ -0,0 +1 @@
+1.293872461001E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-56-240fce5f58794fa051824e8732c00c03
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-56-240fce5f58794fa051824e8732c00c03 b/sql/hive/src/test/resources/golden/timestamp_2-56-240fce5f58794fa051824e8732c00c03
new file mode 100644
index 0000000..acce9d9
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-56-240fce5f58794fa051824e8732c00c03
@@ -0,0 +1 @@
+2011-01-01 01:01:01.001000011

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-57-ea7192a4a5a985bcc8aab9aa79d9f028
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-57-ea7192a4a5a985bcc8aab9aa79d9f028 b/sql/hive/src/test/resources/golden/timestamp_2-57-ea7192a4a5a985bcc8aab9aa79d9f028
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-6-5bdbf67419cc060b82d091d80ce59bf9
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-6-5bdbf67419cc060b82d091d80ce59bf9 b/sql/hive/src/test/resources/golden/timestamp_2-6-5bdbf67419cc060b82d091d80ce59bf9
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-6-5bdbf67419cc060b82d091d80ce59bf9
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-7-de3c42ab06c17ae895fd7deaf7bd9571
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-7-de3c42ab06c17ae895fd7deaf7bd9571 b/sql/hive/src/test/resources/golden/timestamp_2-7-de3c42ab06c17ae895fd7deaf7bd9571
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-7-de3c42ab06c17ae895fd7deaf7bd9571
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-8-da3937d21b7c2cfe1e624e812ae1d3ef
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-8-da3937d21b7c2cfe1e624e812ae1d3ef b/sql/hive/src/test/resources/golden/timestamp_2-8-da3937d21b7c2cfe1e624e812ae1d3ef
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-8-da3937d21b7c2cfe1e624e812ae1d3ef
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-9-252aebfe7882335d31bfc53a8705b7a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-9-252aebfe7882335d31bfc53a8705b7a b/sql/hive/src/test/resources/golden/timestamp_2-9-252aebfe7882335d31bfc53a8705b7a
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-9-252aebfe7882335d31bfc53a8705b7a
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_lazy-2-cdb72e0c24fd9277a41fe0c7b1392e34
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_lazy-2-cdb72e0c24fd9277a41fe0c7b1392e34 b/sql/hive/src/test/resources/golden/timestamp_lazy-2-cdb72e0c24fd9277a41fe0c7b1392e34
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_lazy-3-79e0c72c4fb3b259dfbffd245ccaa636
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_lazy-3-79e0c72c4fb3b259dfbffd245ccaa636 b/sql/hive/src/test/resources/golden/timestamp_lazy-3-79e0c72c4fb3b259dfbffd245ccaa636
new file mode 100644
index 0000000..e6bfe0b
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_lazy-3-79e0c72c4fb3b259dfbffd245ccaa636
@@ -0,0 +1,5 @@
+2011-01-01 01:01:01	165	val_165
+2011-01-01 01:01:01	238	val_238
+2011-01-01 01:01:01	27	val_27
+2011-01-01 01:01:01	311	val_311
+2011-01-01 01:01:01	86	val_86

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_lazy-4-b4c4417ce9f08baeb82ffde6ef1baa25
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_lazy-4-b4c4417ce9f08baeb82ffde6ef1baa25 b/sql/hive/src/test/resources/golden/timestamp_lazy-4-b4c4417ce9f08baeb82ffde6ef1baa25
new file mode 100644
index 0000000..e6bfe0b
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_lazy-4-b4c4417ce9f08baeb82ffde6ef1baa25
@@ -0,0 +1,5 @@
+2011-01-01 01:01:01	165	val_165
+2011-01-01 01:01:01	238	val_238
+2011-01-01 01:01:01	27	val_27
+2011-01-01 01:01:01	311	val_311
+2011-01-01 01:01:01	86	val_86

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-0-d555c8cd733572bfa8cd3362da9480cb
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-0-d555c8cd733572bfa8cd3362da9480cb b/sql/hive/src/test/resources/golden/udf_unix_timestamp-0-d555c8cd733572bfa8cd3362da9480cb
new file mode 100644
index 0000000..9913d42
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/udf_unix_timestamp-0-d555c8cd733572bfa8cd3362da9480cb
@@ -0,0 +1 @@
+unix_timestamp([date[, pattern]]) - Returns the UNIX timestamp

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-1-8a9dbadae706047715cf5f903ff4a724
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-1-8a9dbadae706047715cf5f903ff4a724 b/sql/hive/src/test/resources/golden/udf_unix_timestamp-1-8a9dbadae706047715cf5f903ff4a724
new file mode 100644
index 0000000..ef4aa8e
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/udf_unix_timestamp-1-8a9dbadae706047715cf5f903ff4a724
@@ -0,0 +1,2 @@
+unix_timestamp([date[, pattern]]) - Returns the UNIX timestamp
+Converts the current or specified time to number of seconds since 1970-01-01.

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-2-28c40e51e55bed62693e626efda5d9c5
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-2-28c40e51e55bed62693e626efda5d9c5 b/sql/hive/src/test/resources/golden/udf_unix_timestamp-2-28c40e51e55bed62693e626efda5d9c5
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-3-732b21d386f2002b87eaf02d0b9951ed
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-3-732b21d386f2002b87eaf02d0b9951ed b/sql/hive/src/test/resources/golden/udf_unix_timestamp-3-732b21d386f2002b87eaf02d0b9951ed
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-4-b2e42ebb75cecf09961d36587797f6d0
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-4-b2e42ebb75cecf09961d36587797f6d0 b/sql/hive/src/test/resources/golden/udf_unix_timestamp-4-b2e42ebb75cecf09961d36587797f6d0
new file mode 100644
index 0000000..31aaa95
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/udf_unix_timestamp-4-b2e42ebb75cecf09961d36587797f6d0
@@ -0,0 +1 @@
+2009-03-20 11:30:01	1237573801

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-5-31243f5cb64356425b9f95ba011ac9d6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-5-31243f5cb64356425b9f95ba011ac9d6 b/sql/hive/src/test/resources/golden/udf_unix_timestamp-5-31243f5cb64356425b9f95ba011ac9d6
new file mode 100644
index 0000000..6d9ee69
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/udf_unix_timestamp-5-31243f5cb64356425b9f95ba011ac9d6
@@ -0,0 +1 @@
+2009-03-20	1237532400

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-6-9b0f20bde1aaf9102b67a5498b167f31
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-6-9b0f20bde1aaf9102b67a5498b167f31 b/sql/hive/src/test/resources/golden/udf_unix_timestamp-6-9b0f20bde1aaf9102b67a5498b167f31
new file mode 100644
index 0000000..e1d0cbb
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/udf_unix_timestamp-6-9b0f20bde1aaf9102b67a5498b167f31
@@ -0,0 +1 @@
+2009 Mar 20 11:30:01 am	1237573801

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/udf_unix_timestamp-7-47f433ff6ccce4c666440cc1a228a96d
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/udf_unix_timestamp-7-47f433ff6ccce4c666440cc1a228a96d b/sql/hive/src/test/resources/golden/udf_unix_timestamp-7-47f433ff6ccce4c666440cc1a228a96d
new file mode 100644
index 0000000..6b40e68
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/udf_unix_timestamp-7-47f433ff6ccce4c666440cc1a228a96d
@@ -0,0 +1 @@
+random_string	NULL

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveCompatibilitySuite.scala
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveCompatibilitySuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveCompatibilitySuite.scala
index 63dbe57..fd44325 100644
--- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveCompatibilitySuite.scala
+++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveCompatibilitySuite.scala
@@ -18,6 +18,7 @@
 package org.apache.spark.sql.hive.execution
 
 import java.io.File
+import java.util.TimeZone
 
 import org.scalatest.BeforeAndAfter
 
@@ -31,14 +32,20 @@ class HiveCompatibilitySuite extends HiveQueryFileTest with BeforeAndAfter {
   lazy val hiveQueryDir = TestHive.getHiveFile("ql" + File.separator + "src" +
     File.separator + "test" + File.separator + "queries" + File.separator + "clientpositive")
 
+  var originalTimeZone: TimeZone = _
+
   def testCases = hiveQueryDir.listFiles.map(f => f.getName.stripSuffix(".q") -> f)
 
   override def beforeAll() {
     TestHive.cacheTables = true
+    // Timezone is fixed to America/Los_Angeles for those timezone sensitive tests (timestamp_*)
+    originalTimeZone = TimeZone.getDefault
+    TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"))
   }
 
   override def afterAll() {
     TestHive.cacheTables = false
+    TimeZone.setDefault(originalTimeZone)
   }
 
   /** A list of tests deemed out of scope currently and thus completely disregarded. */
@@ -92,8 +99,8 @@ class HiveCompatibilitySuite extends HiveQueryFileTest with BeforeAndAfter {
     "create_view_translate",
     "partitions_json",
 
-    // Timezone specific test answers.
-    "udf_unix_timestamp",
+    // This test is totally fine except that it includes wrong queries and expects errors, but error
+    // message format in Hive and Spark SQL differ. Should workaround this later.
     "udf_to_unix_timestamp",
 
     // Cant run without local map/reduce.
@@ -659,8 +666,11 @@ class HiveCompatibilitySuite extends HiveQueryFileTest with BeforeAndAfter {
     "stats_publisher_error_1",
     "subq2",
     "tablename_with_select",
+    "timestamp_1",
+    "timestamp_2",
     "timestamp_3",
     "timestamp_comparison",
+    "timestamp_lazy",
     "timestamp_null",
     "timestamp_udf",
     "touch",
@@ -802,6 +812,7 @@ class HiveCompatibilitySuite extends HiveQueryFileTest with BeforeAndAfter {
     "udf_translate",
     "udf_trim",
     "udf_ucase",
+    "udf_unix_timestamp",
     "udf_upper",
     "udf_var_pop",
     "udf_var_samp",


[2/2] git commit: [SPARK-2190][SQL] Specialized ColumnType for Timestamp

Posted by ma...@apache.org.
[SPARK-2190][SQL] Specialized ColumnType for Timestamp

JIRA issue: [SPARK-2190](https://issues.apache.org/jira/browse/SPARK-2190)

Added specialized in-memory column type for `Timestamp`. Whitelisted all timestamp related Hive tests except `timestamp_udf`, which is timezone sensitive.

Author: Cheng Lian <li...@gmail.com>

Closes #1440 from liancheng/timestamp-column-type and squashes the following commits:

e682175 [Cheng Lian] Enabled more timezone sensitive Hive tests.
53a358f [Cheng Lian] Fixed failed test suites
01b592d [Cheng Lian] Fixed SimpleDateFormat thread safety issue
2a59343 [Cheng Lian] Removed timezone sensitive Hive timestamp tests
45dd05d [Cheng Lian] Added Timestamp specific in-memory columnar representation


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

Branch: refs/heads/master
Commit: cd273a238144a9a436219cd01250369586f5638b
Parents: db56f2d
Author: Cheng Lian <li...@gmail.com>
Authored: Mon Jul 21 00:46:28 2014 -0700
Committer: Michael Armbrust <mi...@databricks.com>
Committed: Mon Jul 21 00:46:28 2014 -0700

----------------------------------------------------------------------
 .gitignore                                      |  1 +
 .../spark/sql/catalyst/expressions/Cast.scala   | 23 ++++++++++
 .../expressions/ExpressionEvaluationSuite.scala | 22 ++++-----
 .../spark/sql/columnar/ColumnAccessor.scala     | 24 +++++-----
 .../spark/sql/columnar/ColumnBuilder.scala      |  3 ++
 .../apache/spark/sql/columnar/ColumnStats.scala | 37 +++++++++++++--
 .../apache/spark/sql/columnar/ColumnType.scala  | 47 +++++++++++++++-----
 .../spark/sql/columnar/ColumnStatsSuite.scala   | 17 +++----
 .../spark/sql/columnar/ColumnTypeSuite.scala    | 34 ++++++--------
 .../spark/sql/columnar/ColumnarTestUtils.scala  | 25 ++++++-----
 .../org/apache/spark/sql/hive/HiveContext.scala |  3 ++
 ...estamp_1-10-343c75daac6695917608c17db8bf473e |  1 +
 ...estamp_1-11-cf19f7359a6d3456c4526b2c69f92d6a |  1 +
 ...estamp_1-12-6328d3b3dfd295dd5ec453ffb47ff4d0 |  0
 ...estamp_1-13-90269c1e50c7ae8e75ca9cc297982135 |  1 +
 ...estamp_1-14-e6bfca320c4ee3aff39cf2f179d57da6 |  1 +
 ...estamp_1-15-d0291a9bd42054b2732cb4f54cf39ae7 |  1 +
 ...estamp_1-16-e7b398d2a8107a42419c83771bda41e6 |  1 +
 ...estamp_1-17-a3eeec08bccae78d0d94ad2cb923e1cf |  1 +
 ...estamp_1-18-67f274bf16de625cf4e85af0c6185cac |  1 +
 ...estamp_1-19-343c75daac6695917608c17db8bf473e |  1 +
 ...estamp_1-20-cf19f7359a6d3456c4526b2c69f92d6a |  1 +
 ...estamp_1-21-d8fff1a6c464e50eb955babfafb0b98e |  0
 ...estamp_1-22-90269c1e50c7ae8e75ca9cc297982135 |  1 +
 ...estamp_1-23-e6bfca320c4ee3aff39cf2f179d57da6 |  1 +
 ...estamp_1-24-d0291a9bd42054b2732cb4f54cf39ae7 |  1 +
 ...estamp_1-25-e7b398d2a8107a42419c83771bda41e6 |  1 +
 ...estamp_1-26-a3eeec08bccae78d0d94ad2cb923e1cf |  1 +
 ...estamp_1-27-67f274bf16de625cf4e85af0c6185cac |  1 +
 ...estamp_1-28-343c75daac6695917608c17db8bf473e |  1 +
 ...estamp_1-29-cf19f7359a6d3456c4526b2c69f92d6a |  1 +
 ...mestamp_1-3-819633b45e3e1779bca6bcb7b77fe5a1 |  0
 ...estamp_1-30-273256141c33eb88194cad22eb940d21 |  0
 ...estamp_1-31-90269c1e50c7ae8e75ca9cc297982135 |  1 +
 ...estamp_1-32-e6bfca320c4ee3aff39cf2f179d57da6 |  1 +
 ...estamp_1-33-d0291a9bd42054b2732cb4f54cf39ae7 |  1 +
 ...estamp_1-34-e7b398d2a8107a42419c83771bda41e6 |  1 +
 ...estamp_1-35-a3eeec08bccae78d0d94ad2cb923e1cf |  1 +
 ...estamp_1-36-67f274bf16de625cf4e85af0c6185cac |  1 +
 ...estamp_1-37-343c75daac6695917608c17db8bf473e |  1 +
 ...estamp_1-38-cf19f7359a6d3456c4526b2c69f92d6a |  1 +
 ...estamp_1-39-b2fe5cc7c8ee62d3bb0c120c9a6c305d |  0
 ...mestamp_1-4-90269c1e50c7ae8e75ca9cc297982135 |  1 +
 ...estamp_1-40-90269c1e50c7ae8e75ca9cc297982135 |  1 +
 ...estamp_1-41-e6bfca320c4ee3aff39cf2f179d57da6 |  1 +
 ...estamp_1-42-d0291a9bd42054b2732cb4f54cf39ae7 |  1 +
 ...estamp_1-43-e7b398d2a8107a42419c83771bda41e6 |  1 +
 ...estamp_1-44-a3eeec08bccae78d0d94ad2cb923e1cf |  1 +
 ...estamp_1-45-67f274bf16de625cf4e85af0c6185cac |  1 +
 ...estamp_1-46-343c75daac6695917608c17db8bf473e |  1 +
 ...estamp_1-47-cf19f7359a6d3456c4526b2c69f92d6a |  1 +
 ...estamp_1-48-7029255241de8e8b9710801319990044 |  0
 ...estamp_1-49-90269c1e50c7ae8e75ca9cc297982135 |  1 +
 ...mestamp_1-5-e6bfca320c4ee3aff39cf2f179d57da6 |  1 +
 ...estamp_1-50-e6bfca320c4ee3aff39cf2f179d57da6 |  1 +
 ...estamp_1-51-d0291a9bd42054b2732cb4f54cf39ae7 |  1 +
 ...estamp_1-52-e7b398d2a8107a42419c83771bda41e6 |  1 +
 ...estamp_1-53-a3eeec08bccae78d0d94ad2cb923e1cf |  1 +
 ...estamp_1-54-67f274bf16de625cf4e85af0c6185cac |  1 +
 ...estamp_1-55-343c75daac6695917608c17db8bf473e |  1 +
 ...estamp_1-56-cf19f7359a6d3456c4526b2c69f92d6a |  1 +
 ...estamp_1-57-d362501d0176855077e65f8faf067fa8 |  0
 ...mestamp_1-6-d0291a9bd42054b2732cb4f54cf39ae7 |  1 +
 ...mestamp_1-7-e7b398d2a8107a42419c83771bda41e6 |  1 +
 ...mestamp_1-8-a3eeec08bccae78d0d94ad2cb923e1cf |  1 +
 ...mestamp_1-9-67f274bf16de625cf4e85af0c6185cac |  1 +
 ...estamp_2-10-5181279a0bf8939fe46ddacae015dad8 |  1 +
 ...estamp_2-11-240fce5f58794fa051824e8732c00c03 |  1 +
 ...estamp_2-12-7350308cbf49d6ebd6599d3802750acd |  0
 ...estamp_2-13-25f6ec69328af6cba76899194e0dd84e |  1 +
 ...estamp_2-14-93c769be4cff93bea6e62bfe4e2a8742 |  1 +
 ...estamp_2-15-5bdbf67419cc060b82d091d80ce59bf9 |  1 +
 ...estamp_2-16-de3c42ab06c17ae895fd7deaf7bd9571 |  1 +
 ...estamp_2-17-da3937d21b7c2cfe1e624e812ae1d3ef |  1 +
 ...mestamp_2-18-252aebfe7882335d31bfc53a8705b7a |  1 +
 ...estamp_2-19-5181279a0bf8939fe46ddacae015dad8 |  1 +
 ...estamp_2-20-240fce5f58794fa051824e8732c00c03 |  1 +
 ...mestamp_2-21-5eb58e5d3c5b9f766f0b497bf59c47b |  0
 ...estamp_2-22-25f6ec69328af6cba76899194e0dd84e |  1 +
 ...estamp_2-23-93c769be4cff93bea6e62bfe4e2a8742 |  1 +
 ...estamp_2-24-5bdbf67419cc060b82d091d80ce59bf9 |  1 +
 ...estamp_2-25-de3c42ab06c17ae895fd7deaf7bd9571 |  1 +
 ...estamp_2-26-da3937d21b7c2cfe1e624e812ae1d3ef |  1 +
 ...mestamp_2-27-252aebfe7882335d31bfc53a8705b7a |  1 +
 ...estamp_2-28-5181279a0bf8939fe46ddacae015dad8 |  1 +
 ...estamp_2-29-240fce5f58794fa051824e8732c00c03 |  1 +
 ...mestamp_2-3-a95a52c3a66e1f211ea04a0a10bd3b74 |  0
 ...estamp_2-30-ffe6b6ddaaba84152074f7781fba2243 |  0
 ...estamp_2-31-25f6ec69328af6cba76899194e0dd84e |  1 +
 ...estamp_2-32-93c769be4cff93bea6e62bfe4e2a8742 |  1 +
 ...estamp_2-33-5bdbf67419cc060b82d091d80ce59bf9 |  1 +
 ...estamp_2-34-de3c42ab06c17ae895fd7deaf7bd9571 |  1 +
 ...estamp_2-35-da3937d21b7c2cfe1e624e812ae1d3ef |  1 +
 ...mestamp_2-36-252aebfe7882335d31bfc53a8705b7a |  1 +
 ...estamp_2-37-5181279a0bf8939fe46ddacae015dad8 |  1 +
 ...estamp_2-38-240fce5f58794fa051824e8732c00c03 |  1 +
 ...estamp_2-39-8236608f28681eac5503195096a34181 |  0
 ...mestamp_2-4-25f6ec69328af6cba76899194e0dd84e |  1 +
 ...estamp_2-40-25f6ec69328af6cba76899194e0dd84e |  1 +
 ...estamp_2-41-93c769be4cff93bea6e62bfe4e2a8742 |  1 +
 ...estamp_2-42-5bdbf67419cc060b82d091d80ce59bf9 |  1 +
 ...estamp_2-43-de3c42ab06c17ae895fd7deaf7bd9571 |  1 +
 ...estamp_2-44-da3937d21b7c2cfe1e624e812ae1d3ef |  1 +
 ...mestamp_2-45-252aebfe7882335d31bfc53a8705b7a |  1 +
 ...estamp_2-46-5181279a0bf8939fe46ddacae015dad8 |  1 +
 ...estamp_2-47-240fce5f58794fa051824e8732c00c03 |  1 +
 ...estamp_2-48-654e5533ec6dc911996abc7e47af8ccb |  0
 ...estamp_2-49-25f6ec69328af6cba76899194e0dd84e |  1 +
 ...mestamp_2-5-93c769be4cff93bea6e62bfe4e2a8742 |  1 +
 ...estamp_2-50-93c769be4cff93bea6e62bfe4e2a8742 |  1 +
 ...estamp_2-51-5bdbf67419cc060b82d091d80ce59bf9 |  1 +
 ...estamp_2-52-de3c42ab06c17ae895fd7deaf7bd9571 |  1 +
 ...estamp_2-53-da3937d21b7c2cfe1e624e812ae1d3ef |  1 +
 ...mestamp_2-54-252aebfe7882335d31bfc53a8705b7a |  1 +
 ...estamp_2-55-5181279a0bf8939fe46ddacae015dad8 |  1 +
 ...estamp_2-56-240fce5f58794fa051824e8732c00c03 |  1 +
 ...estamp_2-57-ea7192a4a5a985bcc8aab9aa79d9f028 |  0
 ...mestamp_2-6-5bdbf67419cc060b82d091d80ce59bf9 |  1 +
 ...mestamp_2-7-de3c42ab06c17ae895fd7deaf7bd9571 |  1 +
 ...mestamp_2-8-da3937d21b7c2cfe1e624e812ae1d3ef |  1 +
 ...imestamp_2-9-252aebfe7882335d31bfc53a8705b7a |  1 +
 ...tamp_lazy-2-cdb72e0c24fd9277a41fe0c7b1392e34 |  0
 ...tamp_lazy-3-79e0c72c4fb3b259dfbffd245ccaa636 |  5 +++
 ...tamp_lazy-4-b4c4417ce9f08baeb82ffde6ef1baa25 |  5 +++
 ...timestamp-0-d555c8cd733572bfa8cd3362da9480cb |  1 +
 ...timestamp-1-8a9dbadae706047715cf5f903ff4a724 |  2 +
 ...timestamp-2-28c40e51e55bed62693e626efda5d9c5 |  0
 ...timestamp-3-732b21d386f2002b87eaf02d0b9951ed |  0
 ...timestamp-4-b2e42ebb75cecf09961d36587797f6d0 |  1 +
 ...timestamp-5-31243f5cb64356425b9f95ba011ac9d6 |  1 +
 ...timestamp-6-9b0f20bde1aaf9102b67a5498b167f31 |  1 +
 ...timestamp-7-47f433ff6ccce4c666440cc1a228a96d |  1 +
 .../hive/execution/HiveCompatibilitySuite.scala | 15 ++++++-
 133 files changed, 287 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 4f177c8..061c894 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,7 @@ conf/spark-env.sh
 conf/streaming-env.sh
 conf/log4j.properties
 conf/spark-defaults.conf
+conf/hive-site.xml
 docs/_site
 docs/api
 target/

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
index 1f9716e..0ad2b30 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala
@@ -18,6 +18,7 @@
 package org.apache.spark.sql.catalyst.expressions
 
 import java.sql.Timestamp
+import java.text.{DateFormat, SimpleDateFormat}
 
 import org.apache.spark.sql.catalyst.types._
 
@@ -41,6 +42,7 @@ case class Cast(child: Expression, dataType: DataType) extends UnaryExpression {
   // UDFToString
   private[this] def castToString: Any => Any = child.dataType match {
     case BinaryType => buildCast[Array[Byte]](_, new String(_, "UTF-8"))
+    case TimestampType => buildCast[Timestamp](_, timestampToString)
     case _ => buildCast[Any](_, _.toString)
   }
 
@@ -126,6 +128,18 @@ case class Cast(child: Expression, dataType: DataType) extends UnaryExpression {
     ts.getTime / 1000 + ts.getNanos.toDouble / 1000000000
   }
 
+  // Converts Timestamp to string according to Hive TimestampWritable convention
+  private[this] def timestampToString(ts: Timestamp): String = {
+    val timestampString = ts.toString
+    val formatted = Cast.threadLocalDateFormat.get.format(ts)
+
+    if (timestampString.length > 19 && timestampString.substring(19) != ".0") {
+      formatted + timestampString.substring(19)
+    } else {
+      formatted
+    }
+  }
+
   private[this] def castToLong: Any => Any = child.dataType match {
     case StringType =>
       buildCast[String](_, s => try s.toLong catch {
@@ -249,3 +263,12 @@ case class Cast(child: Expression, dataType: DataType) extends UnaryExpression {
     if (evaluated == null) null else cast(evaluated)
   }
 }
+
+object Cast {
+  // `SimpleDateFormat` is not thread-safe.
+  private[sql] val threadLocalDateFormat = new ThreadLocal[DateFormat] {
+    override def initialValue() = {
+      new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
index 73f5464..db1ae29 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvaluationSuite.scala
@@ -158,7 +158,7 @@ class ExpressionEvaluationSuite extends FunSuite {
     checkEvaluation("abc" like regEx, true, new GenericRow(Array[Any]("a%")))
     checkEvaluation("abc" like regEx, false, new GenericRow(Array[Any]("b%")))
     checkEvaluation("abc" like regEx, false, new GenericRow(Array[Any]("bc%")))
-    
+
     checkEvaluation(Literal(null, StringType) like regEx, null, new GenericRow(Array[Any]("bc%")))
   }
 
@@ -203,7 +203,7 @@ class ExpressionEvaluationSuite extends FunSuite {
 
   test("data type casting") {
 
-    val sts = "1970-01-01 00:00:01.0"
+    val sts = "1970-01-01 00:00:01.1"
     val ts = Timestamp.valueOf(sts)
 
     checkEvaluation("abdef" cast StringType, "abdef")
@@ -293,7 +293,7 @@ class ExpressionEvaluationSuite extends FunSuite {
     // A test for higher precision than millis
     checkEvaluation(Cast(Cast(0.00000001, TimestampType), DoubleType), 0.00000001)
   }
-  
+
   test("null checking") {
     val row = new GenericRow(Array[Any]("^Ba*n", null, true, null))
     val c1 = 'a.string.at(0)
@@ -312,7 +312,7 @@ class ExpressionEvaluationSuite extends FunSuite {
 
     checkEvaluation(IsNull(Literal(null, ShortType)), true)
     checkEvaluation(IsNotNull(Literal(null, ShortType)), false)
-    
+
     checkEvaluation(Coalesce(c1 :: c2 :: Nil), "^Ba*n", row)
     checkEvaluation(Coalesce(Literal(null, StringType) :: Nil), null, row)
     checkEvaluation(Coalesce(Literal(null, StringType) :: c1 :: c2 :: Nil), "^Ba*n", row)
@@ -323,11 +323,11 @@ class ExpressionEvaluationSuite extends FunSuite {
     checkEvaluation(If(Literal(null, BooleanType), c2, c1), "^Ba*n", row)
     checkEvaluation(If(Literal(true, BooleanType), c1, c2), "^Ba*n", row)
     checkEvaluation(If(Literal(false, BooleanType), c2, c1), "^Ba*n", row)
-    checkEvaluation(If(Literal(false, BooleanType), 
+    checkEvaluation(If(Literal(false, BooleanType),
       Literal("a", StringType), Literal("b", StringType)), "b", row)
 
     checkEvaluation(In(c1, c1 :: c2 :: Nil), true, row)
-    checkEvaluation(In(Literal("^Ba*n", StringType), 
+    checkEvaluation(In(Literal("^Ba*n", StringType),
       Literal("^Ba*n", StringType) :: Nil), true, row)
     checkEvaluation(In(Literal("^Ba*n", StringType),
       Literal("^Ba*n", StringType) :: c2 :: Nil), true, row)
@@ -378,7 +378,7 @@ class ExpressionEvaluationSuite extends FunSuite {
 
   test("complex type") {
     val row = new GenericRow(Array[Any](
-      "^Ba*n",                                  // 0 
+      "^Ba*n",                                  // 0
       null.asInstanceOf[String],                // 1
       new GenericRow(Array[Any]("aa", "bb")),   // 2
       Map("aa"->"bb"),                          // 3
@@ -391,18 +391,18 @@ class ExpressionEvaluationSuite extends FunSuite {
     val typeMap = MapType(StringType, StringType)
     val typeArray = ArrayType(StringType)
 
-    checkEvaluation(GetItem(BoundReference(3, AttributeReference("c", typeMap)()), 
+    checkEvaluation(GetItem(BoundReference(3, AttributeReference("c", typeMap)()),
       Literal("aa")), "bb", row)
     checkEvaluation(GetItem(Literal(null, typeMap), Literal("aa")), null, row)
     checkEvaluation(GetItem(Literal(null, typeMap), Literal(null, StringType)), null, row)
-    checkEvaluation(GetItem(BoundReference(3, AttributeReference("c", typeMap)()), 
+    checkEvaluation(GetItem(BoundReference(3, AttributeReference("c", typeMap)()),
       Literal(null, StringType)), null, row)
 
-    checkEvaluation(GetItem(BoundReference(4, AttributeReference("c", typeArray)()), 
+    checkEvaluation(GetItem(BoundReference(4, AttributeReference("c", typeArray)()),
       Literal(1)), "bb", row)
     checkEvaluation(GetItem(Literal(null, typeArray), Literal(1)), null, row)
     checkEvaluation(GetItem(Literal(null, typeArray), Literal(null, IntegerType)), null, row)
-    checkEvaluation(GetItem(BoundReference(4, AttributeReference("c", typeArray)()), 
+    checkEvaluation(GetItem(BoundReference(4, AttributeReference("c", typeArray)()),
       Literal(null, IntegerType)), null, row)
 
     checkEvaluation(GetField(BoundReference(2, AttributeReference("c", typeS)()), "a"), "aa", row)

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnAccessor.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnAccessor.scala b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnAccessor.scala
index 3c39e1d..42a5a9a 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnAccessor.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnAccessor.scala
@@ -90,6 +90,9 @@ private[sql] class FloatColumnAccessor(buffer: ByteBuffer)
 private[sql] class StringColumnAccessor(buffer: ByteBuffer)
   extends NativeColumnAccessor(buffer, STRING)
 
+private[sql] class TimestampColumnAccessor(buffer: ByteBuffer)
+  extends NativeColumnAccessor(buffer, TIMESTAMP)
+
 private[sql] class BinaryColumnAccessor(buffer: ByteBuffer)
   extends BasicColumnAccessor[BinaryType.type, Array[Byte]](buffer, BINARY)
   with NullableColumnAccessor
@@ -105,16 +108,17 @@ private[sql] object ColumnAccessor {
     val columnTypeId = dup.getInt()
 
     columnTypeId match {
-      case INT.typeId     => new IntColumnAccessor(dup)
-      case LONG.typeId    => new LongColumnAccessor(dup)
-      case FLOAT.typeId   => new FloatColumnAccessor(dup)
-      case DOUBLE.typeId  => new DoubleColumnAccessor(dup)
-      case BOOLEAN.typeId => new BooleanColumnAccessor(dup)
-      case BYTE.typeId    => new ByteColumnAccessor(dup)
-      case SHORT.typeId   => new ShortColumnAccessor(dup)
-      case STRING.typeId  => new StringColumnAccessor(dup)
-      case BINARY.typeId  => new BinaryColumnAccessor(dup)
-      case GENERIC.typeId => new GenericColumnAccessor(dup)
+      case INT.typeId       => new IntColumnAccessor(dup)
+      case LONG.typeId      => new LongColumnAccessor(dup)
+      case FLOAT.typeId     => new FloatColumnAccessor(dup)
+      case DOUBLE.typeId    => new DoubleColumnAccessor(dup)
+      case BOOLEAN.typeId   => new BooleanColumnAccessor(dup)
+      case BYTE.typeId      => new ByteColumnAccessor(dup)
+      case SHORT.typeId     => new ShortColumnAccessor(dup)
+      case STRING.typeId    => new StringColumnAccessor(dup)
+      case TIMESTAMP.typeId => new TimestampColumnAccessor(dup)
+      case BINARY.typeId    => new BinaryColumnAccessor(dup)
+      case GENERIC.typeId   => new GenericColumnAccessor(dup)
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnBuilder.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnBuilder.scala b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnBuilder.scala
index 4be048c..74f5630 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnBuilder.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnBuilder.scala
@@ -109,6 +109,9 @@ private[sql] class FloatColumnBuilder extends NativeColumnBuilder(new FloatColum
 
 private[sql] class StringColumnBuilder extends NativeColumnBuilder(new StringColumnStats, STRING)
 
+private[sql] class TimestampColumnBuilder
+  extends NativeColumnBuilder(new TimestampColumnStats, TIMESTAMP)
+
 private[sql] class BinaryColumnBuilder extends ComplexColumnBuilder(BINARY)
 
 // TODO (lian) Add support for array, struct and map

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnStats.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnStats.scala b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnStats.scala
index 95602d3..6502110 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnStats.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnStats.scala
@@ -344,21 +344,52 @@ private[sql] class StringColumnStats extends BasicColumnStats(STRING) {
   }
 
   override def contains(row: Row, ordinal: Int) = {
-    !(upperBound eq null) && {
+    (upperBound ne null) && {
       val field = columnType.getField(row, ordinal)
       lowerBound.compareTo(field) <= 0 && field.compareTo(upperBound) <= 0
     }
   }
 
   override def isAbove(row: Row, ordinal: Int) = {
-    !(upperBound eq null) && {
+    (upperBound ne null) && {
       val field = columnType.getField(row, ordinal)
       field.compareTo(upperBound) < 0
     }
   }
 
   override def isBelow(row: Row, ordinal: Int) = {
-    !(lowerBound eq null) && {
+    (lowerBound ne null) && {
+      val field = columnType.getField(row, ordinal)
+      lowerBound.compareTo(field) < 0
+    }
+  }
+}
+
+private[sql] class TimestampColumnStats extends BasicColumnStats(TIMESTAMP) {
+  override def initialBounds = (null, null)
+
+  override def gatherStats(row: Row, ordinal: Int) {
+    val field = columnType.getField(row, ordinal)
+    if ((upperBound eq null) || field.compareTo(upperBound) > 0) _upper = field
+    if ((lowerBound eq null) || field.compareTo(lowerBound) < 0) _lower = field
+  }
+
+  override def contains(row: Row, ordinal: Int) = {
+    (upperBound ne null) && {
+      val field = columnType.getField(row, ordinal)
+      lowerBound.compareTo(field) <= 0 && field.compareTo(upperBound) <= 0
+    }
+  }
+
+  override def isAbove(row: Row, ordinal: Int) = {
+    (lowerBound ne null) && {
+      val field = columnType.getField(row, ordinal)
+      field.compareTo(upperBound) < 0
+    }
+  }
+
+  override def isBelow(row: Row, ordinal: Int) = {
+    (lowerBound ne null) && {
       val field = columnType.getField(row, ordinal)
       lowerBound.compareTo(field) < 0
     }

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnType.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnType.scala b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnType.scala
index 4cd52d8..794bc60 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnType.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/columnar/ColumnType.scala
@@ -21,6 +21,8 @@ import java.nio.ByteBuffer
 
 import scala.reflect.runtime.universe.TypeTag
 
+import java.sql.Timestamp
+
 import org.apache.spark.sql.Row
 import org.apache.spark.sql.catalyst.expressions.MutableRow
 import org.apache.spark.sql.catalyst.types._
@@ -221,6 +223,26 @@ private[sql] object STRING extends NativeColumnType(StringType, 7, 8) {
   override def getField(row: Row, ordinal: Int) = row.getString(ordinal)
 }
 
+private[sql] object TIMESTAMP extends NativeColumnType(TimestampType, 8, 12) {
+  override def extract(buffer: ByteBuffer) = {
+    val timestamp = new Timestamp(buffer.getLong())
+    timestamp.setNanos(buffer.getInt())
+    timestamp
+  }
+
+  override def append(v: Timestamp, buffer: ByteBuffer) {
+    buffer.putLong(v.getTime).putInt(v.getNanos)
+  }
+
+  override def getField(row: Row, ordinal: Int) = {
+    row(ordinal).asInstanceOf[Timestamp]
+  }
+
+  override def setField(row: MutableRow, ordinal: Int, value: Timestamp) {
+    row(ordinal) = value
+  }
+}
+
 private[sql] sealed abstract class ByteArrayColumnType[T <: DataType](
     typeId: Int,
     defaultSize: Int)
@@ -240,7 +262,7 @@ private[sql] sealed abstract class ByteArrayColumnType[T <: DataType](
   }
 }
 
-private[sql] object BINARY extends ByteArrayColumnType[BinaryType.type](8, 16) {
+private[sql] object BINARY extends ByteArrayColumnType[BinaryType.type](9, 16) {
   override def setField(row: MutableRow, ordinal: Int, value: Array[Byte]) {
     row(ordinal) = value
   }
@@ -251,7 +273,7 @@ private[sql] object BINARY extends ByteArrayColumnType[BinaryType.type](8, 16) {
 // Used to process generic objects (all types other than those listed above). Objects should be
 // serialized first before appending to the column `ByteBuffer`, and is also extracted as serialized
 // byte array.
-private[sql] object GENERIC extends ByteArrayColumnType[DataType](9, 16) {
+private[sql] object GENERIC extends ByteArrayColumnType[DataType](10, 16) {
   override def setField(row: MutableRow, ordinal: Int, value: Array[Byte]) {
     row(ordinal) = SparkSqlSerializer.deserialize[Any](value)
   }
@@ -262,16 +284,17 @@ private[sql] object GENERIC extends ByteArrayColumnType[DataType](9, 16) {
 private[sql] object ColumnType {
   def apply(dataType: DataType): ColumnType[_, _] = {
     dataType match {
-      case IntegerType => INT
-      case LongType    => LONG
-      case FloatType   => FLOAT
-      case DoubleType  => DOUBLE
-      case BooleanType => BOOLEAN
-      case ByteType    => BYTE
-      case ShortType   => SHORT
-      case StringType  => STRING
-      case BinaryType  => BINARY
-      case _           => GENERIC
+      case IntegerType   => INT
+      case LongType      => LONG
+      case FloatType     => FLOAT
+      case DoubleType    => DOUBLE
+      case BooleanType   => BOOLEAN
+      case ByteType      => BYTE
+      case ShortType     => SHORT
+      case StringType    => STRING
+      case BinaryType    => BINARY
+      case TimestampType => TIMESTAMP
+      case _             => GENERIC
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnStatsSuite.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnStatsSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnStatsSuite.scala
index 6f0d46d..5f61fb5 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnStatsSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnStatsSuite.scala
@@ -22,14 +22,15 @@ import org.scalatest.FunSuite
 import org.apache.spark.sql.catalyst.types._
 
 class ColumnStatsSuite extends FunSuite {
-  testColumnStats(classOf[BooleanColumnStats], BOOLEAN)
-  testColumnStats(classOf[ByteColumnStats],    BYTE)
-  testColumnStats(classOf[ShortColumnStats],   SHORT)
-  testColumnStats(classOf[IntColumnStats],     INT)
-  testColumnStats(classOf[LongColumnStats],    LONG)
-  testColumnStats(classOf[FloatColumnStats],   FLOAT)
-  testColumnStats(classOf[DoubleColumnStats],  DOUBLE)
-  testColumnStats(classOf[StringColumnStats],  STRING)
+  testColumnStats(classOf[BooleanColumnStats],   BOOLEAN)
+  testColumnStats(classOf[ByteColumnStats],      BYTE)
+  testColumnStats(classOf[ShortColumnStats],     SHORT)
+  testColumnStats(classOf[IntColumnStats],       INT)
+  testColumnStats(classOf[LongColumnStats],      LONG)
+  testColumnStats(classOf[FloatColumnStats],     FLOAT)
+  testColumnStats(classOf[DoubleColumnStats],    DOUBLE)
+  testColumnStats(classOf[StringColumnStats],    STRING)
+  testColumnStats(classOf[TimestampColumnStats], TIMESTAMP)
 
   def testColumnStats[T <: NativeType, U <: NativeColumnStats[T]](
       columnStatsClass: Class[U],

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnTypeSuite.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnTypeSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnTypeSuite.scala
index 314b7d3..8293422 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnTypeSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnTypeSuite.scala
@@ -18,6 +18,7 @@
 package org.apache.spark.sql.columnar
 
 import java.nio.ByteBuffer
+import java.sql.Timestamp
 
 import org.scalatest.FunSuite
 
@@ -32,7 +33,7 @@ class ColumnTypeSuite extends FunSuite with Logging {
   test("defaultSize") {
     val checks = Map(
       INT -> 4, SHORT -> 2, LONG -> 8, BYTE -> 1, DOUBLE -> 8, FLOAT -> 4,
-      BOOLEAN -> 1, STRING -> 8, BINARY -> 16, GENERIC -> 16)
+      BOOLEAN -> 1, STRING -> 8, TIMESTAMP -> 12, BINARY -> 16, GENERIC -> 16)
 
     checks.foreach { case (columnType, expectedSize) =>
       assertResult(expectedSize, s"Wrong defaultSize for $columnType") {
@@ -52,14 +53,15 @@ class ColumnTypeSuite extends FunSuite with Logging {
       }
     }
 
-    checkActualSize(INT,     Int.MaxValue,    4)
-    checkActualSize(SHORT,   Short.MaxValue,  2)
-    checkActualSize(LONG,    Long.MaxValue,   8)
-    checkActualSize(BYTE,    Byte.MaxValue,   1)
-    checkActualSize(DOUBLE,  Double.MaxValue, 8)
-    checkActualSize(FLOAT,   Float.MaxValue,  4)
-    checkActualSize(BOOLEAN, true,            1)
-    checkActualSize(STRING,  "hello",         4 + "hello".getBytes("utf-8").length)
+    checkActualSize(INT,       Int.MaxValue,      4)
+    checkActualSize(SHORT,     Short.MaxValue,    2)
+    checkActualSize(LONG,      Long.MaxValue,     8)
+    checkActualSize(BYTE,      Byte.MaxValue,     1)
+    checkActualSize(DOUBLE,    Double.MaxValue,   8)
+    checkActualSize(FLOAT,     Float.MaxValue,    4)
+    checkActualSize(BOOLEAN,   true,              1)
+    checkActualSize(STRING,    "hello",           4 + "hello".getBytes("utf-8").length)
+    checkActualSize(TIMESTAMP, new Timestamp(0L), 12)
 
     val binary = Array.fill[Byte](4)(0: Byte)
     checkActualSize(BINARY,  binary, 4 + 4)
@@ -188,17 +190,7 @@ class ColumnTypeSuite extends FunSuite with Logging {
   }
 
   private def hexDump(value: Any): String = {
-    if (value.isInstanceOf[String]) {
-      val sb = new StringBuilder()
-      for (ch <- value.asInstanceOf[String].toCharArray) {
-        sb.append(Integer.toHexString(ch & 0xffff)).append(' ')
-      }
-      if (! sb.isEmpty) sb.setLength(sb.length - 1)
-      sb.toString()
-    } else {
-      // for now ..
-      hexDump(value.toString)
-    }
+    value.toString.map(ch => Integer.toHexString(ch & 0xffff)).mkString(" ")
   }
 
   private def dumpBuffer(buff: ByteBuffer): Any = {
@@ -207,7 +199,7 @@ class ColumnTypeSuite extends FunSuite with Logging {
       val b = buff.get()
       sb.append(Integer.toHexString(b & 0xff)).append(' ')
     }
-    if (! sb.isEmpty) sb.setLength(sb.length - 1)
+    if (sb.nonEmpty) sb.setLength(sb.length - 1)
     sb.toString()
   }
 }

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnarTestUtils.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnarTestUtils.scala b/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnarTestUtils.scala
index 04bdc43..38b04dd 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnarTestUtils.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/columnar/ColumnarTestUtils.scala
@@ -20,6 +20,8 @@ package org.apache.spark.sql.columnar
 import scala.collection.immutable.HashSet
 import scala.util.Random
 
+import java.sql.Timestamp
+
 import org.apache.spark.sql.Row
 import org.apache.spark.sql.catalyst.expressions.GenericMutableRow
 import org.apache.spark.sql.catalyst.types.{DataType, NativeType}
@@ -39,15 +41,19 @@ object ColumnarTestUtils {
     }
 
     (columnType match {
-      case BYTE    => (Random.nextInt(Byte.MaxValue * 2) - Byte.MaxValue).toByte
-      case SHORT   => (Random.nextInt(Short.MaxValue * 2) - Short.MaxValue).toShort
-      case INT     => Random.nextInt()
-      case LONG    => Random.nextLong()
-      case FLOAT   => Random.nextFloat()
-      case DOUBLE  => Random.nextDouble()
-      case STRING  => Random.nextString(Random.nextInt(32))
-      case BOOLEAN => Random.nextBoolean()
-      case BINARY  => randomBytes(Random.nextInt(32))
+      case BYTE      => (Random.nextInt(Byte.MaxValue * 2) - Byte.MaxValue).toByte
+      case SHORT     => (Random.nextInt(Short.MaxValue * 2) - Short.MaxValue).toShort
+      case INT       => Random.nextInt()
+      case LONG      => Random.nextLong()
+      case FLOAT     => Random.nextFloat()
+      case DOUBLE    => Random.nextDouble()
+      case STRING    => Random.nextString(Random.nextInt(32))
+      case BOOLEAN   => Random.nextBoolean()
+      case BINARY    => randomBytes(Random.nextInt(32))
+      case TIMESTAMP =>
+        val timestamp = new Timestamp(Random.nextLong())
+        timestamp.setNanos(Random.nextInt(999999999))
+        timestamp
       case _ =>
         // Using a random one-element map instead of an arbitrary object
         Map(Random.nextInt() -> Random.nextString(Random.nextInt(32)))
@@ -96,5 +102,4 @@ object ColumnarTestUtils {
 
     (values, rows)
   }
-
 }

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala
----------------------------------------------------------------------
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala
index 7aedfcd..3344623 100644
--- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala
+++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala
@@ -18,6 +18,7 @@
 package org.apache.spark.sql.hive
 
 import java.io.{BufferedReader, File, InputStreamReader, PrintStream}
+import java.sql.Timestamp
 import java.util.{ArrayList => JArrayList}
 
 import scala.collection.JavaConversions._
@@ -28,6 +29,7 @@ import org.apache.hadoop.hive.conf.HiveConf
 import org.apache.hadoop.hive.ql.Driver
 import org.apache.hadoop.hive.ql.processors._
 import org.apache.hadoop.hive.ql.session.SessionState
+import org.apache.hadoop.hive.serde2.io.TimestampWritable
 
 import org.apache.spark.SparkContext
 import org.apache.spark.rdd.RDD
@@ -266,6 +268,7 @@ class HiveContext(sc: SparkContext) extends SQLContext(sc) {
             toHiveStructString((key, kType)) + ":" + toHiveStructString((value, vType))
         }.toSeq.sorted.mkString("{", ",", "}")
       case (null, _) => "NULL"
+      case (t: Timestamp, TimestampType) => new TimestampWritable(t).toString
       case (other, tpe) if primitiveTypes contains tpe => other.toString
     }
 

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-10-343c75daac6695917608c17db8bf473e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-10-343c75daac6695917608c17db8bf473e b/sql/hive/src/test/resources/golden/timestamp_1-10-343c75daac6695917608c17db8bf473e
new file mode 100644
index 0000000..b77c91c
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-10-343c75daac6695917608c17db8bf473e
@@ -0,0 +1 @@
+1.293872461E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-11-cf19f7359a6d3456c4526b2c69f92d6a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-11-cf19f7359a6d3456c4526b2c69f92d6a b/sql/hive/src/test/resources/golden/timestamp_1-11-cf19f7359a6d3456c4526b2c69f92d6a
new file mode 100644
index 0000000..bc2423d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-11-cf19f7359a6d3456c4526b2c69f92d6a
@@ -0,0 +1 @@
+2011-01-01 01:01:01

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-12-6328d3b3dfd295dd5ec453ffb47ff4d0
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-12-6328d3b3dfd295dd5ec453ffb47ff4d0 b/sql/hive/src/test/resources/golden/timestamp_1-12-6328d3b3dfd295dd5ec453ffb47ff4d0
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-13-90269c1e50c7ae8e75ca9cc297982135
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-13-90269c1e50c7ae8e75ca9cc297982135 b/sql/hive/src/test/resources/golden/timestamp_1-13-90269c1e50c7ae8e75ca9cc297982135
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-13-90269c1e50c7ae8e75ca9cc297982135
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-14-e6bfca320c4ee3aff39cf2f179d57da6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-14-e6bfca320c4ee3aff39cf2f179d57da6 b/sql/hive/src/test/resources/golden/timestamp_1-14-e6bfca320c4ee3aff39cf2f179d57da6
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-14-e6bfca320c4ee3aff39cf2f179d57da6
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-15-d0291a9bd42054b2732cb4f54cf39ae7
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-15-d0291a9bd42054b2732cb4f54cf39ae7 b/sql/hive/src/test/resources/golden/timestamp_1-15-d0291a9bd42054b2732cb4f54cf39ae7
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-15-d0291a9bd42054b2732cb4f54cf39ae7
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-16-e7b398d2a8107a42419c83771bda41e6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-16-e7b398d2a8107a42419c83771bda41e6 b/sql/hive/src/test/resources/golden/timestamp_1-16-e7b398d2a8107a42419c83771bda41e6
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-16-e7b398d2a8107a42419c83771bda41e6
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-17-a3eeec08bccae78d0d94ad2cb923e1cf
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-17-a3eeec08bccae78d0d94ad2cb923e1cf b/sql/hive/src/test/resources/golden/timestamp_1-17-a3eeec08bccae78d0d94ad2cb923e1cf
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-17-a3eeec08bccae78d0d94ad2cb923e1cf
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-18-67f274bf16de625cf4e85af0c6185cac
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-18-67f274bf16de625cf4e85af0c6185cac b/sql/hive/src/test/resources/golden/timestamp_1-18-67f274bf16de625cf4e85af0c6185cac
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-18-67f274bf16de625cf4e85af0c6185cac
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-19-343c75daac6695917608c17db8bf473e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-19-343c75daac6695917608c17db8bf473e b/sql/hive/src/test/resources/golden/timestamp_1-19-343c75daac6695917608c17db8bf473e
new file mode 100644
index 0000000..b77c91c
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-19-343c75daac6695917608c17db8bf473e
@@ -0,0 +1 @@
+1.293872461E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-20-cf19f7359a6d3456c4526b2c69f92d6a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-20-cf19f7359a6d3456c4526b2c69f92d6a b/sql/hive/src/test/resources/golden/timestamp_1-20-cf19f7359a6d3456c4526b2c69f92d6a
new file mode 100644
index 0000000..bc2423d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-20-cf19f7359a6d3456c4526b2c69f92d6a
@@ -0,0 +1 @@
+2011-01-01 01:01:01

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-21-d8fff1a6c464e50eb955babfafb0b98e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-21-d8fff1a6c464e50eb955babfafb0b98e b/sql/hive/src/test/resources/golden/timestamp_1-21-d8fff1a6c464e50eb955babfafb0b98e
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-22-90269c1e50c7ae8e75ca9cc297982135
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-22-90269c1e50c7ae8e75ca9cc297982135 b/sql/hive/src/test/resources/golden/timestamp_1-22-90269c1e50c7ae8e75ca9cc297982135
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-22-90269c1e50c7ae8e75ca9cc297982135
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-23-e6bfca320c4ee3aff39cf2f179d57da6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-23-e6bfca320c4ee3aff39cf2f179d57da6 b/sql/hive/src/test/resources/golden/timestamp_1-23-e6bfca320c4ee3aff39cf2f179d57da6
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-23-e6bfca320c4ee3aff39cf2f179d57da6
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-24-d0291a9bd42054b2732cb4f54cf39ae7
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-24-d0291a9bd42054b2732cb4f54cf39ae7 b/sql/hive/src/test/resources/golden/timestamp_1-24-d0291a9bd42054b2732cb4f54cf39ae7
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-24-d0291a9bd42054b2732cb4f54cf39ae7
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-25-e7b398d2a8107a42419c83771bda41e6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-25-e7b398d2a8107a42419c83771bda41e6 b/sql/hive/src/test/resources/golden/timestamp_1-25-e7b398d2a8107a42419c83771bda41e6
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-25-e7b398d2a8107a42419c83771bda41e6
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-26-a3eeec08bccae78d0d94ad2cb923e1cf
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-26-a3eeec08bccae78d0d94ad2cb923e1cf b/sql/hive/src/test/resources/golden/timestamp_1-26-a3eeec08bccae78d0d94ad2cb923e1cf
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-26-a3eeec08bccae78d0d94ad2cb923e1cf
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-27-67f274bf16de625cf4e85af0c6185cac
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-27-67f274bf16de625cf4e85af0c6185cac b/sql/hive/src/test/resources/golden/timestamp_1-27-67f274bf16de625cf4e85af0c6185cac
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-27-67f274bf16de625cf4e85af0c6185cac
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-28-343c75daac6695917608c17db8bf473e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-28-343c75daac6695917608c17db8bf473e b/sql/hive/src/test/resources/golden/timestamp_1-28-343c75daac6695917608c17db8bf473e
new file mode 100644
index 0000000..2158e77
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-28-343c75daac6695917608c17db8bf473e
@@ -0,0 +1 @@
+1.2938724611E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-29-cf19f7359a6d3456c4526b2c69f92d6a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-29-cf19f7359a6d3456c4526b2c69f92d6a b/sql/hive/src/test/resources/golden/timestamp_1-29-cf19f7359a6d3456c4526b2c69f92d6a
new file mode 100644
index 0000000..4bdd802
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-29-cf19f7359a6d3456c4526b2c69f92d6a
@@ -0,0 +1 @@
+2011-01-01 01:01:01.1

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-3-819633b45e3e1779bca6bcb7b77fe5a1
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-3-819633b45e3e1779bca6bcb7b77fe5a1 b/sql/hive/src/test/resources/golden/timestamp_1-3-819633b45e3e1779bca6bcb7b77fe5a1
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-30-273256141c33eb88194cad22eb940d21
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-30-273256141c33eb88194cad22eb940d21 b/sql/hive/src/test/resources/golden/timestamp_1-30-273256141c33eb88194cad22eb940d21
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-31-90269c1e50c7ae8e75ca9cc297982135
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-31-90269c1e50c7ae8e75ca9cc297982135 b/sql/hive/src/test/resources/golden/timestamp_1-31-90269c1e50c7ae8e75ca9cc297982135
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-31-90269c1e50c7ae8e75ca9cc297982135
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-32-e6bfca320c4ee3aff39cf2f179d57da6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-32-e6bfca320c4ee3aff39cf2f179d57da6 b/sql/hive/src/test/resources/golden/timestamp_1-32-e6bfca320c4ee3aff39cf2f179d57da6
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-32-e6bfca320c4ee3aff39cf2f179d57da6
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-33-d0291a9bd42054b2732cb4f54cf39ae7
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-33-d0291a9bd42054b2732cb4f54cf39ae7 b/sql/hive/src/test/resources/golden/timestamp_1-33-d0291a9bd42054b2732cb4f54cf39ae7
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-33-d0291a9bd42054b2732cb4f54cf39ae7
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-34-e7b398d2a8107a42419c83771bda41e6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-34-e7b398d2a8107a42419c83771bda41e6 b/sql/hive/src/test/resources/golden/timestamp_1-34-e7b398d2a8107a42419c83771bda41e6
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-34-e7b398d2a8107a42419c83771bda41e6
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-35-a3eeec08bccae78d0d94ad2cb923e1cf
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-35-a3eeec08bccae78d0d94ad2cb923e1cf b/sql/hive/src/test/resources/golden/timestamp_1-35-a3eeec08bccae78d0d94ad2cb923e1cf
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-35-a3eeec08bccae78d0d94ad2cb923e1cf
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-36-67f274bf16de625cf4e85af0c6185cac
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-36-67f274bf16de625cf4e85af0c6185cac b/sql/hive/src/test/resources/golden/timestamp_1-36-67f274bf16de625cf4e85af0c6185cac
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-36-67f274bf16de625cf4e85af0c6185cac
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-37-343c75daac6695917608c17db8bf473e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-37-343c75daac6695917608c17db8bf473e b/sql/hive/src/test/resources/golden/timestamp_1-37-343c75daac6695917608c17db8bf473e
new file mode 100644
index 0000000..b71ff60
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-37-343c75daac6695917608c17db8bf473e
@@ -0,0 +1 @@
+1.2938724610001E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-38-cf19f7359a6d3456c4526b2c69f92d6a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-38-cf19f7359a6d3456c4526b2c69f92d6a b/sql/hive/src/test/resources/golden/timestamp_1-38-cf19f7359a6d3456c4526b2c69f92d6a
new file mode 100644
index 0000000..8b014c4
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-38-cf19f7359a6d3456c4526b2c69f92d6a
@@ -0,0 +1 @@
+2011-01-01 01:01:01.0001

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-39-b2fe5cc7c8ee62d3bb0c120c9a6c305d
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-39-b2fe5cc7c8ee62d3bb0c120c9a6c305d b/sql/hive/src/test/resources/golden/timestamp_1-39-b2fe5cc7c8ee62d3bb0c120c9a6c305d
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-4-90269c1e50c7ae8e75ca9cc297982135
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-4-90269c1e50c7ae8e75ca9cc297982135 b/sql/hive/src/test/resources/golden/timestamp_1-4-90269c1e50c7ae8e75ca9cc297982135
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-4-90269c1e50c7ae8e75ca9cc297982135
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-40-90269c1e50c7ae8e75ca9cc297982135
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-40-90269c1e50c7ae8e75ca9cc297982135 b/sql/hive/src/test/resources/golden/timestamp_1-40-90269c1e50c7ae8e75ca9cc297982135
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-40-90269c1e50c7ae8e75ca9cc297982135
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-41-e6bfca320c4ee3aff39cf2f179d57da6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-41-e6bfca320c4ee3aff39cf2f179d57da6 b/sql/hive/src/test/resources/golden/timestamp_1-41-e6bfca320c4ee3aff39cf2f179d57da6
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-41-e6bfca320c4ee3aff39cf2f179d57da6
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-42-d0291a9bd42054b2732cb4f54cf39ae7
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-42-d0291a9bd42054b2732cb4f54cf39ae7 b/sql/hive/src/test/resources/golden/timestamp_1-42-d0291a9bd42054b2732cb4f54cf39ae7
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-42-d0291a9bd42054b2732cb4f54cf39ae7
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-43-e7b398d2a8107a42419c83771bda41e6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-43-e7b398d2a8107a42419c83771bda41e6 b/sql/hive/src/test/resources/golden/timestamp_1-43-e7b398d2a8107a42419c83771bda41e6
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-43-e7b398d2a8107a42419c83771bda41e6
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-44-a3eeec08bccae78d0d94ad2cb923e1cf
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-44-a3eeec08bccae78d0d94ad2cb923e1cf b/sql/hive/src/test/resources/golden/timestamp_1-44-a3eeec08bccae78d0d94ad2cb923e1cf
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-44-a3eeec08bccae78d0d94ad2cb923e1cf
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-45-67f274bf16de625cf4e85af0c6185cac
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-45-67f274bf16de625cf4e85af0c6185cac b/sql/hive/src/test/resources/golden/timestamp_1-45-67f274bf16de625cf4e85af0c6185cac
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-45-67f274bf16de625cf4e85af0c6185cac
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-46-343c75daac6695917608c17db8bf473e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-46-343c75daac6695917608c17db8bf473e b/sql/hive/src/test/resources/golden/timestamp_1-46-343c75daac6695917608c17db8bf473e
new file mode 100644
index 0000000..b71ff60
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-46-343c75daac6695917608c17db8bf473e
@@ -0,0 +1 @@
+1.2938724610001E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-47-cf19f7359a6d3456c4526b2c69f92d6a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-47-cf19f7359a6d3456c4526b2c69f92d6a b/sql/hive/src/test/resources/golden/timestamp_1-47-cf19f7359a6d3456c4526b2c69f92d6a
new file mode 100644
index 0000000..8b014c4
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-47-cf19f7359a6d3456c4526b2c69f92d6a
@@ -0,0 +1 @@
+2011-01-01 01:01:01.0001

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-48-7029255241de8e8b9710801319990044
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-48-7029255241de8e8b9710801319990044 b/sql/hive/src/test/resources/golden/timestamp_1-48-7029255241de8e8b9710801319990044
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-49-90269c1e50c7ae8e75ca9cc297982135
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-49-90269c1e50c7ae8e75ca9cc297982135 b/sql/hive/src/test/resources/golden/timestamp_1-49-90269c1e50c7ae8e75ca9cc297982135
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-49-90269c1e50c7ae8e75ca9cc297982135
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-5-e6bfca320c4ee3aff39cf2f179d57da6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-5-e6bfca320c4ee3aff39cf2f179d57da6 b/sql/hive/src/test/resources/golden/timestamp_1-5-e6bfca320c4ee3aff39cf2f179d57da6
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-5-e6bfca320c4ee3aff39cf2f179d57da6
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-50-e6bfca320c4ee3aff39cf2f179d57da6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-50-e6bfca320c4ee3aff39cf2f179d57da6 b/sql/hive/src/test/resources/golden/timestamp_1-50-e6bfca320c4ee3aff39cf2f179d57da6
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-50-e6bfca320c4ee3aff39cf2f179d57da6
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-51-d0291a9bd42054b2732cb4f54cf39ae7
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-51-d0291a9bd42054b2732cb4f54cf39ae7 b/sql/hive/src/test/resources/golden/timestamp_1-51-d0291a9bd42054b2732cb4f54cf39ae7
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-51-d0291a9bd42054b2732cb4f54cf39ae7
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-52-e7b398d2a8107a42419c83771bda41e6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-52-e7b398d2a8107a42419c83771bda41e6 b/sql/hive/src/test/resources/golden/timestamp_1-52-e7b398d2a8107a42419c83771bda41e6
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-52-e7b398d2a8107a42419c83771bda41e6
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-53-a3eeec08bccae78d0d94ad2cb923e1cf
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-53-a3eeec08bccae78d0d94ad2cb923e1cf b/sql/hive/src/test/resources/golden/timestamp_1-53-a3eeec08bccae78d0d94ad2cb923e1cf
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-53-a3eeec08bccae78d0d94ad2cb923e1cf
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-54-67f274bf16de625cf4e85af0c6185cac
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-54-67f274bf16de625cf4e85af0c6185cac b/sql/hive/src/test/resources/golden/timestamp_1-54-67f274bf16de625cf4e85af0c6185cac
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-54-67f274bf16de625cf4e85af0c6185cac
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-55-343c75daac6695917608c17db8bf473e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-55-343c75daac6695917608c17db8bf473e b/sql/hive/src/test/resources/golden/timestamp_1-55-343c75daac6695917608c17db8bf473e
new file mode 100644
index 0000000..3eefb34
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-55-343c75daac6695917608c17db8bf473e
@@ -0,0 +1 @@
+1.293872461001E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-56-cf19f7359a6d3456c4526b2c69f92d6a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-56-cf19f7359a6d3456c4526b2c69f92d6a b/sql/hive/src/test/resources/golden/timestamp_1-56-cf19f7359a6d3456c4526b2c69f92d6a
new file mode 100644
index 0000000..acce9d9
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-56-cf19f7359a6d3456c4526b2c69f92d6a
@@ -0,0 +1 @@
+2011-01-01 01:01:01.001000011

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-57-d362501d0176855077e65f8faf067fa8
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-57-d362501d0176855077e65f8faf067fa8 b/sql/hive/src/test/resources/golden/timestamp_1-57-d362501d0176855077e65f8faf067fa8
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-6-d0291a9bd42054b2732cb4f54cf39ae7
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-6-d0291a9bd42054b2732cb4f54cf39ae7 b/sql/hive/src/test/resources/golden/timestamp_1-6-d0291a9bd42054b2732cb4f54cf39ae7
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-6-d0291a9bd42054b2732cb4f54cf39ae7
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-7-e7b398d2a8107a42419c83771bda41e6
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-7-e7b398d2a8107a42419c83771bda41e6 b/sql/hive/src/test/resources/golden/timestamp_1-7-e7b398d2a8107a42419c83771bda41e6
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-7-e7b398d2a8107a42419c83771bda41e6
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-8-a3eeec08bccae78d0d94ad2cb923e1cf
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-8-a3eeec08bccae78d0d94ad2cb923e1cf b/sql/hive/src/test/resources/golden/timestamp_1-8-a3eeec08bccae78d0d94ad2cb923e1cf
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-8-a3eeec08bccae78d0d94ad2cb923e1cf
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_1-9-67f274bf16de625cf4e85af0c6185cac
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_1-9-67f274bf16de625cf4e85af0c6185cac b/sql/hive/src/test/resources/golden/timestamp_1-9-67f274bf16de625cf4e85af0c6185cac
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_1-9-67f274bf16de625cf4e85af0c6185cac
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-10-5181279a0bf8939fe46ddacae015dad8
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-10-5181279a0bf8939fe46ddacae015dad8 b/sql/hive/src/test/resources/golden/timestamp_2-10-5181279a0bf8939fe46ddacae015dad8
new file mode 100644
index 0000000..b77c91c
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-10-5181279a0bf8939fe46ddacae015dad8
@@ -0,0 +1 @@
+1.293872461E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-11-240fce5f58794fa051824e8732c00c03
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-11-240fce5f58794fa051824e8732c00c03 b/sql/hive/src/test/resources/golden/timestamp_2-11-240fce5f58794fa051824e8732c00c03
new file mode 100644
index 0000000..bc2423d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-11-240fce5f58794fa051824e8732c00c03
@@ -0,0 +1 @@
+2011-01-01 01:01:01

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-12-7350308cbf49d6ebd6599d3802750acd
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-12-7350308cbf49d6ebd6599d3802750acd b/sql/hive/src/test/resources/golden/timestamp_2-12-7350308cbf49d6ebd6599d3802750acd
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-13-25f6ec69328af6cba76899194e0dd84e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-13-25f6ec69328af6cba76899194e0dd84e b/sql/hive/src/test/resources/golden/timestamp_2-13-25f6ec69328af6cba76899194e0dd84e
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-13-25f6ec69328af6cba76899194e0dd84e
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-14-93c769be4cff93bea6e62bfe4e2a8742
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-14-93c769be4cff93bea6e62bfe4e2a8742 b/sql/hive/src/test/resources/golden/timestamp_2-14-93c769be4cff93bea6e62bfe4e2a8742
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-14-93c769be4cff93bea6e62bfe4e2a8742
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-15-5bdbf67419cc060b82d091d80ce59bf9
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-15-5bdbf67419cc060b82d091d80ce59bf9 b/sql/hive/src/test/resources/golden/timestamp_2-15-5bdbf67419cc060b82d091d80ce59bf9
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-15-5bdbf67419cc060b82d091d80ce59bf9
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-16-de3c42ab06c17ae895fd7deaf7bd9571
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-16-de3c42ab06c17ae895fd7deaf7bd9571 b/sql/hive/src/test/resources/golden/timestamp_2-16-de3c42ab06c17ae895fd7deaf7bd9571
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-16-de3c42ab06c17ae895fd7deaf7bd9571
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-17-da3937d21b7c2cfe1e624e812ae1d3ef
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-17-da3937d21b7c2cfe1e624e812ae1d3ef b/sql/hive/src/test/resources/golden/timestamp_2-17-da3937d21b7c2cfe1e624e812ae1d3ef
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-17-da3937d21b7c2cfe1e624e812ae1d3ef
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-18-252aebfe7882335d31bfc53a8705b7a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-18-252aebfe7882335d31bfc53a8705b7a b/sql/hive/src/test/resources/golden/timestamp_2-18-252aebfe7882335d31bfc53a8705b7a
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-18-252aebfe7882335d31bfc53a8705b7a
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-19-5181279a0bf8939fe46ddacae015dad8
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-19-5181279a0bf8939fe46ddacae015dad8 b/sql/hive/src/test/resources/golden/timestamp_2-19-5181279a0bf8939fe46ddacae015dad8
new file mode 100644
index 0000000..b77c91c
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-19-5181279a0bf8939fe46ddacae015dad8
@@ -0,0 +1 @@
+1.293872461E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-20-240fce5f58794fa051824e8732c00c03
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-20-240fce5f58794fa051824e8732c00c03 b/sql/hive/src/test/resources/golden/timestamp_2-20-240fce5f58794fa051824e8732c00c03
new file mode 100644
index 0000000..bc2423d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-20-240fce5f58794fa051824e8732c00c03
@@ -0,0 +1 @@
+2011-01-01 01:01:01

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-21-5eb58e5d3c5b9f766f0b497bf59c47b
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-21-5eb58e5d3c5b9f766f0b497bf59c47b b/sql/hive/src/test/resources/golden/timestamp_2-21-5eb58e5d3c5b9f766f0b497bf59c47b
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-22-25f6ec69328af6cba76899194e0dd84e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-22-25f6ec69328af6cba76899194e0dd84e b/sql/hive/src/test/resources/golden/timestamp_2-22-25f6ec69328af6cba76899194e0dd84e
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-22-25f6ec69328af6cba76899194e0dd84e
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-23-93c769be4cff93bea6e62bfe4e2a8742
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-23-93c769be4cff93bea6e62bfe4e2a8742 b/sql/hive/src/test/resources/golden/timestamp_2-23-93c769be4cff93bea6e62bfe4e2a8742
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-23-93c769be4cff93bea6e62bfe4e2a8742
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-24-5bdbf67419cc060b82d091d80ce59bf9
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-24-5bdbf67419cc060b82d091d80ce59bf9 b/sql/hive/src/test/resources/golden/timestamp_2-24-5bdbf67419cc060b82d091d80ce59bf9
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-24-5bdbf67419cc060b82d091d80ce59bf9
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-25-de3c42ab06c17ae895fd7deaf7bd9571
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-25-de3c42ab06c17ae895fd7deaf7bd9571 b/sql/hive/src/test/resources/golden/timestamp_2-25-de3c42ab06c17ae895fd7deaf7bd9571
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-25-de3c42ab06c17ae895fd7deaf7bd9571
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-26-da3937d21b7c2cfe1e624e812ae1d3ef
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-26-da3937d21b7c2cfe1e624e812ae1d3ef b/sql/hive/src/test/resources/golden/timestamp_2-26-da3937d21b7c2cfe1e624e812ae1d3ef
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-26-da3937d21b7c2cfe1e624e812ae1d3ef
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-27-252aebfe7882335d31bfc53a8705b7a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-27-252aebfe7882335d31bfc53a8705b7a b/sql/hive/src/test/resources/golden/timestamp_2-27-252aebfe7882335d31bfc53a8705b7a
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-27-252aebfe7882335d31bfc53a8705b7a
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-28-5181279a0bf8939fe46ddacae015dad8
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-28-5181279a0bf8939fe46ddacae015dad8 b/sql/hive/src/test/resources/golden/timestamp_2-28-5181279a0bf8939fe46ddacae015dad8
new file mode 100644
index 0000000..2158e77
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-28-5181279a0bf8939fe46ddacae015dad8
@@ -0,0 +1 @@
+1.2938724611E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-29-240fce5f58794fa051824e8732c00c03
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-29-240fce5f58794fa051824e8732c00c03 b/sql/hive/src/test/resources/golden/timestamp_2-29-240fce5f58794fa051824e8732c00c03
new file mode 100644
index 0000000..4bdd802
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-29-240fce5f58794fa051824e8732c00c03
@@ -0,0 +1 @@
+2011-01-01 01:01:01.1

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-3-a95a52c3a66e1f211ea04a0a10bd3b74
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-3-a95a52c3a66e1f211ea04a0a10bd3b74 b/sql/hive/src/test/resources/golden/timestamp_2-3-a95a52c3a66e1f211ea04a0a10bd3b74
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-30-ffe6b6ddaaba84152074f7781fba2243
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-30-ffe6b6ddaaba84152074f7781fba2243 b/sql/hive/src/test/resources/golden/timestamp_2-30-ffe6b6ddaaba84152074f7781fba2243
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-31-25f6ec69328af6cba76899194e0dd84e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-31-25f6ec69328af6cba76899194e0dd84e b/sql/hive/src/test/resources/golden/timestamp_2-31-25f6ec69328af6cba76899194e0dd84e
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-31-25f6ec69328af6cba76899194e0dd84e
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-32-93c769be4cff93bea6e62bfe4e2a8742
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-32-93c769be4cff93bea6e62bfe4e2a8742 b/sql/hive/src/test/resources/golden/timestamp_2-32-93c769be4cff93bea6e62bfe4e2a8742
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-32-93c769be4cff93bea6e62bfe4e2a8742
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-33-5bdbf67419cc060b82d091d80ce59bf9
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-33-5bdbf67419cc060b82d091d80ce59bf9 b/sql/hive/src/test/resources/golden/timestamp_2-33-5bdbf67419cc060b82d091d80ce59bf9
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-33-5bdbf67419cc060b82d091d80ce59bf9
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-34-de3c42ab06c17ae895fd7deaf7bd9571
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-34-de3c42ab06c17ae895fd7deaf7bd9571 b/sql/hive/src/test/resources/golden/timestamp_2-34-de3c42ab06c17ae895fd7deaf7bd9571
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-34-de3c42ab06c17ae895fd7deaf7bd9571
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-35-da3937d21b7c2cfe1e624e812ae1d3ef
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-35-da3937d21b7c2cfe1e624e812ae1d3ef b/sql/hive/src/test/resources/golden/timestamp_2-35-da3937d21b7c2cfe1e624e812ae1d3ef
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-35-da3937d21b7c2cfe1e624e812ae1d3ef
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-36-252aebfe7882335d31bfc53a8705b7a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-36-252aebfe7882335d31bfc53a8705b7a b/sql/hive/src/test/resources/golden/timestamp_2-36-252aebfe7882335d31bfc53a8705b7a
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-36-252aebfe7882335d31bfc53a8705b7a
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-37-5181279a0bf8939fe46ddacae015dad8
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-37-5181279a0bf8939fe46ddacae015dad8 b/sql/hive/src/test/resources/golden/timestamp_2-37-5181279a0bf8939fe46ddacae015dad8
new file mode 100644
index 0000000..b71ff60
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-37-5181279a0bf8939fe46ddacae015dad8
@@ -0,0 +1 @@
+1.2938724610001E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-38-240fce5f58794fa051824e8732c00c03
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-38-240fce5f58794fa051824e8732c00c03 b/sql/hive/src/test/resources/golden/timestamp_2-38-240fce5f58794fa051824e8732c00c03
new file mode 100644
index 0000000..8b014c4
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-38-240fce5f58794fa051824e8732c00c03
@@ -0,0 +1 @@
+2011-01-01 01:01:01.0001

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-39-8236608f28681eac5503195096a34181
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-39-8236608f28681eac5503195096a34181 b/sql/hive/src/test/resources/golden/timestamp_2-39-8236608f28681eac5503195096a34181
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-4-25f6ec69328af6cba76899194e0dd84e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-4-25f6ec69328af6cba76899194e0dd84e b/sql/hive/src/test/resources/golden/timestamp_2-4-25f6ec69328af6cba76899194e0dd84e
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-4-25f6ec69328af6cba76899194e0dd84e
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-40-25f6ec69328af6cba76899194e0dd84e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-40-25f6ec69328af6cba76899194e0dd84e b/sql/hive/src/test/resources/golden/timestamp_2-40-25f6ec69328af6cba76899194e0dd84e
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-40-25f6ec69328af6cba76899194e0dd84e
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-41-93c769be4cff93bea6e62bfe4e2a8742
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-41-93c769be4cff93bea6e62bfe4e2a8742 b/sql/hive/src/test/resources/golden/timestamp_2-41-93c769be4cff93bea6e62bfe4e2a8742
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-41-93c769be4cff93bea6e62bfe4e2a8742
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-42-5bdbf67419cc060b82d091d80ce59bf9
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-42-5bdbf67419cc060b82d091d80ce59bf9 b/sql/hive/src/test/resources/golden/timestamp_2-42-5bdbf67419cc060b82d091d80ce59bf9
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-42-5bdbf67419cc060b82d091d80ce59bf9
@@ -0,0 +1 @@
+-4787

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-43-de3c42ab06c17ae895fd7deaf7bd9571
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-43-de3c42ab06c17ae895fd7deaf7bd9571 b/sql/hive/src/test/resources/golden/timestamp_2-43-de3c42ab06c17ae895fd7deaf7bd9571
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-43-de3c42ab06c17ae895fd7deaf7bd9571
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-44-da3937d21b7c2cfe1e624e812ae1d3ef
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-44-da3937d21b7c2cfe1e624e812ae1d3ef b/sql/hive/src/test/resources/golden/timestamp_2-44-da3937d21b7c2cfe1e624e812ae1d3ef
new file mode 100644
index 0000000..211a320
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-44-da3937d21b7c2cfe1e624e812ae1d3ef
@@ -0,0 +1 @@
+1293872461

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-45-252aebfe7882335d31bfc53a8705b7a
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-45-252aebfe7882335d31bfc53a8705b7a b/sql/hive/src/test/resources/golden/timestamp_2-45-252aebfe7882335d31bfc53a8705b7a
new file mode 100644
index 0000000..502f94a
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-45-252aebfe7882335d31bfc53a8705b7a
@@ -0,0 +1 @@
+1.29387251E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-46-5181279a0bf8939fe46ddacae015dad8
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-46-5181279a0bf8939fe46ddacae015dad8 b/sql/hive/src/test/resources/golden/timestamp_2-46-5181279a0bf8939fe46ddacae015dad8
new file mode 100644
index 0000000..b71ff60
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-46-5181279a0bf8939fe46ddacae015dad8
@@ -0,0 +1 @@
+1.2938724610001E9

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-47-240fce5f58794fa051824e8732c00c03
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-47-240fce5f58794fa051824e8732c00c03 b/sql/hive/src/test/resources/golden/timestamp_2-47-240fce5f58794fa051824e8732c00c03
new file mode 100644
index 0000000..8b014c4
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-47-240fce5f58794fa051824e8732c00c03
@@ -0,0 +1 @@
+2011-01-01 01:01:01.0001

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-48-654e5533ec6dc911996abc7e47af8ccb
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-48-654e5533ec6dc911996abc7e47af8ccb b/sql/hive/src/test/resources/golden/timestamp_2-48-654e5533ec6dc911996abc7e47af8ccb
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-49-25f6ec69328af6cba76899194e0dd84e
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-49-25f6ec69328af6cba76899194e0dd84e b/sql/hive/src/test/resources/golden/timestamp_2-49-25f6ec69328af6cba76899194e0dd84e
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-49-25f6ec69328af6cba76899194e0dd84e
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-5-93c769be4cff93bea6e62bfe4e2a8742
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-5-93c769be4cff93bea6e62bfe4e2a8742 b/sql/hive/src/test/resources/golden/timestamp_2-5-93c769be4cff93bea6e62bfe4e2a8742
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-5-93c769be4cff93bea6e62bfe4e2a8742
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-50-93c769be4cff93bea6e62bfe4e2a8742
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-50-93c769be4cff93bea6e62bfe4e2a8742 b/sql/hive/src/test/resources/golden/timestamp_2-50-93c769be4cff93bea6e62bfe4e2a8742
new file mode 100644
index 0000000..987e7ca
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-50-93c769be4cff93bea6e62bfe4e2a8742
@@ -0,0 +1 @@
+77

http://git-wip-us.apache.org/repos/asf/spark/blob/cd273a23/sql/hive/src/test/resources/golden/timestamp_2-51-5bdbf67419cc060b82d091d80ce59bf9
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/golden/timestamp_2-51-5bdbf67419cc060b82d091d80ce59bf9 b/sql/hive/src/test/resources/golden/timestamp_2-51-5bdbf67419cc060b82d091d80ce59bf9
new file mode 100644
index 0000000..8f3a494
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/timestamp_2-51-5bdbf67419cc060b82d091d80ce59bf9
@@ -0,0 +1 @@
+-4787