aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorDavies Liu <davies@databricks.com>2015-08-01 18:22:46 -0700
committerReynold Xin <rxin@databricks.com>2015-08-01 18:22:46 -0700
commit5d9e33d9a2633e45082ac395a64646364f22f4c4 (patch)
tree5355c89a9887c9e3b679cfba269ec3a87b325042 /sql
parent84a6982b35d87483bdf70ef4423cc4c8e0c3feb1 (diff)
downloadspark-5d9e33d9a2633e45082ac395a64646364f22f4c4.tar.gz
spark-5d9e33d9a2633e45082ac395a64646364f22f4c4.tar.bz2
spark-5d9e33d9a2633e45082ac395a64646364f22f4c4.zip
[SPARK-9495] prefix of DateType/TimestampType
cc rxin Author: Davies Liu <davies@databricks.com> Closes #7856 from davies/sort_improve and squashes the following commits: 5fc81bd [Davies Liu] support DateType/TimestampType
Diffstat (limited to 'sql')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/SortOrder.scala2
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/execution/SortPrefixUtils.scala6
2 files changed, 6 insertions, 2 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/SortOrder.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/SortOrder.scala
index 9fe877f10f..afecf881c7 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/SortOrder.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/SortOrder.scala
@@ -61,6 +61,8 @@ case class SortPrefix(child: SortOrder) extends UnaryExpression {
(Long.MinValue, s"$input ? 1L : 0L")
case _: IntegralType =>
(Long.MinValue, s"(long) $input")
+ case DateType | TimestampType =>
+ (Long.MinValue, s"(long) $input")
case FloatType | DoubleType =>
(DoublePrefixComparator.computePrefix(Double.NegativeInfinity),
s"$DoublePrefixCmp.computePrefix((double)$input)")
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/SortPrefixUtils.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/SortPrefixUtils.scala
index 17d4166af5..676656518f 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/SortPrefixUtils.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/SortPrefixUtils.scala
@@ -38,9 +38,11 @@ object SortPrefixUtils {
sortOrder.dataType match {
case StringType if sortOrder.isAscending => PrefixComparators.STRING
case StringType if !sortOrder.isAscending => PrefixComparators.STRING_DESC
- case BooleanType | ByteType | ShortType | IntegerType | LongType if sortOrder.isAscending =>
+ case BooleanType | ByteType | ShortType | IntegerType | LongType | DateType | TimestampType
+ if sortOrder.isAscending =>
PrefixComparators.LONG
- case BooleanType | ByteType | ShortType | IntegerType | LongType if !sortOrder.isAscending =>
+ case BooleanType | ByteType | ShortType | IntegerType | LongType | DateType | TimestampType
+ if !sortOrder.isAscending =>
PrefixComparators.LONG_DESC
case FloatType | DoubleType if sortOrder.isAscending => PrefixComparators.DOUBLE
case FloatType | DoubleType if !sortOrder.isAscending => PrefixComparators.DOUBLE_DESC