/** * This method will return the default cardinality based on dimension type * * @param dimension * @return */ private static int getDimensionDefaultCardinality(CarbonDimension dimension) { int cardinality = 0; if (dimension.hasEncoding(Encoding.DIRECT_DICTIONARY)) { cardinality = Integer.MAX_VALUE; } else if (dimension.hasEncoding(Encoding.DICTIONARY)) { if (null != dimension.getDefaultValue()) { cardinality = CarbonCommonConstants.DICTIONARY_DEFAULT_CARDINALITY + 1; } else { cardinality = CarbonCommonConstants.DICTIONARY_DEFAULT_CARDINALITY; } } else { cardinality = -1; } return cardinality; }
/** * This method will compute the default value for a dimension * * @param dimColumnEvaluatorInfo * @return */ private Object getDimensionDefaultValue(DimColumnResolvedFilterInfo dimColumnEvaluatorInfo) { Object dimensionDefaultValue = null; CarbonDimension dimension = dimColumnEvaluatorInfo.getDimension(); if (dimension.hasEncoding(Encoding.DICTIONARY) && !dimension .hasEncoding(Encoding.DIRECT_DICTIONARY)) { byte[] defaultValue = dimension.getDefaultValue(); if (null != defaultValue) { dimensionDefaultValue = new String(defaultValue, Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET)); } } else { dimensionDefaultValue = RestructureUtil.validateAndGetDefaultValue(dimension); } return dimensionDefaultValue; }
/** * This method will check whether default value is present in the given filter values */ private void ifDefaultValueMatchesFilter() { isDefaultValuePresentInFilter = false; if (!this.isDimensionPresentInCurrentBlock && null != filterRangesValues) { CarbonDimension dimension = this.dimColEvaluatorInfo.getDimension(); byte[] defaultValue = dimension.getDefaultValue(); if (null != defaultValue) { int minCompare = FilterUtil.compareValues(filterRangesValues[0], defaultValue, dimension, true); int maxCompare = FilterUtil.compareValues(filterRangesValues[1], defaultValue, dimension, false); if (((greaterThanExp && maxCompare > 0) || (greaterThanEqualExp && maxCompare >= 0)) && ( (lessThanExp && minCompare > 0) || (lessThanEqualExp && minCompare >= 0))) { isDefaultValuePresentInFilter = true; } } } }
} else { byte[] defaultValue = queryDimensions[i].getDimension().getDefaultValue(); if (null != defaultValue) { updatedColumnCardinality
if (!dimColEvaluatorInfoList.isEmpty() && !isDimensionPresentInCurrentBlock[0]) { CarbonDimension dimension = this.dimColEvaluatorInfoList.get(0).getDimension(); byte[] defaultValue = dimension.getDefaultValue(); if (null != defaultValue) { for (int k = 0; k < filterRangeValues.length; k++) {
if (!dimColEvaluatorInfoList.isEmpty() && !isDimensionPresentInCurrentBlock[0]) { CarbonDimension dimension = this.dimColEvaluatorInfoList.get(0).getDimension(); byte[] defaultValue = dimension.getDefaultValue(); if (null != defaultValue) { for (int k = 0; k < filterRangeValues.length; k++) {
/** * This method will validate and return the default value to be * filled at the time of result preparation * * @param queryDimension * @return */ public static Object validateAndGetDefaultValue(CarbonDimension queryDimension) { byte[] defaultValue = queryDimension.getDefaultValue(); Object defaultValueToBeConsidered = null; if (CarbonUtil.hasEncoding(queryDimension.getEncoder(), Encoding.DICTIONARY)) { // direct dictionary case if (CarbonUtil.hasEncoding(queryDimension.getEncoder(), Encoding.DIRECT_DICTIONARY)) { defaultValueToBeConsidered = getDirectDictionaryDefaultValue(queryDimension.getDataType(), queryDimension.getDefaultValue()); } else { // dictionary case defaultValueToBeConsidered = getDictionaryDefaultValue(defaultValue); } } else { // no dictionary defaultValueToBeConsidered = getNoDictionaryDefaultValue(queryDimension.getDataType(), defaultValue); } return defaultValueToBeConsidered; }
if (!dimColEvaluatorInfoList.isEmpty() && !isDimensionPresentInCurrentBlock[0]) { CarbonDimension dimension = this.dimColEvaluatorInfoList.get(0).getDimension(); byte[] defaultValue = dimension.getDefaultValue(); if (null != defaultValue) { for (int k = 0; k < filterRangeValues.length; k++) {
if (!dimColEvaluatorInfoList.isEmpty() && !isDimensionPresentInCurrentBlock[0]) { CarbonDimension dimension = this.dimColEvaluatorInfoList.get(0).getDimension(); byte[] defaultValue = dimension.getDefaultValue(); if (null != defaultValue) { for (int k = 0; k < filterRangeValues.length; k++) {
ColumnFilterInfo filterValues = dimColumnEvaluatorInfo.getFilterValues(); CarbonDimension dimension = dimColumnEvaluatorInfo.getDimension(); byte[] defaultValue = dimension.getDefaultValue(); if (!dimension.hasEncoding(Encoding.DICTIONARY)) {
if (!dimColumnEvaluatorInfo.isDimensionExistsInCurrentSilce()) { record[dimColumnEvaluatorInfo.getRowIndex()] = dimColumnEvaluatorInfo.getDimension().getDefaultValue();
record[index] = dimColumnEvaluatorInfo.getDimension().getDefaultValue();
.setScale(queryDimension.getDimension().getColumnSchema().getScale()); tableDimension.getColumnSchema() .setDefaultValue(queryDimension.getDimension().getDefaultValue()); currentBlockDimension.setOrdinal(queryDimension.getOrdinal()); presentDimension.add(currentBlockDimension);