Author: hashutosh Date: Thu Feb 5 00:02:54 2015 New Revision: 1657445 URL: http://svn.apache.org/r1657445 Log: HIVE-9397 : SELECT max(bar) FROM foo is broken after ANALYZE ... FOR COLUMNS (Navis via Ashutosh Chauhan)
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/StatsOptimizer.java hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries.q.out hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries_with_filters.q.out hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries.q.out hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries_with_filters.q.out hive/trunk/ql/src/test/results/clientpositive/tez/metadata_only_queries.q.out Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/StatsOptimizer.java URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/StatsOptimizer.java?rev=1657445&r1=1657444&r2=1657445&view=diff ============================================================================== --- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/StatsOptimizer.java (original) +++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/StatsOptimizer.java Thu Feb 5 00:02:54 2015 @@ -34,7 +34,6 @@ import org.apache.hadoop.hive.metastore. import org.apache.hadoop.hive.metastore.api.DoubleColumnStatsData; import org.apache.hadoop.hive.metastore.api.LongColumnStatsData; import org.apache.hadoop.hive.ql.exec.ColumnInfo; -import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.FetchTask; import org.apache.hadoop.hive.ql.exec.FileSinkOperator; import org.apache.hadoop.hive.ql.exec.FunctionRegistry; @@ -74,8 +73,7 @@ import org.apache.hadoop.hive.serde2.obj import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory; import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory; import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector; -import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory; -import org.apache.hive.common.util.AnnotationUtils; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils; import org.apache.thrift.TException; import com.google.common.collect.Lists; @@ -143,6 +141,22 @@ public class StatsOptimizer implements T Unsupported } + enum LongSubType { + BIGINT { Object cast(long longValue) { return longValue; } }, + INT { Object cast(long longValue) { return (int)longValue; } }, + SMALLINT { Object cast(long longValue) { return (short)longValue; } }, + TINYINT { Object cast(long longValue) { return (byte)longValue; } }; + + abstract Object cast(long longValue); + } + + enum DoubleSubType { + DOUBLE { Object cast(double doubleValue) { return doubleValue; } }, + FLOAT { Object cast(double doubleValue) { return (float) doubleValue; } }; + + abstract Object cast(double doubleValue); + } + private StatType getType(String origType) { if (serdeConstants.IntegralTypes.contains(origType)) { return StatType.Integeral; @@ -190,57 +204,56 @@ public class StatsOptimizer implements T try { TableScanOperator tsOp = (TableScanOperator) stack.get(0); - if(tsOp.getParentOperators() != null && tsOp.getParentOperators().size() > 0) { + if (tsOp.getNumParent() > 0) { // looks like a subq plan. return null; } - SelectOperator selOp = (SelectOperator)tsOp.getChildren().get(0); - for(ExprNodeDesc desc : selOp.getConf().getColList()) { + SelectOperator pselOp = (SelectOperator)stack.get(1); + for(ExprNodeDesc desc : pselOp.getConf().getColList()) { if (!((desc instanceof ExprNodeColumnDesc) || (desc instanceof ExprNodeConstantDesc))) { // Probably an expression, cant handle that return null; } } - Map<String, ExprNodeDesc> exprMap = selOp.getColumnExprMap(); - // Since we have done an exact match on TS-SEL-GBY-RS-GBY-SEL-FS + Map<String, ExprNodeDesc> exprMap = pselOp.getColumnExprMap(); + // Since we have done an exact match on TS-SEL-GBY-RS-GBY-(SEL)-FS // we need not to do any instanceof checks for following. - GroupByOperator gbyOp = (GroupByOperator)selOp.getChildren().get(0); - ReduceSinkOperator rsOp = (ReduceSinkOperator)gbyOp.getChildren().get(0); + GroupByOperator pgbyOp = (GroupByOperator)stack.get(2); + if (pgbyOp.getConf().getOutputColumnNames().size() != + pgbyOp.getConf().getAggregators().size()) { + return null; + } + ReduceSinkOperator rsOp = (ReduceSinkOperator)stack.get(3); if (rsOp.getConf().getDistinctColumnIndices().size() > 0) { // we can't handle distinct return null; } - Operator<?> last = rsOp.getChildOperators().get(0); - if (last.getChildOperators().get(0) instanceof SelectOperator) { - selOp = (SelectOperator)rsOp.getChildOperators().get(0).getChildOperators().get(0); - last = selOp; - if (!(selOp.getConf().getColList().size() == - gbyOp.getConf().getAggregators().size())) { - // all select columns must be aggregations - return null; - - } - for(ExprNodeDesc desc : selOp.getConf().getColList()) { - if (!(desc instanceof ExprNodeColumnDesc)) { - // Probably an expression, cant handle that - return null; - } + GroupByOperator cgbyOp = (GroupByOperator)stack.get(4); + if (cgbyOp.getConf().getOutputColumnNames().size() != + cgbyOp.getConf().getAggregators().size()) { + return null; + } + Operator<?> last = (Operator<?>) stack.get(5); + if (last instanceof SelectOperator) { + SelectOperator cselOp = (SelectOperator) last; + if (!cselOp.isIdentitySelect()) { + return null; // todo we can do further by providing operator to fetch task } + last = (Operator<?>) stack.get(6); } - FileSinkOperator fsOp = (FileSinkOperator)(last.getChildren().get(0)); - if (fsOp.getChildOperators() != null && fsOp.getChildOperators().size() > 0) { + FileSinkOperator fsOp = (FileSinkOperator)last; + if (fsOp.getNumChild() > 0) { // looks like a subq plan. - return null; + return null; // todo we can collapse this part of tree into single TS } Table tbl = tsOp.getConf().getTableMetadata(); List<Object> oneRow = new ArrayList<Object>(); - List<ObjectInspector> ois = new ArrayList<ObjectInspector>(); Hive hive = Hive.get(pctx.getConf()); - for (AggregationDesc aggr : gbyOp.getConf().getAggregators()) { + for (AggregationDesc aggr : pgbyOp.getConf().getAggregators()) { if (aggr.getDistinct()) { // our stats for NDV is approx, not accurate. return null; @@ -249,7 +262,12 @@ public class StatsOptimizer implements T GenericUDAFResolver udaf = FunctionRegistry.getGenericUDAFResolver(aggr.getGenericUDAFName()); if (udaf instanceof GenericUDAFSum) { + // long/double/decimal ExprNodeDesc desc = aggr.getParameters().get(0); + PrimitiveCategory category = GenericUDAFSum.getReturnType(desc.getTypeInfo()); + if (category == null) { + return null; + } String constant; if (desc instanceof ExprNodeConstantDesc) { constant = ((ExprNodeConstantDesc) desc).getValue().toString(); @@ -262,11 +280,22 @@ public class StatsOptimizer implements T if(rowCnt == null) { return null; } - oneRow.add(HiveDecimal.create(constant).multiply(HiveDecimal.create(rowCnt))); - ois.add(PrimitiveObjectInspectorFactory.getPrimitiveJavaObjectInspector( - PrimitiveCategory.DECIMAL)); + switch (category) { + case LONG: + oneRow.add(Long.valueOf(constant) * rowCnt); + break; + case DOUBLE: + oneRow.add(Double.valueOf(constant) * rowCnt); + break; + case DECIMAL: + oneRow.add(HiveDecimal.create(constant).multiply(HiveDecimal.create(rowCnt))); + break; + default: + throw new IllegalStateException("never"); + } } else if (udaf instanceof GenericUDAFCount) { + // always long Long rowCnt = 0L; if (aggr.getParameters().isEmpty() || aggr.getParameters().get(0) instanceof ExprNodeConstantDesc || ((aggr.getParameters().get(0) instanceof ExprNodeColumnDesc) && @@ -341,8 +370,6 @@ public class StatsOptimizer implements T } } oneRow.add(rowCnt); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.LONG)); } else if (udaf instanceof GenericUDAFMax) { ExprNodeColumnDesc colDesc = (ExprNodeColumnDesc)exprMap.get(((ExprNodeColumnDesc)aggr.getParameters().get(0)).getColumn()); String colName = colDesc.getColumn(); @@ -359,19 +386,28 @@ public class StatsOptimizer implements T return null; } ColumnStatisticsData statData = stats.get(0).getStatsData(); + String name = colDesc.getTypeString().toUpperCase(); switch (type) { - case Integeral: + case Integeral: { + LongSubType subType = LongSubType.valueOf(name); LongColumnStatsData lstats = statData.getLongStats(); - oneRow.add(lstats.isSetHighValue() ? lstats.getHighValue() : null); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.LONG)); + if (lstats.isSetHighValue()) { + oneRow.add(subType.cast(lstats.getHighValue())); + } else { + oneRow.add(null); + } break; - case Double: + } + case Double: { + DoubleSubType subType = DoubleSubType.valueOf(name); DoubleColumnStatsData dstats = statData.getDoubleStats(); - oneRow.add(dstats.isSetHighValue() ? dstats.getHighValue() : null); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.DOUBLE)); + if (dstats.isSetHighValue()) { + oneRow.add(subType.cast(dstats.getHighValue())); + } else { + oneRow.add(null); + } break; + } default: // unsupported type Log.debug("Unsupported type: " + colDesc.getTypeString() + " encountered in " + @@ -381,8 +417,11 @@ public class StatsOptimizer implements T } else { Set<Partition> parts = pctx.getPrunedPartitions( tsOp.getConf().getAlias(), tsOp).getPartitions(); + String name = colDesc.getTypeString().toUpperCase(); switch (type) { case Integeral: { + LongSubType subType = LongSubType.valueOf(name); + Long maxVal = null; Collection<List<ColumnStatisticsObj>> result = verifyAndGetPartStats(hive, tbl, colName, parts); @@ -399,12 +438,16 @@ public class StatsOptimizer implements T long curVal = lstats.getHighValue(); maxVal = maxVal == null ? curVal : Math.max(maxVal, curVal); } - oneRow.add(maxVal); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.LONG)); + if (maxVal != null) { + oneRow.add(subType.cast(maxVal)); + } else { + oneRow.add(maxVal); + } break; } case Double: { + DoubleSubType subType = DoubleSubType.valueOf(name); + Double maxVal = null; Collection<List<ColumnStatisticsObj>> result = verifyAndGetPartStats(hive, tbl, colName, parts); @@ -421,9 +464,11 @@ public class StatsOptimizer implements T double curVal = statData.getDoubleStats().getHighValue(); maxVal = maxVal == null ? curVal : Math.max(maxVal, curVal); } - oneRow.add(maxVal); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.DOUBLE)); + if (maxVal != null) { + oneRow.add(subType.cast(maxVal)); + } else { + oneRow.add(null); + } break; } default: @@ -444,19 +489,28 @@ public class StatsOptimizer implements T ColumnStatisticsData statData = hive.getMSC().getTableColumnStatistics( tbl.getDbName(), tbl.getTableName(), Lists.newArrayList(colName)) .get(0).getStatsData(); + String name = colDesc.getTypeString().toUpperCase(); switch (type) { - case Integeral: + case Integeral: { + LongSubType subType = LongSubType.valueOf(name); LongColumnStatsData lstats = statData.getLongStats(); - oneRow.add(lstats.isSetLowValue() ? lstats.getLowValue() : null); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.LONG)); + if (lstats.isSetLowValue()) { + oneRow.add(subType.cast(lstats.getLowValue())); + } else { + oneRow.add(null); + } break; - case Double: + } + case Double: { + DoubleSubType subType = DoubleSubType.valueOf(name); DoubleColumnStatsData dstats = statData.getDoubleStats(); - oneRow.add(dstats.isSetLowValue() ? dstats.getLowValue() : null); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.DOUBLE)); + if (dstats.isSetLowValue()) { + oneRow.add(subType.cast(dstats.getLowValue())); + } else { + oneRow.add(null); + } break; + } default: // unsupported type Log.debug("Unsupported type: " + colDesc.getTypeString() + " encountered in " + "metadata optimizer for column : " + colName); @@ -464,8 +518,11 @@ public class StatsOptimizer implements T } } else { Set<Partition> parts = pctx.getPrunedPartitions(tsOp.getConf().getAlias(), tsOp).getPartitions(); + String name = colDesc.getTypeString().toUpperCase(); switch(type) { case Integeral: { + LongSubType subType = LongSubType.valueOf(name); + Long minVal = null; Collection<List<ColumnStatisticsObj>> result = verifyAndGetPartStats(hive, tbl, colName, parts); @@ -482,12 +539,16 @@ public class StatsOptimizer implements T long curVal = lstats.getLowValue(); minVal = minVal == null ? curVal : Math.min(minVal, curVal); } - oneRow.add(minVal); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.LONG)); + if (minVal != null) { + oneRow.add(subType.cast(minVal)); + } else { + oneRow.add(minVal); + } break; } case Double: { + DoubleSubType subType = DoubleSubType.valueOf(name); + Double minVal = null; Collection<List<ColumnStatisticsObj>> result = verifyAndGetPartStats(hive, tbl, colName, parts); @@ -504,9 +565,11 @@ public class StatsOptimizer implements T double curVal = statData.getDoubleStats().getLowValue(); minVal = minVal == null ? curVal : Math.min(minVal, curVal); } - oneRow.add(minVal); - ois.add(PrimitiveObjectInspectorFactory. - getPrimitiveJavaObjectInspector(PrimitiveCategory.DOUBLE)); + if (minVal != null) { + oneRow.add(subType.cast(minVal)); + } else { + oneRow.add(minVal); + } break; } default: // unsupported type @@ -528,8 +591,10 @@ public class StatsOptimizer implements T allRows.add(oneRow); List<String> colNames = new ArrayList<String>(); - for (ColumnInfo colInfo: gbyOp.getSchema().getSignature()) { + List<ObjectInspector> ois = new ArrayList<ObjectInspector>(); + for (ColumnInfo colInfo: cgbyOp.getSchema().getSignature()) { colNames.add(colInfo.getInternalName()); + ois.add(TypeInfoUtils.getStandardJavaObjectInspectorFromTypeInfo(colInfo.getType())); } StandardStructObjectInspector sOI = ObjectInspectorFactory. getStandardStructObjectInspector(colNames, ois); Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java?rev=1657445&r1=1657444&r2=1657445&view=diff ============================================================================== --- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java (original) +++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java Thu Feb 5 00:02:54 2015 @@ -87,6 +87,29 @@ public class GenericUDAFSum extends Abst } } + public static PrimitiveObjectInspector.PrimitiveCategory getReturnType(TypeInfo type) { + if (type.getCategory() != ObjectInspector.Category.PRIMITIVE) { + return null; + } + switch (((PrimitiveTypeInfo) type).getPrimitiveCategory()) { + case BYTE: + case SHORT: + case INT: + case LONG: + return PrimitiveObjectInspector.PrimitiveCategory.LONG; + case TIMESTAMP: + case FLOAT: + case DOUBLE: + case STRING: + case VARCHAR: + case CHAR: + return PrimitiveObjectInspector.PrimitiveCategory.DOUBLE; + case DECIMAL: + return PrimitiveObjectInspector.PrimitiveCategory.DECIMAL; + } + return null; + } + /** * GenericUDAFSumHiveDecimal. * Modified: hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries.q.out?rev=1657445&r1=1657444&r2=1657445&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries.q.out Thu Feb 5 00:02:54 2015 @@ -338,7 +338,7 @@ POSTHOOK: query: select count(*), sum(1) POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl #### A masked pattern was here #### -9999 9999 1999.8 9999 9999 9999 9999 9999 +9999 9999 1999.8000000000002 9999 9999 9999 9999 9999 PREHOOK: query: explain select min(i), max(i), min(b), max(b), min(f), max(f), min(d), max(d) from stats_tbl PREHOOK: type: QUERY @@ -363,7 +363,7 @@ POSTHOOK: query: select min(i), max(i), POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl #### A masked pattern was here #### -65536 65791 4294967296 4294967551 0.009999999776482582 99.9800033569336 0.01 50.0 +65536 65791 4294967296 4294967551 0.01 99.98 0.01 50.0 PREHOOK: query: explain select count(*), sum(1), sum(0.2), count(1), count(s), count(bo), count(bin), count(si) from stats_tbl_part PREHOOK: type: QUERY @@ -388,7 +388,7 @@ POSTHOOK: query: select count(*), sum(1) POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -9489 9489 1897.8 9489 9489 9489 9489 9489 +9489 9489 1897.8000000000002 9489 9489 9489 9489 9489 PREHOOK: query: explain select min(i), max(i), min(b), max(b), min(f), max(f), min(d), max(d) from stats_tbl_part PREHOOK: type: QUERY @@ -413,7 +413,7 @@ POSTHOOK: query: select min(i), max(i), POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -65536 65791 4294967296 4294967551 0.009999999776482582 99.9800033569336 0.01 50.0 +65536 65791 4294967296 4294967551 0.01 99.98 0.01 50.0 PREHOOK: query: explain select count(ts) from stats_tbl_part PREHOOK: type: QUERY POSTHOOK: query: explain select count(ts) from stats_tbl_part Modified: hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries_with_filters.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries_with_filters.q.out?rev=1657445&r1=1657444&r2=1657445&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries_with_filters.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/metadata_only_queries_with_filters.q.out Thu Feb 5 00:02:54 2015 @@ -166,7 +166,7 @@ POSTHOOK: query: select count(*), count( POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -2322 2322 2322 2322 2322 2322 2322 65791 4294967296 99.9800033569336 0.03 +2322 2322 2322 2322 2322 2322 2322 65791 4294967296 99.98 0.03 PREHOOK: query: explain select count(*), count(1), sum(1), sum(2), count(s), count(bo), count(bin), count(si), max(i), min(b), max(f), min(d) from stats_tbl_part where dt > 2010 PREHOOK: type: QUERY @@ -191,7 +191,7 @@ POSTHOOK: query: select count(*), count( POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -2219 2219 2219 4438 2219 2219 2219 2219 65791 4294967296 99.95999908447266 0.04 +2219 2219 2219 4438 2219 2219 2219 2219 65791 4294967296 99.96 0.04 PREHOOK: query: select count(*) from stats_tbl_part PREHOOK: type: QUERY PREHOOK: Input: default@stats_tbl_part Modified: hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries.q.out?rev=1657445&r1=1657444&r2=1657445&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries.q.out Thu Feb 5 00:02:54 2015 @@ -350,7 +350,7 @@ POSTHOOK: query: select count(*), sum(1) POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl #### A masked pattern was here #### -9999 9999 1999.8 9999 9999 9999 9999 9999 +9999 9999 1999.8000000000002 9999 9999 9999 9999 9999 PREHOOK: query: explain select min(i), max(i), min(b), max(b), min(f), max(f), min(d), max(d) from stats_tbl PREHOOK: type: QUERY @@ -375,7 +375,7 @@ POSTHOOK: query: select min(i), max(i), POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl #### A masked pattern was here #### -65536 65791 4294967296 4294967551 0.009999999776482582 99.9800033569336 0.01 50.0 +65536 65791 4294967296 4294967551 0.01 99.98 0.01 50.0 PREHOOK: query: explain select count(*), sum(1), sum(0.2), count(1), count(s), count(bo), count(bin), count(si) from stats_tbl_part PREHOOK: type: QUERY @@ -400,7 +400,7 @@ POSTHOOK: query: select count(*), sum(1) POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -9489 9489 1897.8 9489 9489 9489 9489 9489 +9489 9489 1897.8000000000002 9489 9489 9489 9489 9489 PREHOOK: query: explain select min(i), max(i), min(b), max(b), min(f), max(f), min(d), max(d) from stats_tbl_part PREHOOK: type: QUERY @@ -425,7 +425,7 @@ POSTHOOK: query: select min(i), max(i), POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -65536 65791 4294967296 4294967551 0.009999999776482582 99.9800033569336 0.01 50.0 +65536 65791 4294967296 4294967551 0.01 99.98 0.01 50.0 PREHOOK: query: explain select count(ts) from stats_tbl_part PREHOOK: type: QUERY POSTHOOK: query: explain select count(ts) from stats_tbl_part Modified: hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries_with_filters.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries_with_filters.q.out?rev=1657445&r1=1657444&r2=1657445&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries_with_filters.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/spark/metadata_only_queries_with_filters.q.out Thu Feb 5 00:02:54 2015 @@ -166,7 +166,7 @@ POSTHOOK: query: select count(*), count( POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -2322 2322 2322 2322 2322 2322 2322 65791 4294967296 99.9800033569336 0.03 +2322 2322 2322 2322 2322 2322 2322 65791 4294967296 99.98 0.03 PREHOOK: query: explain select count(*), count(1), sum(1), sum(2), count(s), count(bo), count(bin), count(si), max(i), min(b), max(f), min(d) from stats_tbl_part where dt > 2010 PREHOOK: type: QUERY @@ -191,7 +191,7 @@ POSTHOOK: query: select count(*), count( POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -2219 2219 2219 4438 2219 2219 2219 2219 65791 4294967296 99.95999908447266 0.04 +2219 2219 2219 4438 2219 2219 2219 2219 65791 4294967296 99.96 0.04 PREHOOK: query: select count(*) from stats_tbl_part PREHOOK: type: QUERY PREHOOK: Input: default@stats_tbl_part Modified: hive/trunk/ql/src/test/results/clientpositive/tez/metadata_only_queries.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/tez/metadata_only_queries.q.out?rev=1657445&r1=1657444&r2=1657445&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/tez/metadata_only_queries.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/tez/metadata_only_queries.q.out Thu Feb 5 00:02:54 2015 @@ -350,7 +350,7 @@ POSTHOOK: query: select count(*), sum(1) POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl #### A masked pattern was here #### -9999 9999 1999.8 9999 9999 9999 9999 9999 +9999 9999 1999.8000000000002 9999 9999 9999 9999 9999 PREHOOK: query: explain select min(i), max(i), min(b), max(b), min(f), max(f), min(d), max(d) from stats_tbl PREHOOK: type: QUERY @@ -375,7 +375,7 @@ POSTHOOK: query: select min(i), max(i), POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl #### A masked pattern was here #### -65536 65791 4294967296 4294967551 0.009999999776482582 99.9800033569336 0.01 50.0 +65536 65791 4294967296 4294967551 0.01 99.98 0.01 50.0 PREHOOK: query: explain select count(*), sum(1), sum(0.2), count(1), count(s), count(bo), count(bin), count(si) from stats_tbl_part PREHOOK: type: QUERY @@ -400,7 +400,7 @@ POSTHOOK: query: select count(*), sum(1) POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -9489 9489 1897.8 9489 9489 9489 9489 9489 +9489 9489 1897.8000000000002 9489 9489 9489 9489 9489 PREHOOK: query: explain select min(i), max(i), min(b), max(b), min(f), max(f), min(d), max(d) from stats_tbl_part PREHOOK: type: QUERY @@ -425,7 +425,7 @@ POSTHOOK: query: select min(i), max(i), POSTHOOK: type: QUERY POSTHOOK: Input: default@stats_tbl_part #### A masked pattern was here #### -65536 65791 4294967296 4294967551 0.009999999776482582 99.9800033569336 0.01 50.0 +65536 65791 4294967296 4294967551 0.01 99.98 0.01 50.0 PREHOOK: query: explain select count(ts) from stats_tbl_part PREHOOK: type: QUERY POSTHOOK: query: explain select count(ts) from stats_tbl_part