/** * Wrapper for actual getDataBasedOnDataTypeForNoDictionaryColumn. * * @param dataInBytes * @param actualDataType * @return */ public static Object getDataBasedOnDataTypeForNoDictionaryColumn(byte[] dataInBytes, DataType actualDataType) { return getDataBasedOnDataTypeForNoDictionaryColumn(dataInBytes, actualDataType, true); }
private boolean isScanRequired(byte[] blkMaxVal, byte[] blkMinVal, byte[][] filterValues, DataType dataType) { boolean isScanRequired = false; Object minValue = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(blkMinVal, dataType); Object maxValue = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(blkMaxVal, dataType); for (int k = 0; k < filterValues.length; k++) { if (ByteUtil.UnsafeComparer.INSTANCE .compareTo(filterValues[k], CarbonCommonConstants.EMPTY_BYTE_ARRAY) == 0) { return true; } // filter value should be in range of max and min value i.e // max>filtervalue>min // so filter-max should be negative Object data = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(filterValues[k], dataType); SerializableComparator comparator = Comparator.getComparator(dataType); int maxCompare = comparator.compare(data, maxValue); int minCompare = comparator.compare(data, minValue); // if any filter value is in range than this block needs to be // scanned if (maxCompare <= 0 && minCompare >= 0) { isScanRequired = true; break; } } return isScanRequired; }
private boolean isScanRequired(byte[] blockMaxValue, byte[][] filterValues, DataType dataType) { boolean isScanRequired = false; Object maxValue = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(blockMaxValue, dataType); for (int k = 0; k < filterValues.length; k++) { if (ByteUtil.UnsafeComparer.INSTANCE .compareTo(filterValues[k], CarbonCommonConstants.EMPTY_BYTE_ARRAY) == 0) { return true; } // filter value should be in range of max and min value i.e // max>filtervalue>min // so filter-max should be negative Object data = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(filterValues[k], dataType); SerializableComparator comparator = Comparator.getComparator(dataType); int maxCompare = comparator.compare(data, maxValue); // if any filter value is in range than this block needs to be // scanned less than equal to max range. if (maxCompare <= 0) { isScanRequired = true; break; } } return isScanRequired; }
private boolean isScanRequired(byte[] blockMinValue, byte[][] filterValues, DataType dataType) { boolean isScanRequired = false; Object minValue = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(blockMinValue, dataType); for (int k = 0; k < filterValues.length; k++) { if (ByteUtil.UnsafeComparer.INSTANCE .compareTo(filterValues[k], CarbonCommonConstants.EMPTY_BYTE_ARRAY) == 0) { return true; } // so filter-min should be positive Object data = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(filterValues[k], dataType); SerializableComparator comparator = Comparator.getComparator(dataType); int minCompare = comparator.compare(data, minValue); // if any filter value is in range than this block needs to be // scanned less than min range. if (minCompare > 0) { isScanRequired = true; break; } } return isScanRequired; }
private boolean isScanRequired(byte[] blockMaxValue, byte[][] filterValues, DataType dataType) { boolean isScanRequired = false; Object maxValue = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(blockMaxValue, dataType); for (int k = 0; k < filterValues.length; k++) { if (ByteUtil.UnsafeComparer.INSTANCE .compareTo(filterValues[k], CarbonCommonConstants.EMPTY_BYTE_ARRAY) == 0) { return true; } // filter value should be in range of max and min value i.e // max>filtervalue>min // so filter-max should be negative Object data = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(filterValues[k], dataType); SerializableComparator comparator = Comparator.getComparator(dataType); int maxCompare = comparator.compare(data, maxValue); // if any filter value is in range than this block needs to be // scanned less than equal to max range. if (maxCompare <= 0) { isScanRequired = true; break; } } return isScanRequired; }
private boolean isScanRequired(byte[] blockMinValue, byte[][] filterValues, DataType dataType) { boolean isScanRequired = false; Object minValue = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(blockMinValue, dataType); for (int k = 0; k < filterValues.length; k++) { if (ByteUtil.UnsafeComparer.INSTANCE .compareTo(filterValues[k], CarbonCommonConstants.EMPTY_BYTE_ARRAY) == 0) { return true; } // filter value should be in range of max and min value i.e // max>filtervalue>min // so filter-max should be negative Object data = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(filterValues[k], dataType); SerializableComparator comparator = Comparator.getComparator(dataType); int minCompare = comparator.compare(data, minValue); // if any filter value is in range than this block needs to be // scanned less than equal to max range. if (minCompare >= 0) { isScanRequired = true; break; } } return isScanRequired; }
.getDataBasedOnDataTypeForNoDictionaryColumn((byte[]) row[i], dims.getDataType());
.hasEncoding(Encoding.DICTIONARY)) { Object value = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(minMaxBytes, dataType); Object data = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(filterValue, dataType); SerializableComparator comparator = Comparator.getComparator(dataType); if (isMin) {
.getDataBasedOnDataTypeForNoDictionaryColumn(noDictionaryKeys[i], noDicAndComplexColumns[i].getDataType());
.getDataBasedOnDataTypeForNoDictionaryColumn(noDictionaryKeyByIndex, dims.getDataType());
actualData = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(value, this.dataType);
ByteBuffer.wrap(noDictionaryKeys[noDictionaryColumnIndex++])); } else { row[order[i]] = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn( noDictionaryKeys[noDictionaryColumnIndex++], queryDimensions[i].getDimension().getDataType());
/** * method to add complex column data * @param depth * complexColumnIndex of column * @param dataList * dataList */ public void putComplexData(int depth, List<byte[]> dataList) { assert (depth <= this.complexColumnIndex); int positionNumber = currentRowIdList[depth]; for (byte[] value : dataList) { if (columnPages[depth].getDataType() != DataTypes.BYTE_ARRAY) { if ((value == null) || (value.length == 0)) { columnPages[depth].putNull(positionNumber); columnPages[depth].statsCollector.updateNull(positionNumber); columnPages[depth].nullBitSet.set(positionNumber); } else { columnPages[depth].putData(positionNumber, DataTypeUtil .getDataBasedOnDataTypeForNoDictionaryColumn(value, columnPages[depth].getColumnSpec().getSchemaDataType(), false)); } } else { columnPages[depth].putData(positionNumber, value); } positionNumber++; } currentRowIdList[depth] = positionNumber; }
.getDataBasedOnDataTypeForNoDictionaryColumn(memberBytes, dimColumnEvaluatorInfo.getDimension().getDataType());
memberBytes = null; record[index] = DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(memberBytes, dimColumnEvaluatorInfo.getDimension().getDataType());
DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(b, storageColumns[colCount].getDataType());