@Override
  public void applyProjection(int[][] projectedFields, DataType producedDataType) {
    projectFields = new int[projectedFields.length];
    for (int i = 0; i < projectedFields.length; i++) {
      Preconditions.checkArgument(
          projectedFields[i].length == 1, "Don't support nested projection now.");
      projectFields[i] = projectedFields[i][0];
    }

    if (mixedFormatDynamicSource instanceof SupportsProjectionPushDown) {
      ((SupportsProjectionPushDown) mixedFormatDynamicSource)
          .applyProjection(projectedFields, producedDataType);
    }
  }
@param tableName tableName
@param mixedFormatDynamicSource underlying source
@param mixedTable mixedTable
@param properties With all mixed-format table properties and sql options
@param tableLoader
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/table/MixedFormatDynamicSource.java