You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2018/08/14 06:12:55 UTC
hive git commit: HIVE-19316: StatsTask fails due to
ClassCastException (Jaume Marhuenda, reviewed by Jesus Camacho Rodriguez)
Repository: hive
Updated Branches:
refs/heads/master 681051f10 -> bfa69e107
HIVE-19316: StatsTask fails due to ClassCastException (Jaume Marhuenda, reviewed by Jesus Camacho Rodriguez)
Closes apache/hive#378
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/bfa69e10
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/bfa69e10
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/bfa69e10
Branch: refs/heads/master
Commit: bfa69e1077a61668b69f54dcc54609f773f89c93
Parents: 681051f
Author: Jaume Marhuenda <ja...@gmail.com>
Authored: Mon Aug 13 23:11:42 2018 -0700
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Mon Aug 13 23:12:29 2018 -0700
----------------------------------------------------------------------
.../columnstats/ColumnsStatsUtils.java | 117 +++++++++++++++++++
.../aggr/DateColumnStatsAggregator.java | 13 +--
.../aggr/DecimalColumnStatsAggregator.java | 12 +-
.../aggr/DoubleColumnStatsAggregator.java | 9 +-
.../aggr/LongColumnStatsAggregator.java | 11 +-
.../aggr/StringColumnStatsAggregator.java | 13 ++-
.../cache/DateColumnStatsDataInspector.java | 4 +
.../cache/DecimalColumnStatsDataInspector.java | 4 +
.../cache/DoubleColumnStatsDataInspector.java | 4 +
.../cache/LongColumnStatsDataInspector.java | 4 +
.../cache/StringColumnStatsDataInspector.java | 4 +
.../merge/DateColumnStatsMerger.java | 8 +-
.../merge/DecimalColumnStatsMerger.java | 6 +-
.../merge/DoubleColumnStatsMerger.java | 8 +-
.../merge/LongColumnStatsMerger.java | 8 +-
.../merge/StringColumnStatsMerger.java | 8 +-
16 files changed, 186 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/ColumnsStatsUtils.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/ColumnsStatsUtils.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/ColumnsStatsUtils.java
new file mode 100644
index 0000000..2d6d226
--- /dev/null
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/ColumnsStatsUtils.java
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.columnstats;
+
+import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
+import org.apache.hadoop.hive.metastore.columnstats.cache.DateColumnStatsDataInspector;
+import org.apache.hadoop.hive.metastore.columnstats.cache.DecimalColumnStatsDataInspector;
+import org.apache.hadoop.hive.metastore.columnstats.cache.DoubleColumnStatsDataInspector;
+import org.apache.hadoop.hive.metastore.columnstats.cache.LongColumnStatsDataInspector;
+import org.apache.hadoop.hive.metastore.columnstats.cache.StringColumnStatsDataInspector;
+
+/**
+ * Utils class for columnstats package.
+ */
+public final class ColumnsStatsUtils {
+
+ private ColumnsStatsUtils(){}
+
+ /**
+ * Convertes to DateColumnStatsDataInspector if it's a DateColumnStatsData.
+ * @param cso ColumnStatisticsObj
+ * @return DateColumnStatsDataInspector
+ */
+ public static DateColumnStatsDataInspector dateInspectorFromStats(ColumnStatisticsObj cso) {
+ DateColumnStatsDataInspector dateColumnStats;
+ if (cso.getStatsData().getDateStats() instanceof DateColumnStatsDataInspector) {
+ dateColumnStats =
+ (DateColumnStatsDataInspector)(cso.getStatsData().getDateStats());
+ } else {
+ dateColumnStats = new DateColumnStatsDataInspector(cso.getStatsData().getDateStats());
+ }
+ return dateColumnStats;
+ }
+
+ /**
+ * Convertes to StringColumnStatsDataInspector
+ * if it's a StringColumnStatsData.
+ * @param cso ColumnStatisticsObj
+ * @return StringColumnStatsDataInspector
+ */
+ public static StringColumnStatsDataInspector stringInspectorFromStats(ColumnStatisticsObj cso) {
+ StringColumnStatsDataInspector columnStats;
+ if (cso.getStatsData().getStringStats() instanceof StringColumnStatsDataInspector) {
+ columnStats =
+ (StringColumnStatsDataInspector)(cso.getStatsData().getStringStats());
+ } else {
+ columnStats = new StringColumnStatsDataInspector(cso.getStatsData().getStringStats());
+ }
+ return columnStats;
+ }
+
+ /**
+ * Convertes to LongColumnStatsDataInspector if it's a LongColumnStatsData.
+ * @param cso ColumnStatisticsObj
+ * @return LongColumnStatsDataInspector
+ */
+ public static LongColumnStatsDataInspector longInspectorFromStats(ColumnStatisticsObj cso) {
+ LongColumnStatsDataInspector columnStats;
+ if (cso.getStatsData().getLongStats() instanceof LongColumnStatsDataInspector) {
+ columnStats =
+ (LongColumnStatsDataInspector)(cso.getStatsData().getLongStats());
+ } else {
+ columnStats = new LongColumnStatsDataInspector(cso.getStatsData().getLongStats());
+ }
+ return columnStats;
+ }
+
+ /**
+ * Convertes to DoubleColumnStatsDataInspector
+ * if it's a DoubleColumnStatsData.
+ * @param cso ColumnStatisticsObj
+ * @return DoubleColumnStatsDataInspector
+ */
+ public static DoubleColumnStatsDataInspector doubleInspectorFromStats(ColumnStatisticsObj cso) {
+ DoubleColumnStatsDataInspector columnStats;
+ if (cso.getStatsData().getDoubleStats() instanceof DoubleColumnStatsDataInspector) {
+ columnStats =
+ (DoubleColumnStatsDataInspector)(cso.getStatsData().getDoubleStats());
+ } else {
+ columnStats = new DoubleColumnStatsDataInspector(cso.getStatsData().getDoubleStats());
+ }
+ return columnStats;
+ }
+
+ /**
+ * Convertes to DecimalColumnStatsDataInspector
+ * if it's a DecimalColumnStatsData.
+ * @param cso ColumnStatisticsObj
+ * @return DecimalColumnStatsDataInspector
+ */
+ public static DecimalColumnStatsDataInspector decimalInspectorFromStats(ColumnStatisticsObj cso) {
+ DecimalColumnStatsDataInspector columnStats;
+ if (cso.getStatsData().getDecimalStats() instanceof DecimalColumnStatsDataInspector) {
+ columnStats =
+ (DecimalColumnStatsDataInspector)(cso.getStatsData().getDecimalStats());
+ } else {
+ columnStats = new DecimalColumnStatsDataInspector(cso.getStatsData().getDecimalStats());
+ }
+ return columnStats;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DateColumnStatsAggregator.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DateColumnStatsAggregator.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DateColumnStatsAggregator.java
index e8ff513..9495424 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DateColumnStatsAggregator.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DateColumnStatsAggregator.java
@@ -38,6 +38,8 @@ import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.ColStatsObjWithSour
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.dateInspectorFromStats;
+
public class DateColumnStatsAggregator extends ColumnStatsAggregator implements
IExtrapolatePartStatus {
@@ -62,8 +64,8 @@ public class DateColumnStatsAggregator extends ColumnStatsAggregator implements
cso.getStatsData().getSetField());
LOG.trace("doAllPartitionContainStats for column: {} is: {}", colName, doAllPartitionContainStats);
}
- DateColumnStatsDataInspector dateColumnStats =
- (DateColumnStatsDataInspector) cso.getStatsData().getDateStats();
+ DateColumnStatsDataInspector dateColumnStats = dateInspectorFromStats(cso);
+
if (dateColumnStats.getNdvEstimator() == null) {
ndvEstimator = null;
break;
@@ -95,9 +97,7 @@ public class DateColumnStatsAggregator extends ColumnStatsAggregator implements
double densityAvgSum = 0.0;
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
- DateColumnStatsDataInspector newData =
- (DateColumnStatsDataInspector) cso.getStatsData().getDateStats();
- lowerBound = Math.max(lowerBound, newData.getNumDVs());
+ DateColumnStatsDataInspector newData = dateInspectorFromStats(cso);
higherBound += newData.getNumDVs();
densityAvgSum += (diff(newData.getHighValue(), newData.getLowValue()))
/ newData.getNumDVs();
@@ -174,8 +174,7 @@ public class DateColumnStatsAggregator extends ColumnStatsAggregator implements
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
String partName = csp.getPartName();
- DateColumnStatsDataInspector newData =
- (DateColumnStatsDataInspector) cso.getStatsData().getDateStats();
+ DateColumnStatsDataInspector newData = dateInspectorFromStats(cso);
// newData.isSetBitVectors() should be true for sure because we
// already checked it before.
if (indexMap.get(partName) != curIndex) {
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DecimalColumnStatsAggregator.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DecimalColumnStatsAggregator.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DecimalColumnStatsAggregator.java
index ac7e8e3..8739e73 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DecimalColumnStatsAggregator.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DecimalColumnStatsAggregator.java
@@ -40,6 +40,8 @@ import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.ColStatsObjWithSour
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.decimalInspectorFromStats;
+
public class DecimalColumnStatsAggregator extends ColumnStatsAggregator implements
IExtrapolatePartStatus {
@@ -65,8 +67,8 @@ public class DecimalColumnStatsAggregator extends ColumnStatsAggregator implemen
LOG.trace("doAllPartitionContainStats for column: {} is: {}", colName,
doAllPartitionContainStats);
}
- DecimalColumnStatsDataInspector decimalColumnStatsData =
- (DecimalColumnStatsDataInspector) cso.getStatsData().getDecimalStats();
+ DecimalColumnStatsDataInspector decimalColumnStatsData = decimalInspectorFromStats(cso);
+
if (decimalColumnStatsData.getNdvEstimator() == null) {
ndvEstimator = null;
break;
@@ -98,8 +100,7 @@ public class DecimalColumnStatsAggregator extends ColumnStatsAggregator implemen
double densityAvgSum = 0.0;
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
- DecimalColumnStatsDataInspector newData =
- (DecimalColumnStatsDataInspector) cso.getStatsData().getDecimalStats();
+ DecimalColumnStatsDataInspector newData = decimalInspectorFromStats(cso);
lowerBound = Math.max(lowerBound, newData.getNumDVs());
higherBound += newData.getNumDVs();
densityAvgSum += (MetaStoreUtils.decimalToDouble(newData.getHighValue()) - MetaStoreUtils
@@ -187,8 +188,7 @@ public class DecimalColumnStatsAggregator extends ColumnStatsAggregator implemen
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
String partName = csp.getPartName();
- DecimalColumnStatsDataInspector newData =
- (DecimalColumnStatsDataInspector) cso.getStatsData().getDecimalStats();
+ DecimalColumnStatsDataInspector newData = decimalInspectorFromStats(cso);
// newData.isSetBitVectors() should be true for sure because we
// already checked it before.
if (indexMap.get(partName) != curIndex) {
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DoubleColumnStatsAggregator.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DoubleColumnStatsAggregator.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DoubleColumnStatsAggregator.java
index ece77dd..5ad8453 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DoubleColumnStatsAggregator.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/DoubleColumnStatsAggregator.java
@@ -37,6 +37,8 @@ import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.ColStatsObjWithSour
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.doubleInspectorFromStats;
+
public class DoubleColumnStatsAggregator extends ColumnStatsAggregator implements
IExtrapolatePartStatus {
@@ -63,7 +65,7 @@ public class DoubleColumnStatsAggregator extends ColumnStatsAggregator implement
doAllPartitionContainStats);
}
DoubleColumnStatsDataInspector doubleColumnStatsData =
- (DoubleColumnStatsDataInspector) cso.getStatsData().getDoubleStats();
+ doubleInspectorFromStats(cso);
if (doubleColumnStatsData.getNdvEstimator() == null) {
ndvEstimator = null;
break;
@@ -95,8 +97,7 @@ public class DoubleColumnStatsAggregator extends ColumnStatsAggregator implement
double densityAvgSum = 0.0;
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
- DoubleColumnStatsDataInspector newData =
- (DoubleColumnStatsDataInspector) cso.getStatsData().getDoubleStats();
+ DoubleColumnStatsDataInspector newData = doubleInspectorFromStats(cso);
lowerBound = Math.max(lowerBound, newData.getNumDVs());
higherBound += newData.getNumDVs();
densityAvgSum += (newData.getHighValue() - newData.getLowValue()) / newData.getNumDVs();
@@ -173,7 +174,7 @@ public class DoubleColumnStatsAggregator extends ColumnStatsAggregator implement
ColumnStatisticsObj cso = csp.getColStatsObj();
String partName = csp.getPartName();
DoubleColumnStatsDataInspector newData =
- (DoubleColumnStatsDataInspector) cso.getStatsData().getDoubleStats();
+ doubleInspectorFromStats(cso);
// newData.isSetBitVectors() should be true for sure because we
// already checked it before.
if (indexMap.get(partName) != curIndex) {
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/LongColumnStatsAggregator.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/LongColumnStatsAggregator.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/LongColumnStatsAggregator.java
index e6823d3..ab31539 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/LongColumnStatsAggregator.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/LongColumnStatsAggregator.java
@@ -38,6 +38,8 @@ import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.ColStatsObjWithSour
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.longInspectorFromStats;
+
public class LongColumnStatsAggregator extends ColumnStatsAggregator implements
IExtrapolatePartStatus {
@@ -63,8 +65,7 @@ public class LongColumnStatsAggregator extends ColumnStatsAggregator implements
LOG.trace("doAllPartitionContainStats for column: {} is: {}", colName,
doAllPartitionContainStats);
}
- LongColumnStatsDataInspector longColumnStatsData =
- (LongColumnStatsDataInspector) cso.getStatsData().getLongStats();
+ LongColumnStatsDataInspector longColumnStatsData = longInspectorFromStats(cso);
if (longColumnStatsData.getNdvEstimator() == null) {
ndvEstimator = null;
break;
@@ -96,8 +97,7 @@ public class LongColumnStatsAggregator extends ColumnStatsAggregator implements
double densityAvgSum = 0.0;
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
- LongColumnStatsDataInspector newData =
- (LongColumnStatsDataInspector) cso.getStatsData().getLongStats();
+ LongColumnStatsDataInspector newData = longInspectorFromStats(cso);
lowerBound = Math.max(lowerBound, newData.getNumDVs());
higherBound += newData.getNumDVs();
densityAvgSum += (newData.getHighValue() - newData.getLowValue()) / newData.getNumDVs();
@@ -174,8 +174,7 @@ public class LongColumnStatsAggregator extends ColumnStatsAggregator implements
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
String partName = csp.getPartName();
- LongColumnStatsDataInspector newData =
- (LongColumnStatsDataInspector) cso.getStatsData().getLongStats();
+ LongColumnStatsDataInspector newData = longInspectorFromStats(cso);
// newData.isSetBitVectors() should be true for sure because we
// already checked it before.
if (indexMap.get(partName) != curIndex) {
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/StringColumnStatsAggregator.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/StringColumnStatsAggregator.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/StringColumnStatsAggregator.java
index 9537647..92fdda5 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/StringColumnStatsAggregator.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/aggr/StringColumnStatsAggregator.java
@@ -38,6 +38,8 @@ import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.ColStatsObjWithSour
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.stringInspectorFromStats;
+
public class StringColumnStatsAggregator extends ColumnStatsAggregator implements
IExtrapolatePartStatus {
@@ -63,8 +65,7 @@ public class StringColumnStatsAggregator extends ColumnStatsAggregator implement
LOG.trace("doAllPartitionContainStats for column: {} is: {}", colName,
doAllPartitionContainStats);
}
- StringColumnStatsDataInspector stringColumnStatsData =
- (StringColumnStatsDataInspector) cso.getStatsData().getStringStats();
+ StringColumnStatsDataInspector stringColumnStatsData = stringInspectorFromStats(cso);
if (stringColumnStatsData.getNdvEstimator() == null) {
ndvEstimator = null;
break;
@@ -93,8 +94,7 @@ public class StringColumnStatsAggregator extends ColumnStatsAggregator implement
StringColumnStatsDataInspector aggregateData = null;
for (ColStatsObjWithSourceInfo csp : colStatsWithSourceInfo) {
ColumnStatisticsObj cso = csp.getColStatsObj();
- StringColumnStatsDataInspector newData =
- (StringColumnStatsDataInspector) cso.getStatsData().getStringStats();
+ StringColumnStatsDataInspector newData = stringInspectorFromStats(cso);
if (ndvEstimator != null) {
ndvEstimator.mergeEstimators(newData.getNdvEstimator());
}
@@ -149,7 +149,7 @@ public class StringColumnStatsAggregator extends ColumnStatsAggregator implement
ColumnStatisticsObj cso = csp.getColStatsObj();
String partName = csp.getPartName();
StringColumnStatsDataInspector newData =
- (StringColumnStatsDataInspector) cso.getStatsData().getStringStats();
+ stringInspectorFromStats(cso);
// newData.isSetBitVectors() should be true for sure because we
// already checked it before.
if (indexMap.get(partName) != curIndex) {
@@ -211,7 +211,8 @@ public class StringColumnStatsAggregator extends ColumnStatsAggregator implement
int numPartsWithStats, Map<String, Double> adjustedIndexMap,
Map<String, ColumnStatisticsData> adjustedStatsMap, double densityAvg) {
int rightBorderInd = numParts;
- StringColumnStatsDataInspector extrapolateStringData = new StringColumnStatsDataInspector();
+ StringColumnStatsDataInspector extrapolateStringData =
+ new StringColumnStatsDataInspector();
Map<String, StringColumnStatsData> extractedAdjustedStatsMap = new HashMap<>();
for (Map.Entry<String, ColumnStatisticsData> entry : adjustedStatsMap.entrySet()) {
extractedAdjustedStatsMap.put(entry.getKey(), entry.getValue().getStringStats());
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DateColumnStatsDataInspector.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DateColumnStatsDataInspector.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DateColumnStatsDataInspector.java
index f6eacbc..d66e19a 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DateColumnStatsDataInspector.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DateColumnStatsDataInspector.java
@@ -43,6 +43,10 @@ public class DateColumnStatsDataInspector extends DateColumnStatsData {
}
}
+ public DateColumnStatsDataInspector(DateColumnStatsData other) {
+ super(other);
+ }
+
@Override
public DateColumnStatsDataInspector deepCopy() {
return new DateColumnStatsDataInspector(this);
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DecimalColumnStatsDataInspector.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DecimalColumnStatsDataInspector.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DecimalColumnStatsDataInspector.java
index e2427f3..88cab2c 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DecimalColumnStatsDataInspector.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DecimalColumnStatsDataInspector.java
@@ -43,6 +43,10 @@ public class DecimalColumnStatsDataInspector extends DecimalColumnStatsData {
}
}
+ public DecimalColumnStatsDataInspector(DecimalColumnStatsData other) {
+ super(other);
+ }
+
@Override
public DecimalColumnStatsDataInspector deepCopy() {
return new DecimalColumnStatsDataInspector(this);
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DoubleColumnStatsDataInspector.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DoubleColumnStatsDataInspector.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DoubleColumnStatsDataInspector.java
index 7ce7127..2ee7fad 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DoubleColumnStatsDataInspector.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/DoubleColumnStatsDataInspector.java
@@ -43,6 +43,10 @@ public class DoubleColumnStatsDataInspector extends DoubleColumnStatsData {
}
}
+ public DoubleColumnStatsDataInspector(DoubleColumnStatsData other) {
+ super(other);
+ }
+
@Override
public DoubleColumnStatsDataInspector deepCopy() {
return new DoubleColumnStatsDataInspector(this);
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/LongColumnStatsDataInspector.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/LongColumnStatsDataInspector.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/LongColumnStatsDataInspector.java
index faf314b..a4d0a1d 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/LongColumnStatsDataInspector.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/LongColumnStatsDataInspector.java
@@ -43,6 +43,10 @@ public class LongColumnStatsDataInspector extends LongColumnStatsData {
}
}
+ public LongColumnStatsDataInspector(LongColumnStatsData other) {
+ super(other);
+ }
+
@Override
public LongColumnStatsDataInspector deepCopy() {
return new LongColumnStatsDataInspector(this);
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/StringColumnStatsDataInspector.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/StringColumnStatsDataInspector.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/StringColumnStatsDataInspector.java
index 0876410..12afb9c 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/StringColumnStatsDataInspector.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/cache/StringColumnStatsDataInspector.java
@@ -44,6 +44,10 @@ public class StringColumnStatsDataInspector extends StringColumnStatsData {
}
}
+ public StringColumnStatsDataInspector(StringColumnStatsData other) {
+ super(other);
+ }
+
@Override
public StringColumnStatsDataInspector deepCopy() {
return new StringColumnStatsDataInspector(this);
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DateColumnStatsMerger.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DateColumnStatsMerger.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DateColumnStatsMerger.java
index 5baebbb..3e0ce07 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DateColumnStatsMerger.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DateColumnStatsMerger.java
@@ -24,13 +24,13 @@ import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
import org.apache.hadoop.hive.metastore.api.Date;
import org.apache.hadoop.hive.metastore.columnstats.cache.DateColumnStatsDataInspector;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.dateInspectorFromStats;
+
public class DateColumnStatsMerger extends ColumnStatsMerger {
@Override
public void merge(ColumnStatisticsObj aggregateColStats, ColumnStatisticsObj newColStats) {
- DateColumnStatsDataInspector aggregateData =
- (DateColumnStatsDataInspector) aggregateColStats.getStatsData().getDateStats();
- DateColumnStatsDataInspector newData =
- (DateColumnStatsDataInspector) newColStats.getStatsData().getDateStats();
+ DateColumnStatsDataInspector aggregateData = dateInspectorFromStats(aggregateColStats);
+ DateColumnStatsDataInspector newData = dateInspectorFromStats(newColStats);
Date lowValue = aggregateData.getLowValue().compareTo(newData.getLowValue()) < 0 ? aggregateData
.getLowValue() : newData.getLowValue();
aggregateData.setLowValue(lowValue);
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DecimalColumnStatsMerger.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DecimalColumnStatsMerger.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DecimalColumnStatsMerger.java
index 517ca72..5094358 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DecimalColumnStatsMerger.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DecimalColumnStatsMerger.java
@@ -24,13 +24,15 @@ import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
import org.apache.hadoop.hive.metastore.api.Decimal;
import org.apache.hadoop.hive.metastore.columnstats.cache.DecimalColumnStatsDataInspector;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.decimalInspectorFromStats;
+
public class DecimalColumnStatsMerger extends ColumnStatsMerger {
@Override
public void merge(ColumnStatisticsObj aggregateColStats, ColumnStatisticsObj newColStats) {
DecimalColumnStatsDataInspector aggregateData =
- (DecimalColumnStatsDataInspector) aggregateColStats.getStatsData().getDecimalStats();
+ decimalInspectorFromStats(aggregateColStats);
DecimalColumnStatsDataInspector newData =
- (DecimalColumnStatsDataInspector) newColStats.getStatsData().getDecimalStats();
+ decimalInspectorFromStats(newColStats);
Decimal lowValue = getMin(aggregateData.getLowValue(), newData.getLowValue());
aggregateData.setLowValue(lowValue);
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DoubleColumnStatsMerger.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DoubleColumnStatsMerger.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DoubleColumnStatsMerger.java
index 6a95751..cbacacd 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DoubleColumnStatsMerger.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/DoubleColumnStatsMerger.java
@@ -23,13 +23,13 @@ import org.apache.hadoop.hive.common.ndv.NumDistinctValueEstimator;
import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
import org.apache.hadoop.hive.metastore.columnstats.cache.DoubleColumnStatsDataInspector;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.doubleInspectorFromStats;
+
public class DoubleColumnStatsMerger extends ColumnStatsMerger {
@Override
public void merge(ColumnStatisticsObj aggregateColStats, ColumnStatisticsObj newColStats) {
- DoubleColumnStatsDataInspector aggregateData =
- (DoubleColumnStatsDataInspector) aggregateColStats.getStatsData().getDoubleStats();
- DoubleColumnStatsDataInspector newData =
- (DoubleColumnStatsDataInspector) newColStats.getStatsData().getDoubleStats();
+ DoubleColumnStatsDataInspector aggregateData = doubleInspectorFromStats(aggregateColStats);
+ DoubleColumnStatsDataInspector newData = doubleInspectorFromStats(newColStats);
aggregateData.setLowValue(Math.min(aggregateData.getLowValue(), newData.getLowValue()));
aggregateData.setHighValue(Math.max(aggregateData.getHighValue(), newData.getHighValue()));
aggregateData.setNumNulls(aggregateData.getNumNulls() + newData.getNumNulls());
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/LongColumnStatsMerger.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/LongColumnStatsMerger.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/LongColumnStatsMerger.java
index ca1a912..8e70371 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/LongColumnStatsMerger.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/LongColumnStatsMerger.java
@@ -23,13 +23,13 @@ import org.apache.hadoop.hive.common.ndv.NumDistinctValueEstimator;
import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
import org.apache.hadoop.hive.metastore.columnstats.cache.LongColumnStatsDataInspector;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.longInspectorFromStats;
+
public class LongColumnStatsMerger extends ColumnStatsMerger {
@Override
public void merge(ColumnStatisticsObj aggregateColStats, ColumnStatisticsObj newColStats) {
- LongColumnStatsDataInspector aggregateData =
- (LongColumnStatsDataInspector) aggregateColStats.getStatsData().getLongStats();
- LongColumnStatsDataInspector newData =
- (LongColumnStatsDataInspector) newColStats.getStatsData().getLongStats();
+ LongColumnStatsDataInspector aggregateData = longInspectorFromStats(aggregateColStats);
+ LongColumnStatsDataInspector newData = longInspectorFromStats(newColStats);
aggregateData.setLowValue(Math.min(aggregateData.getLowValue(), newData.getLowValue()));
aggregateData.setHighValue(Math.max(aggregateData.getHighValue(), newData.getHighValue()));
aggregateData.setNumNulls(aggregateData.getNumNulls() + newData.getNumNulls());
http://git-wip-us.apache.org/repos/asf/hive/blob/bfa69e10/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/StringColumnStatsMerger.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/StringColumnStatsMerger.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/StringColumnStatsMerger.java
index d6b4478..762685d 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/StringColumnStatsMerger.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/columnstats/merge/StringColumnStatsMerger.java
@@ -23,13 +23,13 @@ import org.apache.hadoop.hive.common.ndv.NumDistinctValueEstimator;
import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
import org.apache.hadoop.hive.metastore.columnstats.cache.StringColumnStatsDataInspector;
+import static org.apache.hadoop.hive.metastore.columnstats.ColumnsStatsUtils.stringInspectorFromStats;
+
public class StringColumnStatsMerger extends ColumnStatsMerger {
@Override
public void merge(ColumnStatisticsObj aggregateColStats, ColumnStatisticsObj newColStats) {
- StringColumnStatsDataInspector aggregateData =
- (StringColumnStatsDataInspector) aggregateColStats.getStatsData().getStringStats();
- StringColumnStatsDataInspector newData =
- (StringColumnStatsDataInspector) newColStats.getStatsData().getStringStats();
+ StringColumnStatsDataInspector aggregateData = stringInspectorFromStats(aggregateColStats);
+ StringColumnStatsDataInspector newData = stringInspectorFromStats(newColStats);
aggregateData.setMaxColLen(Math.max(aggregateData.getMaxColLen(), newData.getMaxColLen()));
aggregateData.setAvgColLen(Math.max(aggregateData.getAvgColLen(), newData.getAvgColLen()));
aggregateData.setNumNulls(aggregateData.getNumNulls() + newData.getNumNulls());