aboutsummaryrefslogtreecommitdiff
path: root/unsafe/src/main
diff options
context:
space:
mode:
authorLiang-Chi Hsieh <viirya@appier.com>2015-07-17 09:38:08 -0700
committerReynold Xin <rxin@databricks.com>2015-07-17 09:38:08 -0700
commiteba6a1af4c8ffb21934a59a61a419d625f37cceb (patch)
tree963d47659b358384adf73a4e8040a328d1a04c80 /unsafe/src/main
parent305e77cd83f3dbe680a920d5329c2e8c58452d5b (diff)
downloadspark-eba6a1af4c8ffb21934a59a61a419d625f37cceb.tar.gz
spark-eba6a1af4c8ffb21934a59a61a419d625f37cceb.tar.bz2
spark-eba6a1af4c8ffb21934a59a61a419d625f37cceb.zip
[SPARK-8945][SQL] Add add and subtract expressions for IntervalType
JIRA: https://issues.apache.org/jira/browse/SPARK-8945 Add add and subtract expressions for IntervalType. Author: Liang-Chi Hsieh <viirya@appier.com> This patch had conflicts when merged, resolved by Committer: Reynold Xin <rxin@databricks.com> Closes #7398 from viirya/interval_add_subtract and squashes the following commits: acd1f1e [Liang-Chi Hsieh] Merge remote-tracking branch 'upstream/master' into interval_add_subtract 5abae28 [Liang-Chi Hsieh] For comments. 6f5b72e [Liang-Chi Hsieh] Merge remote-tracking branch 'upstream/master' into interval_add_subtract dbe3906 [Liang-Chi Hsieh] For comments. 13a2fc5 [Liang-Chi Hsieh] Merge remote-tracking branch 'upstream/master' into interval_add_subtract 83ec129 [Liang-Chi Hsieh] Remove intervalMethod. acfe1ab [Liang-Chi Hsieh] Fix scala style. d3e9d0e [Liang-Chi Hsieh] Add add and subtract expressions for IntervalType.
Diffstat (limited to 'unsafe/src/main')
-rw-r--r--unsafe/src/main/java/org/apache/spark/unsafe/types/Interval.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/unsafe/src/main/java/org/apache/spark/unsafe/types/Interval.java b/unsafe/src/main/java/org/apache/spark/unsafe/types/Interval.java
index 905ea0b7b8..71b1a85a81 100644
--- a/unsafe/src/main/java/org/apache/spark/unsafe/types/Interval.java
+++ b/unsafe/src/main/java/org/apache/spark/unsafe/types/Interval.java
@@ -87,6 +87,22 @@ public final class Interval implements Serializable {
this.microseconds = microseconds;
}
+ public Interval add(Interval that) {
+ int months = this.months + that.months;
+ long microseconds = this.microseconds + that.microseconds;
+ return new Interval(months, microseconds);
+ }
+
+ public Interval subtract(Interval that) {
+ int months = this.months - that.months;
+ long microseconds = this.microseconds - that.microseconds;
+ return new Interval(months, microseconds);
+ }
+
+ public Interval negate() {
+ return new Interval(-this.months, -this.microseconds);
+ }
+
@Override
public boolean equals(Object other) {
if (this == other) return true;