docs: @Override
    public RowBucket accumulate(RowBucket accumulated, Row in)
    {
      List<Row> rows;
  
      if (accumulated == null) {
        // first row, initializing
        rows = new ArrayList<>();
        accumulated = new RowBucket(in.getTimestamp(), rows);
      } else if (accumulated.getNextBucket() != null) {
        accumulated = accumulated.getNextBucket();
      }
  
      if (!accumulated.getDateTime().equals(in.getTimestamp())) {
        // day change detected
        rows = new ArrayList<>();
        rows.add(in);
        RowBucket nextBucket = new RowBucket(in.getTimestamp(), rows);
        accumulated.setNextBucket(nextBucket);
        yield();
      } else {
        // still on the same day
        rows = accumulated.getRows();
        rows.add(in);
      }
  
      return accumulated;
    }