protected static List<List<TTimePartitionSlot>> splitTimePartition(
      List<List<List<TTimePartitionSlot>>> childTimePartitionList) {
    if (childTimePartitionList.isEmpty()) {
      return Collections.emptyList();
    }
    List<List<TTimePartitionSlot>> res = new ArrayList<>(childTimePartitionList.get(0));
    for (int i = 1, size = childTimePartitionList.size(); i < size && !res.isEmpty(); i++) {
      res = combineTwoTimePartitionList(res, childTimePartitionList.get(i));
    }
    return res;
  }
aggregation align by device, and aggregation is `count_if` or `diff`, or aggregation used with
group by parameter (session, variation, count), use the old aggregation logic
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java