You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2016/04/04 22:37:13 UTC
[38/50] [abbrv] hive git commit: revert HIVE-12531 : Implement
fast-path for Year/Month UDFs for dates between 1999 and 2038 (Jason Dere via
Sergey Shelukhin)
revert HIVE-12531 : Implement fast-path for Year/Month UDFs for dates between 1999 and 2038 (Jason Dere via Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/09b00fc8
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/09b00fc8
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/09b00fc8
Branch: refs/heads/llap
Commit: 09b00fc863d19cf513fe1d188bb671f370f64c2d
Parents: ff10f03
Author: Jason Dere <jd...@hortonworks.com>
Authored: Tue Mar 29 11:16:32 2016 -0700
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Tue Mar 29 11:16:32 2016 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hive/ql/udf/UDFMonth.java | 16 ++++++++--------
.../java/org/apache/hadoop/hive/ql/udf/UDFYear.java | 16 ++++++++--------
.../expressions/TestVectorDateExpressions.java | 13 +++----------
3 files changed, 19 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/09b00fc8/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java
index 05afb8e..8c2b0e4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java
@@ -20,8 +20,8 @@ package org.apache.hadoop.hive.ql.udf;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.Date;
-import org.joda.time.MutableDateTime;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
@@ -53,7 +53,7 @@ import org.apache.hadoop.io.Text;
@NDV(maxNdv = 31)
public class UDFMonth extends UDF {
private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- private transient final MutableDateTime mdt = new MutableDateTime();
+ private final Calendar calendar = Calendar.getInstance();
private final IntWritable result = new IntWritable();
@@ -75,8 +75,8 @@ public class UDFMonth extends UDF {
}
try {
Date date = formatter.parse(dateString.toString());
- mdt.setMillis(date.getTime());
- result.set(mdt.getMonthOfYear());
+ calendar.setTime(date);
+ result.set(1 + calendar.get(Calendar.MONTH));
return result;
} catch (ParseException e) {
return null;
@@ -88,8 +88,8 @@ public class UDFMonth extends UDF {
return null;
}
- mdt.setMillis(d.get().getTime());
- result.set(mdt.getMonthOfYear());
+ calendar.setTime(d.get());
+ result.set(1 + calendar.get(Calendar.MONTH));
return result;
}
@@ -98,8 +98,8 @@ public class UDFMonth extends UDF {
return null;
}
- mdt.setMillis(t.getTimestamp().getTime());
- result.set(mdt.getMonthOfYear());
+ calendar.setTime(t.getTimestamp());
+ result.set(1 + calendar.get(Calendar.MONTH));
return result;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/09b00fc8/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java
index fb3a655..d7ecd8c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java
@@ -20,8 +20,8 @@ package org.apache.hadoop.hive.ql.udf;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.Date;
-import org.joda.time.MutableDateTime;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
@@ -53,7 +53,7 @@ import org.apache.hadoop.io.Text;
@NDV(maxNdv = 20) // although technically its unbounded, its unlikely we will ever see ndv > 20
public class UDFYear extends UDF {
private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- private transient final MutableDateTime mdt = new MutableDateTime();
+ private final Calendar calendar = Calendar.getInstance();
private final IntWritable result = new IntWritable();
@@ -77,8 +77,8 @@ public class UDFYear extends UDF {
try {
Date date = formatter.parse(dateString.toString());
- mdt.setMillis(date.getTime());
- result.set(mdt.getYear());
+ calendar.setTime(date);
+ result.set(calendar.get(Calendar.YEAR));
return result;
} catch (ParseException e) {
return null;
@@ -90,8 +90,8 @@ public class UDFYear extends UDF {
return null;
}
- mdt.setMillis(d.get().getTime());
- result.set(mdt.getYear());
+ calendar.setTime(d.get());
+ result.set(calendar.get(Calendar.YEAR));
return result;
}
@@ -100,8 +100,8 @@ public class UDFYear extends UDF {
return null;
}
- mdt.setMillis(t.getTimestamp().getTime());
- result.set(mdt.getYear());
+ calendar.setTime(t.getTimestamp());
+ result.set(calendar.get(Calendar.YEAR));
return result;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/09b00fc8/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorDateExpressions.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorDateExpressions.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorDateExpressions.java
index 61c96e9..58cecc1 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorDateExpressions.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorDateExpressions.java
@@ -38,9 +38,7 @@ import org.junit.Test;
import org.junit.internal.runners.statements.Fail;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import com.sun.tools.javac.resources.javac;
-import java.sql.Date;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
@@ -55,7 +53,6 @@ import java.util.concurrent.ThreadFactory;
public class TestVectorDateExpressions {
private ExecutorService runner;
- private static final int MAX_SANE_DATE_VALUE = new DateWritable(Date.valueOf("3000-01-01")).getDays();
/* copied over from VectorUDFTimestampFieldLong */
private TimestampWritable toTimestampWritable(long daysSinceEpoch) {
@@ -81,15 +78,11 @@ public class TestVectorDateExpressions {
}
private VectorizedRowBatch getVectorizedRandomRowBatch(int seed, int size) {
- return getVectorizedRandomRowBatch(seed, size, Integer.MAX_VALUE);
- }
-
- private VectorizedRowBatch getVectorizedRandomRowBatch(int seed, int size, int maxValue) {
VectorizedRowBatch batch = new VectorizedRowBatch(2, size);
LongColumnVector lcv = new LongColumnVector(size);
Random rand = new Random(seed);
for (int i = 0; i < size; i++) {
- lcv.vector[i] = (rand.nextInt(maxValue));
+ lcv.vector[i] = (rand.nextInt());
}
batch.cols[0] = lcv;
batch.cols[1] = new LongColumnVector(size);
@@ -166,7 +159,7 @@ public class TestVectorDateExpressions {
batch.cols[0].isNull[0] = true;
verifyUDFYear(batch);
- batch = getVectorizedRandomRowBatch(200, VectorizedRowBatch.DEFAULT_SIZE, MAX_SANE_DATE_VALUE);
+ batch = getVectorizedRandomRowBatch(200, VectorizedRowBatch.DEFAULT_SIZE);
verifyUDFYear(batch);
TestVectorizedRowBatch.addRandomNulls(batch.cols[0]);
verifyUDFYear(batch);
@@ -290,7 +283,7 @@ public class TestVectorDateExpressions {
batch.cols[0].isNull[0] = true;
verifyUDFMonth(batch);
- batch = getVectorizedRandomRowBatch(200, VectorizedRowBatch.DEFAULT_SIZE, MAX_SANE_DATE_VALUE);
+ batch = getVectorizedRandomRowBatch(200, VectorizedRowBatch.DEFAULT_SIZE);
verifyUDFMonth(batch);
TestVectorizedRowBatch.addRandomNulls(batch.cols[0]);
verifyUDFMonth(batch);