docs: @VisibleForTesting
    List<Long> prepareRowBaseTimesRollup() {
      final RollupInterval interval = rollup_query.getRollupInterval();
  
      // standard TSDB table format, i.e. we're using the default table and schema
      if (interval.getUnits() == 'h') {
        return prepareRowBaseTimes();
      } else {
        final List<Long> row_base_times = new ArrayList<Long>(
            (int) ((end_row_time - start_row_time) / interval.getIntervals()));
  
        long ts = RollupUtils.getRollupBasetime(start_row_time, interval);
        while (ts <= end_row_time) {
          row_base_times.add(ts);
          // TODO - possible this could overshoot in some cases. It shouldn't
          // if the rollups are properly configured, but... you know. Check it.
          ts = RollupUtils.getRollupBasetime(ts + 
              (interval.getIntervalSeconds() * interval.getIntervals()), interval);
        }
        return row_base_times;
      }
    }