public Object getValue(TblColRef col) { int index = info.getColumnIndex(col); return values[index]; }
public DictionaryEnumerator(OLAPContext olapContext) { Preconditions.checkArgument(olapContext.allColumns.size() == 1, "The query should only relate to one column"); dictCol = olapContext.allColumns.iterator().next(); Preconditions.checkArgument(ifColumnHaveDictionary(dictCol, olapContext.realization, false), "The column " + dictCol + " should be encoded as dictionary for " + olapContext.realization); dictList = getAllDictionaries(dictCol, olapContext.realization); current = new Object[olapContext.returnTupleInfo.size()]; dictColIdx = olapContext.returnTupleInfo.getColumnIndex(dictCol); reset(); logger.info("Will use DictionaryEnumerator to answer query which is only related to column " + dictCol); }
public IAdvMeasureFiller getAdvancedTupleFiller(FunctionDesc function, TupleInfo returnTupleInfo, Map<TblColRef, Dictionary<String>> dictionaryMap) { final TblColRef extended = getExtendedColumn(function); final int extendedColumnInTupleIdx = returnTupleInfo.hasColumn(extended) ? returnTupleInfo.getColumnIndex(extended) : -1; if (extendedColumnInTupleIdx == -1) { throw new RuntimeException("Extended column is not required in returnTupleInfo"); } return new IAdvMeasureFiller() { private String value; @Override public void reload(Object measureValue) { if (measureValue == null) { value = null; return; } ByteArray byteArray = (ByteArray) measureValue; //the array in ByteArray is guaranteed to be completed owned by the ByteArray value = Bytes.toString(byteArray.array()); } @Override public int getNumOfRows() { return 1; } @Override public void fillTuple(Tuple tuple, int row) { tuple.setDimensionValue(extendedColumnInTupleIdx, value); } }; }
final TblColRef literalCol = getRawColumn(function); final Dictionary<String> rawColDict = dictionaryMap.get(literalCol); final int literalTupleIdx = tupleInfo.hasColumn(literalCol) ? tupleInfo.getColumnIndex(literalCol) : -1;
TblColRef dim = dimColumns.get(index); if (returnTupleInfo.hasColumn(dim)) { temp.add(returnTupleInfo.getColumnIndex(dim));
tupleIdx[i] = tupleInfo.hasColumn(dim) ? tupleInfo.getColumnIndex(dim) : -1; i++; tupleIdx[i] = tupleInfo.hasColumn(col) ? tupleInfo.getColumnIndex(col) : -1;
for (int i = 0; i < deriveInfo.columns.length; i++) { TblColRef col = deriveInfo.columns[i]; derivedTupleIdx[i] = tupleInfo.hasColumn(col) ? tupleInfo.getColumnIndex(col) : -1; needCopyDerived = needCopyDerived || derivedTupleIdx[i] >= 0;
for (int i = 0; i < literalCols.size(); i++) { TblColRef colRef = literalCols.get(i); literalTupleIdx[i] = tupleInfo.hasColumn(colRef) ? tupleInfo.getColumnIndex(colRef) : -1;
public Object getValue(TblColRef col) { int index = info.getColumnIndex(col); return values[index]; }
public Object getValue(TblColRef col) { int index = info.getColumnIndex(col); return values[index]; }
public DictionaryEnumerator(OLAPContext olapContext) { Preconditions.checkArgument(olapContext.allColumns.size() == 1, "The query should only relate to one column"); dictCol = olapContext.allColumns.iterator().next(); Preconditions.checkArgument(ifColumnHaveDictionary(dictCol, olapContext.realization, false), "The column " + dictCol + " should be encoded as dictionary for " + olapContext.realization); dictList = getAllDictionaries(dictCol, olapContext.realization); current = new Object[olapContext.returnTupleInfo.size()]; dictColIdx = olapContext.returnTupleInfo.getColumnIndex(dictCol); reset(); logger.info("Will use DictionaryEnumerator to answer query which is only related to column " + dictCol); }
TblColRef dim = dimColumns.get(index); if (returnTupleInfo.hasColumn(dim)) { temp.add(returnTupleInfo.getColumnIndex(dim));
public IAdvMeasureFiller getAdvancedTupleFiller(FunctionDesc function, TupleInfo returnTupleInfo, Map<TblColRef, Dictionary<String>> dictionaryMap) { final TblColRef extended = getExtendedColumn(function); final int extendedColumnInTupleIdx = returnTupleInfo.hasColumn(extended) ? returnTupleInfo.getColumnIndex(extended) : -1; if (extendedColumnInTupleIdx == -1) { throw new RuntimeException("Extended column is not required in returnTupleInfo"); } return new IAdvMeasureFiller() { private String value; @Override public void reload(Object measureValue) { if (measureValue == null) { value = null; return; } ByteArray byteArray = (ByteArray) measureValue; //the array in ByteArray is guaranteed to be completed owned by the ByteArray value = Bytes.toString(byteArray.array()); } @Override public int getNumOfRows() { return 1; } @Override public void fillTuple(Tuple tuple, int row) { tuple.setDimensionValue(extendedColumnInTupleIdx, value); } }; }
final TblColRef literalCol = getRawColumn(function); final Dictionary<String> rawColDict = dictionaryMap.get(literalCol); final int literalTupleIdx = tupleInfo.hasColumn(literalCol) ? tupleInfo.getColumnIndex(literalCol) : -1;
tupleIdx[i] = tupleInfo.hasColumn(dim) ? tupleInfo.getColumnIndex(dim) : -1; i++; tupleIdx[i] = tupleInfo.hasColumn(col) ? tupleInfo.getColumnIndex(col) : -1;
for (int i = 0; i < deriveInfo.columns.length; i++) { TblColRef col = deriveInfo.columns[i]; derivedTupleIdx[i] = tupleInfo.hasColumn(col) ? tupleInfo.getColumnIndex(col) : -1; needCopyDerived = needCopyDerived || derivedTupleIdx[i] >= 0;
for (int i = 0; i < literalCols.size(); i++) { TblColRef colRef = literalCols.get(i); literalTupleIdx[i] = tupleInfo.hasColumn(colRef) ? tupleInfo.getColumnIndex(colRef) : -1;