/** * Below method will be used to get the surrogate key of the based on the row * id passed * * @param index row id * @return surrogate key */ @Override public int getSurrogate(int index) { // if column was explicitly sorted we need to get the rowid based inverted index reverse if (isExplictSorted) { index = invertedIndexReverse[index]; } // below part is to convert the byte array to surrogate value int startOffsetOfData = index * columnValueSize; return CarbonUtil.getSurrogateInternal(data, startOffsetOfData, columnValueSize); }
@Override protected byte[] convertDictionaryValue(int indexColIdx, Object value) { // input value from onPageAdded in load process is byte[] // for dict columns including dictionary and date columns decode value to get the surrogate key int thisKeyIdx = indexCol2MdkIdx.get(indexColumns.get(indexColIdx).getColName()); int surrogateKey = CarbonUtil.getSurrogateInternal((byte[]) value, 0, columnarSplitter.getBlockKeySize()[thisKeyIdx]); // store the dictionary key in bloom return CarbonUtil.getValueAsBytes(DataTypes.INT, surrogateKey); } }
for (int i = 0; i < numOfRows; i++) { int surrogateInternal = CarbonUtil.getSurrogateInternal(data, i * columnValueSize, columnValueSize); if (surrogateInternal == CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY) { vector.putNull(i); for (int i = 0; i < numOfRows; i++) { int surrogateInternal = CarbonUtil.getSurrogateInternal(data, i * columnValueSize, columnValueSize); if (surrogateInternal == CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY) { vector.putNull(i); for (int i = 0; i < numOfRows; i++) { vector.putInt(i, CarbonUtil.getSurrogateInternal(data, i * columnValueSize, columnValueSize));
@Override public void fillVector(int[] invertedIndex, int[] invertedIndexReverse, byte[] data, ColumnVectorInfo vectorInfo) { int columnValueSize = dimensionDataChunkStore.getColumnValueSize(); int rowsNum = dataLength / columnValueSize; CarbonColumnVector vector = vectorInfo.vector; if (!dictionary.isDictionaryUsed()) { vector.setDictionary(dictionary); dictionary.setDictionaryUsed(); } BitSet nullBitset = new BitSet(); CarbonColumnVector dictionaryVector = ColumnarVectorWrapperDirectFactory .getDirectVectorWrapperFactory(vector.getDictionaryVector(), invertedIndex, nullBitset, vectorInfo.deletedRows, false, true); vector = ColumnarVectorWrapperDirectFactory .getDirectVectorWrapperFactory(vector, invertedIndex, nullBitset, vectorInfo.deletedRows, false, false); for (int i = 0; i < rowsNum; i++) { int surrogate = CarbonUtil.getSurrogateInternal(data, i * columnValueSize, columnValueSize); if (surrogate == CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY) { vector.putNull(i); dictionaryVector.putNull(i); } else { dictionaryVector.putInt(i, surrogate); } } if (dictionaryVector instanceof ConvertableVector) { ((ConvertableVector) dictionaryVector).convert(); } }
if (null != localDictionary) { return localDictionary .getDictionaryValue(CarbonUtil.getSurrogateInternal(columnPage.getBytes(rowId), 0, 3)); } else if ((columnType == ColumnType.COMPLEX_PRIMITIVE && isAdaptiveEncoded()) || ( columnType == ColumnType.PLAIN_VALUE && DataTypeUtil.isPrimitiveColumn(srcDataType))) {