docs: @VisibleForTesting
    List<Long> prepareRowBaseTimes() {
      final ArrayList<Long> row_base_time_list = new ArrayList<Long>(
          (int) ((end_row_time - start_row_time) / Const.MAX_TIMESPAN));
      // NOTE: inclusive end here
      long ts = (start_row_time - (start_row_time % Const.MAX_TIMESPAN));
      while (ts <= end_row_time) {
        row_base_time_list.add(ts);
        ts += Const.MAX_TIMESPAN;
      }
      return row_base_time_list;
    }