blob: aa50e91076cab11d37059315aaa8add05c1389e1 [file] [log] [blame]
/*
* 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;
import java.util.HashMap;
import java.util.Map;
public interface IExtrapolatePartStatus {
/**
* The sequence of colStatNames.
*/
static String[] colStatNames = new String[] { "LONG_LOW_VALUE", "LONG_HIGH_VALUE",
"DOUBLE_LOW_VALUE", "DOUBLE_HIGH_VALUE", "BIG_DECIMAL_LOW_VALUE", "BIG_DECIMAL_HIGH_VALUE",
"NUM_NULLS", "NUM_DISTINCTS", "AVG_COL_LEN", "MAX_COL_LEN", "NUM_TRUES", "NUM_FALSES",
"AVG_NDV_LONG", "AVG_NDV_DOUBLE", "AVG_NDV_DECIMAL", "SUM_NUM_DISTINCTS" };
/**
* The indexes for colstats.
*/
static HashMap<String, Integer[]> indexMaps = new HashMap<String, Integer[]>() {
{
put("bigint", new Integer[] { 0, 1, 6, 7, 12, 15 });
put("int", new Integer[] { 0, 1, 6, 7, 12, 15 });
put("smallint", new Integer[] { 0, 1, 6, 7, 12, 15 });
put("tinyint", new Integer[] { 0, 1, 6, 7, 12, 15 });
put("date", new Integer[] { 0, 1, 6, 7, 12, 15 });
put("timestamp", new Integer[] { 0, 1, 6, 7, 12, 15 });
put("long", new Integer[] { 0, 1, 6, 7, 12, 15 });
put("double", new Integer[] { 2, 3, 6, 7, 13, 15 });
put("float", new Integer[] { 2, 3, 6, 7, 13, 15 });
put("varchar", new Integer[] { 8, 9, 6, 7, 15 });
put("char", new Integer[] { 8, 9, 6, 7, 15 });
put("string", new Integer[] { 8, 9, 6, 7, 15 });
put("boolean", new Integer[] { 10, 11, 6, 15 });
put("binary", new Integer[] { 8, 9, 6, 15 });
put("decimal", new Integer[] { 4, 5, 6, 7, 14, 15 });
put("default", new Integer[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15 });
}
};
/**
* The sequence of colStatTypes.
*/
static enum ColStatType {
Long, Double, Decimal
}
static ColStatType[] colStatTypes = new ColStatType[] { ColStatType.Long, ColStatType.Long,
ColStatType.Double, ColStatType.Double, ColStatType.Decimal, ColStatType.Decimal,
ColStatType.Long, ColStatType.Long, ColStatType.Double, ColStatType.Long, ColStatType.Long,
ColStatType.Long, ColStatType.Double, ColStatType.Double, ColStatType.Double,
ColStatType.Long };
/**
* The sequence of aggregation function on colStats.
*/
static enum AggrType {
Min, Max, Sum, Avg
}
static AggrType[] aggrTypes = new AggrType[] { AggrType.Min, AggrType.Max, AggrType.Min,
AggrType.Max, AggrType.Min, AggrType.Max, AggrType.Sum, AggrType.Max, AggrType.Max,
AggrType.Max, AggrType.Sum, AggrType.Sum, AggrType.Avg, AggrType.Avg, AggrType.Avg,
AggrType.Sum };
public Object extrapolate(Object[] min, Object[] max, int colStatIndex,
Map<String, Integer> indexMap);
}