@Override
    public Projection complement(int fieldsNumber) {
      int[] indexesToExclude = Arrays.copyOf(projection, projection.length);
      Arrays.sort(indexesToExclude);

      return new TopLevelProjection(
          IntStream.range(0, fieldsNumber)
              .filter(i -> Arrays.binarySearch(indexesToExclude, i) < 0)
              .toArray());
    }
Create a {@link Projection} of a field range.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/util/Projection.java