private static List<MixedFormatSplit> planFullTable(
      BaseAndChangeTask baseAndChangeTask, AtomicInteger splitCount) {
    Collection<MixedFileScanTask> baseTasks = baseAndChangeTask.allBaseTasks();
    List<MixedFormatSplit> allSplits =
        baseTasks.stream()
            .map(
                mixedFileScanTask ->
                    new SnapshotSplit(
                        Collections.singleton(mixedFileScanTask), splitCount.incrementAndGet()))
            .collect(Collectors.toList());

    Collection<TransactionTask> changeTasks = baseAndChangeTask.transactionTasks();
    List<MixedFormatSplit> changeSplits = planChangeTable(changeTasks, splitCount);
    allSplits.addAll(changeSplits);

    return allSplits;
  }
Plans full table scanning for a {@link KeyedTable} with optional filters and a specified split
count.

@param keyedTable The {@link KeyedTable} to scan.
@param filters Optional list of filters to apply to the scan.
@param splitCount The atomic integer to track the split count.
@return The list of planned {@link MixedFormatSplit} included {@link SnapshotSplit}, {@link
    ChangelogSplit}.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/read/FlinkSplitPlanner.java