private void moveToNextIfNecessary(TsBlock[] inputTsBlocks) {
    // if it is already at the last index, don't need to move
    if (index == inputLocations.size() - 1) {
      return;
    }
    // if inputTsBlocks[tsBlockIndex] is null, means current index's TsBlock has been consumed up
    while (index < inputLocations.size() - 1
        && inputTsBlocks[inputLocations.get(index).getTsBlockIndex()] == null) {
      index++;
    }
  }
these columns' time should never be overlapped.

@param 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
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/NonOverlappedMultiColumnMerger.java