Class NonOverlappedMultiColumnMerger
- java.lang.Object
-
- org.apache.iotdb.db.mpp.execution.operator.process.join.merge.NonOverlappedMultiColumnMerger
-
- All Implemented Interfaces:
ColumnMerger
public class NonOverlappedMultiColumnMerger extends java.lang.Object implements ColumnMerger
has more than one input column, but these columns' time is not overlapped
-
-
Constructor Summary
Constructors Constructor Description NonOverlappedMultiColumnMerger(java.util.List<InputLocation> inputLocations, TimeComparator comparator)these columns' time should never be overlapped
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidmergeColumn(org.apache.iotdb.tsfile.read.common.block.TsBlock[] inputTsBlocks, int[] inputIndex, int[] updatedInputIndex, long currentTime, org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)merge columns belonging to same series into one column, merge just one row whose time is equal to currentTimevoidmergeColumn(org.apache.iotdb.tsfile.read.common.block.TsBlock[] inputTsBlocks, int[] inputIndex, int[] updatedInputIndex, org.apache.iotdb.tsfile.read.common.block.column.TimeColumnBuilder timeBuilder, long currentEndTime, org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)merge columns belonging to same series into one column, merge until each input column's time is larger than currentEndTime
-
-
-
Constructor Detail
-
NonOverlappedMultiColumnMerger
public NonOverlappedMultiColumnMerger(java.util.List<InputLocation> inputLocations, TimeComparator comparator)
these columns' time should never be overlapped- Parameters:
inputLocations- The time order in TsBlock represented by inputLocations should be incremented by timestamp if it is order by time asc, otherwise decreased by timestamp if it is order by time desc
-
-
Method Detail
-
mergeColumn
public void mergeColumn(org.apache.iotdb.tsfile.read.common.block.TsBlock[] inputTsBlocks, int[] inputIndex, int[] updatedInputIndex, org.apache.iotdb.tsfile.read.common.block.column.TimeColumnBuilder timeBuilder, long currentEndTime, org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)Description copied from interface:ColumnMergermerge columns belonging to same series into one column, merge until each input column's time is larger than currentEndTime- Specified by:
mergeColumnin interfaceColumnMerger- Parameters:
inputTsBlocks- all source TsBlocks, some of which will contain source columninputIndex- start index for each source TsBlock and size of it is equal to inputTsBlocks, we should only read from this array and not update it because others will use the start index value in inputIndex arrayupdatedInputIndex- current index for each source TsBlock after mergingtimeBuilder- result time column, which is already generated and used to indicate each row's timestampcurrentEndTime- merge until each input column's time is larger than currentEndTimecolumnBuilder- used to write merged value into
-
mergeColumn
public void mergeColumn(org.apache.iotdb.tsfile.read.common.block.TsBlock[] inputTsBlocks, int[] inputIndex, int[] updatedInputIndex, long currentTime, org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)Description copied from interface:ColumnMergermerge columns belonging to same series into one column, merge just one row whose time is equal to currentTime- Specified by:
mergeColumnin interfaceColumnMerger- Parameters:
inputTsBlocks- all source TsBlocks, some of which will contain source columninputIndex- start index for each source TsBlock and size of it is equal to inputTsBlocks, we should only read from this array and not update it because others will use the start index value in inputIndex arrayupdatedInputIndex- current index for each source TsBlock after mergingcurrentTime- merge just one row whose time is equal to currentTimecolumnBuilder- used to write merged value into
-
-