diff options
author | Liang-Chi Hsieh <viirya@appier.com> | 2015-07-17 09:38:08 -0700 |
---|---|---|
committer | Reynold Xin <rxin@databricks.com> | 2015-07-17 09:38:08 -0700 |
commit | eba6a1af4c8ffb21934a59a61a419d625f37cceb (patch) | |
tree | 963d47659b358384adf73a4e8040a328d1a04c80 /unsafe/src/main | |
parent | 305e77cd83f3dbe680a920d5329c2e8c58452d5b (diff) | |
download | spark-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.java | 16 |
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; |