private ContinuousEnumerationResult doPlanSplits() {
    if (lock.get()) {
      LOG.info("prefix plan splits thread haven't finished.");
      return ContinuousEnumerationResult.EMPTY;
    }
    lock.set(true);
    LOG.info("begin to plan splits current offset {}.", enumeratorPosition.get());
    Optional.ofNullable(scanContext.filters())
        .ifPresent(
            filters ->
                filters.forEach(
                    expression ->
                        LOG.info(
                            "mixed-format source filter expression: {}.", expression.toString())));
    return continuousSplitPlanner.planSplits(enumeratorPosition.get(), scanContext.filters());
  }
snapshotId for the last enumerated snapshot. next incremental enumeration should be based off
this as the starting position.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/read/hybrid/enumerator/MixedFormatSourceEnumerator.java