aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorWenchen Fan <cloud0fan@outlook.com>2015-07-09 10:04:42 -0700
committerReynold Xin <rxin@databricks.com>2015-07-09 10:04:42 -0700
commitf6c0bd5c3755b2f9bab633a5d478240fdaf1c593 (patch)
tree3b8b2dc916920514ac483955b4daade7265d2078 /sql
parenta870a82fb6f57bb63bd6f1e95da944a30f67519a (diff)
downloadspark-f6c0bd5c3755b2f9bab633a5d478240fdaf1c593.tar.gz
spark-f6c0bd5c3755b2f9bab633a5d478240fdaf1c593.tar.bz2
spark-f6c0bd5c3755b2f9bab633a5d478240fdaf1c593.zip
[SPARK-8938][SQL] Implement toString for Interval data type
Author: Wenchen Fan <cloud0fan@outlook.com> Closes #7315 from cloud-fan/toString and squashes the following commits: 4fc8d80 [Wenchen Fan] Implement toString for Interval data type
Diffstat (limited to 'sql')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala24
1 files changed, 18 insertions, 6 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
index dedd8c8fa3..d4ef04c229 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
@@ -353,22 +353,34 @@ class SqlParser extends AbstractSparkSQLParser with DataTypeParser {
integral <~ intervalUnit("microsecond") ^^ { case num => num.toLong }
protected lazy val millisecond: Parser[Long] =
- integral <~ intervalUnit("millisecond") ^^ { case num => num.toLong * 1000 }
+ integral <~ intervalUnit("millisecond") ^^ {
+ case num => num.toLong * Interval.MICROS_PER_MILLI
+ }
protected lazy val second: Parser[Long] =
- integral <~ intervalUnit("second") ^^ { case num => num.toLong * 1000 * 1000 }
+ integral <~ intervalUnit("second") ^^ {
+ case num => num.toLong * Interval.MICROS_PER_SECOND
+ }
protected lazy val minute: Parser[Long] =
- integral <~ intervalUnit("minute") ^^ { case num => num.toLong * 1000 * 1000 * 60 }
+ integral <~ intervalUnit("minute") ^^ {
+ case num => num.toLong * Interval.MICROS_PER_MINUTE
+ }
protected lazy val hour: Parser[Long] =
- integral <~ intervalUnit("hour") ^^ { case num => num.toLong * 1000 * 1000 * 3600 }
+ integral <~ intervalUnit("hour") ^^ {
+ case num => num.toLong * Interval.MICROS_PER_HOUR
+ }
protected lazy val day: Parser[Long] =
- integral <~ intervalUnit("day") ^^ { case num => num.toLong * 1000 * 1000 * 3600 * 24 }
+ integral <~ intervalUnit("day") ^^ {
+ case num => num.toLong * Interval.MICROS_PER_DAY
+ }
protected lazy val week: Parser[Long] =
- integral <~ intervalUnit("week") ^^ { case num => num.toLong * 1000 * 1000 * 3600 * 24 * 7 }
+ integral <~ intervalUnit("week") ^^ {
+ case num => num.toLong * Interval.MICROS_PER_WEEK
+ }
protected lazy val intervalLiteral: Parser[Literal] =
INTERVAL ~> year.? ~ month.? ~ week.? ~ day.? ~ hour.? ~ minute.? ~ second.? ~