private boolean isCachedTsBlockEnough(int columnIndex, long currentEndRowIndex) {
    // next TsBlock has already been in the cachedTsBlock
    while (nextTsBlockIndex[columnIndex] < cachedTsBlock.size()) {
      TsBlock nextTsBlock = cachedTsBlock.get(nextTsBlockIndex[columnIndex]);
      long startRowIndex = cachedRowIndex.get(nextTsBlockIndex[columnIndex]);
      nextTsBlockIndex[columnIndex]++;
      if (fillArray[columnIndex].prepareForNext(
          startRowIndex,
          currentEndRowIndex,
          getHelperColumn(nextTsBlock),
          nextTsBlock.getColumn(columnIndex))) {
        return true;
      }
    }
    return false;
  }
Judge whether we can use current cached TsBlock to fill Column.

@param columnIndex index for column which need to be filled
@param currentEndRowIndex row index for endTime of column which need to be filled
@return true if current cached TsBlock is enough to fill Column at columnIndex, otherwise
    false.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractLinearFillOperator.java