TIcebergMergeSink.java

/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.doris.thrift;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.16.0)", date = "2026-05-14")
public class TIcebergMergeSink implements org.apache.thrift.TBase<TIcebergMergeSink, TIcebergMergeSink._Fields>, java.io.Serializable, Cloneable, Comparable<TIcebergMergeSink> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TIcebergMergeSink");

  private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField TB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tb_name", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField SCHEMA_JSON_FIELD_DESC = new org.apache.thrift.protocol.TField("schema_json", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField PARTITION_SPECS_JSON_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_specs_json", org.apache.thrift.protocol.TType.MAP, (short)4);
  private static final org.apache.thrift.protocol.TField PARTITION_SPEC_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_spec_id", org.apache.thrift.protocol.TType.I32, (short)5);
  private static final org.apache.thrift.protocol.TField SORT_FIELDS_FIELD_DESC = new org.apache.thrift.protocol.TField("sort_fields", org.apache.thrift.protocol.TType.LIST, (short)6);
  private static final org.apache.thrift.protocol.TField FILE_FORMAT_FIELD_DESC = new org.apache.thrift.protocol.TField("file_format", org.apache.thrift.protocol.TType.I32, (short)7);
  private static final org.apache.thrift.protocol.TField COMPRESSION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("compression_type", org.apache.thrift.protocol.TType.I32, (short)8);
  private static final org.apache.thrift.protocol.TField OUTPUT_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("output_path", org.apache.thrift.protocol.TType.STRING, (short)9);
  private static final org.apache.thrift.protocol.TField ORIGINAL_OUTPUT_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("original_output_path", org.apache.thrift.protocol.TType.STRING, (short)10);
  private static final org.apache.thrift.protocol.TField HADOOP_CONFIG_FIELD_DESC = new org.apache.thrift.protocol.TField("hadoop_config", org.apache.thrift.protocol.TType.MAP, (short)11);
  private static final org.apache.thrift.protocol.TField FILE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("file_type", org.apache.thrift.protocol.TType.I32, (short)12);
  private static final org.apache.thrift.protocol.TField BROKER_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("broker_addresses", org.apache.thrift.protocol.TType.LIST, (short)13);
  private static final org.apache.thrift.protocol.TField DELETE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("delete_type", org.apache.thrift.protocol.TType.I32, (short)20);
  private static final org.apache.thrift.protocol.TField TABLE_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("table_location", org.apache.thrift.protocol.TType.STRING, (short)21);
  private static final org.apache.thrift.protocol.TField PARTITION_SPEC_ID_FOR_DELETE_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_spec_id_for_delete", org.apache.thrift.protocol.TType.I32, (short)22);
  private static final org.apache.thrift.protocol.TField PARTITION_DATA_JSON_FOR_DELETE_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_data_json_for_delete", org.apache.thrift.protocol.TType.STRING, (short)23);
  private static final org.apache.thrift.protocol.TField FORMAT_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("format_version", org.apache.thrift.protocol.TType.I32, (short)24);
  private static final org.apache.thrift.protocol.TField REWRITABLE_DELETE_FILE_SETS_FIELD_DESC = new org.apache.thrift.protocol.TField("rewritable_delete_file_sets", org.apache.thrift.protocol.TType.LIST, (short)25);

  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TIcebergMergeSinkStandardSchemeFactory();
  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TIcebergMergeSinkTupleSchemeFactory();

  public @org.apache.thrift.annotation.Nullable java.lang.String db_name; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String tb_name; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String schema_json; // optional
  public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.Integer,java.lang.String> partition_specs_json; // optional
  public int partition_spec_id; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<TSortField> sort_fields; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TFileFormatType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileFormatType file_format; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TFileCompressType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileCompressType compression_type; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String output_path; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String original_output_path; // optional
  public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> hadoop_config; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TFileType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileType file_type; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TNetworkAddress> broker_addresses; // optional
  /**
   * 
   * @see TFileContent
   */
  public @org.apache.thrift.annotation.Nullable TFileContent delete_type; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String table_location; // optional
  public int partition_spec_id_for_delete; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String partition_data_json_for_delete; // optional
  public int format_version; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<TIcebergRewritableDeleteFileSet> rewritable_delete_file_sets; // optional

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    DB_NAME((short)1, "db_name"),
    TB_NAME((short)2, "tb_name"),
    SCHEMA_JSON((short)3, "schema_json"),
    PARTITION_SPECS_JSON((short)4, "partition_specs_json"),
    PARTITION_SPEC_ID((short)5, "partition_spec_id"),
    SORT_FIELDS((short)6, "sort_fields"),
    /**
     * 
     * @see org.apache.doris.thrift.TFileFormatType
     */
    FILE_FORMAT((short)7, "file_format"),
    /**
     * 
     * @see org.apache.doris.thrift.TFileCompressType
     */
    COMPRESSION_TYPE((short)8, "compression_type"),
    OUTPUT_PATH((short)9, "output_path"),
    ORIGINAL_OUTPUT_PATH((short)10, "original_output_path"),
    HADOOP_CONFIG((short)11, "hadoop_config"),
    /**
     * 
     * @see org.apache.doris.thrift.TFileType
     */
    FILE_TYPE((short)12, "file_type"),
    BROKER_ADDRESSES((short)13, "broker_addresses"),
    /**
     * 
     * @see TFileContent
     */
    DELETE_TYPE((short)20, "delete_type"),
    TABLE_LOCATION((short)21, "table_location"),
    PARTITION_SPEC_ID_FOR_DELETE((short)22, "partition_spec_id_for_delete"),
    PARTITION_DATA_JSON_FOR_DELETE((short)23, "partition_data_json_for_delete"),
    FORMAT_VERSION((short)24, "format_version"),
    REWRITABLE_DELETE_FILE_SETS((short)25, "rewritable_delete_file_sets");

    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

    static {
      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
        byName.put(field.getFieldName(), field);
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // DB_NAME
          return DB_NAME;
        case 2: // TB_NAME
          return TB_NAME;
        case 3: // SCHEMA_JSON
          return SCHEMA_JSON;
        case 4: // PARTITION_SPECS_JSON
          return PARTITION_SPECS_JSON;
        case 5: // PARTITION_SPEC_ID
          return PARTITION_SPEC_ID;
        case 6: // SORT_FIELDS
          return SORT_FIELDS;
        case 7: // FILE_FORMAT
          return FILE_FORMAT;
        case 8: // COMPRESSION_TYPE
          return COMPRESSION_TYPE;
        case 9: // OUTPUT_PATH
          return OUTPUT_PATH;
        case 10: // ORIGINAL_OUTPUT_PATH
          return ORIGINAL_OUTPUT_PATH;
        case 11: // HADOOP_CONFIG
          return HADOOP_CONFIG;
        case 12: // FILE_TYPE
          return FILE_TYPE;
        case 13: // BROKER_ADDRESSES
          return BROKER_ADDRESSES;
        case 20: // DELETE_TYPE
          return DELETE_TYPE;
        case 21: // TABLE_LOCATION
          return TABLE_LOCATION;
        case 22: // PARTITION_SPEC_ID_FOR_DELETE
          return PARTITION_SPEC_ID_FOR_DELETE;
        case 23: // PARTITION_DATA_JSON_FOR_DELETE
          return PARTITION_DATA_JSON_FOR_DELETE;
        case 24: // FORMAT_VERSION
          return FORMAT_VERSION;
        case 25: // REWRITABLE_DELETE_FILE_SETS
          return REWRITABLE_DELETE_FILE_SETS;
        default:
          return null;
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, throwing an exception
     * if it is not found.
     */
    public static _Fields findByThriftIdOrThrow(int fieldId) {
      _Fields fields = findByThriftId(fieldId);
      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
      return fields;
    }

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByName(java.lang.String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final java.lang.String _fieldName;

    _Fields(short thriftId, java.lang.String fieldName) {
      _thriftId = thriftId;
      _fieldName = fieldName;
    }

    public short getThriftFieldId() {
      return _thriftId;
    }

    public java.lang.String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __PARTITION_SPEC_ID_ISSET_ID = 0;
  private static final int __PARTITION_SPEC_ID_FOR_DELETE_ISSET_ID = 1;
  private static final int __FORMAT_VERSION_ISSET_ID = 2;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.DB_NAME,_Fields.TB_NAME,_Fields.SCHEMA_JSON,_Fields.PARTITION_SPECS_JSON,_Fields.PARTITION_SPEC_ID,_Fields.SORT_FIELDS,_Fields.FILE_FORMAT,_Fields.COMPRESSION_TYPE,_Fields.OUTPUT_PATH,_Fields.ORIGINAL_OUTPUT_PATH,_Fields.HADOOP_CONFIG,_Fields.FILE_TYPE,_Fields.BROKER_ADDRESSES,_Fields.DELETE_TYPE,_Fields.TABLE_LOCATION,_Fields.PARTITION_SPEC_ID_FOR_DELETE,_Fields.PARTITION_DATA_JSON_FOR_DELETE,_Fields.FORMAT_VERSION,_Fields.REWRITABLE_DELETE_FILE_SETS};
  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TB_NAME, new org.apache.thrift.meta_data.FieldMetaData("tb_name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SCHEMA_JSON, new org.apache.thrift.meta_data.FieldMetaData("schema_json", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PARTITION_SPECS_JSON, new org.apache.thrift.meta_data.FieldMetaData("partition_specs_json", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32), 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.PARTITION_SPEC_ID, new org.apache.thrift.meta_data.FieldMetaData("partition_spec_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.SORT_FIELDS, new org.apache.thrift.meta_data.FieldMetaData("sort_fields", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSortField.class))));
    tmpMap.put(_Fields.FILE_FORMAT, new org.apache.thrift.meta_data.FieldMetaData("file_format", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TFileFormatType.class)));
    tmpMap.put(_Fields.COMPRESSION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("compression_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TFileCompressType.class)));
    tmpMap.put(_Fields.OUTPUT_PATH, new org.apache.thrift.meta_data.FieldMetaData("output_path", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ORIGINAL_OUTPUT_PATH, new org.apache.thrift.meta_data.FieldMetaData("original_output_path", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.HADOOP_CONFIG, new org.apache.thrift.meta_data.FieldMetaData("hadoop_config", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.FILE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("file_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TFileType.class)));
    tmpMap.put(_Fields.BROKER_ADDRESSES, new org.apache.thrift.meta_data.FieldMetaData("broker_addresses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.doris.thrift.TNetworkAddress.class))));
    tmpMap.put(_Fields.DELETE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("delete_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TFileContent.class)));
    tmpMap.put(_Fields.TABLE_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("table_location", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PARTITION_SPEC_ID_FOR_DELETE, new org.apache.thrift.meta_data.FieldMetaData("partition_spec_id_for_delete", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.PARTITION_DATA_JSON_FOR_DELETE, new org.apache.thrift.meta_data.FieldMetaData("partition_data_json_for_delete", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.FORMAT_VERSION, new org.apache.thrift.meta_data.FieldMetaData("format_version", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.REWRITABLE_DELETE_FILE_SETS, new org.apache.thrift.meta_data.FieldMetaData("rewritable_delete_file_sets", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TIcebergRewritableDeleteFileSet.class))));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TIcebergMergeSink.class, metaDataMap);
  }

  public TIcebergMergeSink() {
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TIcebergMergeSink(TIcebergMergeSink other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetDbName()) {
      this.db_name = other.db_name;
    }
    if (other.isSetTbName()) {
      this.tb_name = other.tb_name;
    }
    if (other.isSetSchemaJson()) {
      this.schema_json = other.schema_json;
    }
    if (other.isSetPartitionSpecsJson()) {
      java.util.Map<java.lang.Integer,java.lang.String> __this__partition_specs_json = new java.util.HashMap<java.lang.Integer,java.lang.String>(other.partition_specs_json);
      this.partition_specs_json = __this__partition_specs_json;
    }
    this.partition_spec_id = other.partition_spec_id;
    if (other.isSetSortFields()) {
      java.util.List<TSortField> __this__sort_fields = new java.util.ArrayList<TSortField>(other.sort_fields.size());
      for (TSortField other_element : other.sort_fields) {
        __this__sort_fields.add(new TSortField(other_element));
      }
      this.sort_fields = __this__sort_fields;
    }
    if (other.isSetFileFormat()) {
      this.file_format = other.file_format;
    }
    if (other.isSetCompressionType()) {
      this.compression_type = other.compression_type;
    }
    if (other.isSetOutputPath()) {
      this.output_path = other.output_path;
    }
    if (other.isSetOriginalOutputPath()) {
      this.original_output_path = other.original_output_path;
    }
    if (other.isSetHadoopConfig()) {
      java.util.Map<java.lang.String,java.lang.String> __this__hadoop_config = new java.util.HashMap<java.lang.String,java.lang.String>(other.hadoop_config);
      this.hadoop_config = __this__hadoop_config;
    }
    if (other.isSetFileType()) {
      this.file_type = other.file_type;
    }
    if (other.isSetBrokerAddresses()) {
      java.util.List<org.apache.doris.thrift.TNetworkAddress> __this__broker_addresses = new java.util.ArrayList<org.apache.doris.thrift.TNetworkAddress>(other.broker_addresses.size());
      for (org.apache.doris.thrift.TNetworkAddress other_element : other.broker_addresses) {
        __this__broker_addresses.add(new org.apache.doris.thrift.TNetworkAddress(other_element));
      }
      this.broker_addresses = __this__broker_addresses;
    }
    if (other.isSetDeleteType()) {
      this.delete_type = other.delete_type;
    }
    if (other.isSetTableLocation()) {
      this.table_location = other.table_location;
    }
    this.partition_spec_id_for_delete = other.partition_spec_id_for_delete;
    if (other.isSetPartitionDataJsonForDelete()) {
      this.partition_data_json_for_delete = other.partition_data_json_for_delete;
    }
    this.format_version = other.format_version;
    if (other.isSetRewritableDeleteFileSets()) {
      java.util.List<TIcebergRewritableDeleteFileSet> __this__rewritable_delete_file_sets = new java.util.ArrayList<TIcebergRewritableDeleteFileSet>(other.rewritable_delete_file_sets.size());
      for (TIcebergRewritableDeleteFileSet other_element : other.rewritable_delete_file_sets) {
        __this__rewritable_delete_file_sets.add(new TIcebergRewritableDeleteFileSet(other_element));
      }
      this.rewritable_delete_file_sets = __this__rewritable_delete_file_sets;
    }
  }

  public TIcebergMergeSink deepCopy() {
    return new TIcebergMergeSink(this);
  }

  @Override
  public void clear() {
    this.db_name = null;
    this.tb_name = null;
    this.schema_json = null;
    this.partition_specs_json = null;
    setPartitionSpecIdIsSet(false);
    this.partition_spec_id = 0;
    this.sort_fields = null;
    this.file_format = null;
    this.compression_type = null;
    this.output_path = null;
    this.original_output_path = null;
    this.hadoop_config = null;
    this.file_type = null;
    this.broker_addresses = null;
    this.delete_type = null;
    this.table_location = null;
    setPartitionSpecIdForDeleteIsSet(false);
    this.partition_spec_id_for_delete = 0;
    this.partition_data_json_for_delete = null;
    setFormatVersionIsSet(false);
    this.format_version = 0;
    this.rewritable_delete_file_sets = null;
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getDbName() {
    return this.db_name;
  }

  public TIcebergMergeSink setDbName(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
    this.db_name = db_name;
    return this;
  }

  public void unsetDbName() {
    this.db_name = null;
  }

  /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
  public boolean isSetDbName() {
    return this.db_name != null;
  }

  public void setDbNameIsSet(boolean value) {
    if (!value) {
      this.db_name = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getTbName() {
    return this.tb_name;
  }

  public TIcebergMergeSink setTbName(@org.apache.thrift.annotation.Nullable java.lang.String tb_name) {
    this.tb_name = tb_name;
    return this;
  }

  public void unsetTbName() {
    this.tb_name = null;
  }

  /** Returns true if field tb_name is set (has been assigned a value) and false otherwise */
  public boolean isSetTbName() {
    return this.tb_name != null;
  }

  public void setTbNameIsSet(boolean value) {
    if (!value) {
      this.tb_name = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getSchemaJson() {
    return this.schema_json;
  }

  public TIcebergMergeSink setSchemaJson(@org.apache.thrift.annotation.Nullable java.lang.String schema_json) {
    this.schema_json = schema_json;
    return this;
  }

  public void unsetSchemaJson() {
    this.schema_json = null;
  }

  /** Returns true if field schema_json is set (has been assigned a value) and false otherwise */
  public boolean isSetSchemaJson() {
    return this.schema_json != null;
  }

  public void setSchemaJsonIsSet(boolean value) {
    if (!value) {
      this.schema_json = null;
    }
  }

  public int getPartitionSpecsJsonSize() {
    return (this.partition_specs_json == null) ? 0 : this.partition_specs_json.size();
  }

  public void putToPartitionSpecsJson(int key, java.lang.String val) {
    if (this.partition_specs_json == null) {
      this.partition_specs_json = new java.util.HashMap<java.lang.Integer,java.lang.String>();
    }
    this.partition_specs_json.put(key, val);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Map<java.lang.Integer,java.lang.String> getPartitionSpecsJson() {
    return this.partition_specs_json;
  }

  public TIcebergMergeSink setPartitionSpecsJson(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.Integer,java.lang.String> partition_specs_json) {
    this.partition_specs_json = partition_specs_json;
    return this;
  }

  public void unsetPartitionSpecsJson() {
    this.partition_specs_json = null;
  }

  /** Returns true if field partition_specs_json is set (has been assigned a value) and false otherwise */
  public boolean isSetPartitionSpecsJson() {
    return this.partition_specs_json != null;
  }

  public void setPartitionSpecsJsonIsSet(boolean value) {
    if (!value) {
      this.partition_specs_json = null;
    }
  }

  public int getPartitionSpecId() {
    return this.partition_spec_id;
  }

  public TIcebergMergeSink setPartitionSpecId(int partition_spec_id) {
    this.partition_spec_id = partition_spec_id;
    setPartitionSpecIdIsSet(true);
    return this;
  }

  public void unsetPartitionSpecId() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __PARTITION_SPEC_ID_ISSET_ID);
  }

  /** Returns true if field partition_spec_id is set (has been assigned a value) and false otherwise */
  public boolean isSetPartitionSpecId() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __PARTITION_SPEC_ID_ISSET_ID);
  }

  public void setPartitionSpecIdIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __PARTITION_SPEC_ID_ISSET_ID, value);
  }

  public int getSortFieldsSize() {
    return (this.sort_fields == null) ? 0 : this.sort_fields.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<TSortField> getSortFieldsIterator() {
    return (this.sort_fields == null) ? null : this.sort_fields.iterator();
  }

  public void addToSortFields(TSortField elem) {
    if (this.sort_fields == null) {
      this.sort_fields = new java.util.ArrayList<TSortField>();
    }
    this.sort_fields.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<TSortField> getSortFields() {
    return this.sort_fields;
  }

  public TIcebergMergeSink setSortFields(@org.apache.thrift.annotation.Nullable java.util.List<TSortField> sort_fields) {
    this.sort_fields = sort_fields;
    return this;
  }

  public void unsetSortFields() {
    this.sort_fields = null;
  }

  /** Returns true if field sort_fields is set (has been assigned a value) and false otherwise */
  public boolean isSetSortFields() {
    return this.sort_fields != null;
  }

  public void setSortFieldsIsSet(boolean value) {
    if (!value) {
      this.sort_fields = null;
    }
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileFormatType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TFileFormatType getFileFormat() {
    return this.file_format;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileFormatType
   */
  public TIcebergMergeSink setFileFormat(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileFormatType file_format) {
    this.file_format = file_format;
    return this;
  }

  public void unsetFileFormat() {
    this.file_format = null;
  }

  /** Returns true if field file_format is set (has been assigned a value) and false otherwise */
  public boolean isSetFileFormat() {
    return this.file_format != null;
  }

  public void setFileFormatIsSet(boolean value) {
    if (!value) {
      this.file_format = null;
    }
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileCompressType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TFileCompressType getCompressionType() {
    return this.compression_type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileCompressType
   */
  public TIcebergMergeSink setCompressionType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileCompressType compression_type) {
    this.compression_type = compression_type;
    return this;
  }

  public void unsetCompressionType() {
    this.compression_type = null;
  }

  /** Returns true if field compression_type is set (has been assigned a value) and false otherwise */
  public boolean isSetCompressionType() {
    return this.compression_type != null;
  }

  public void setCompressionTypeIsSet(boolean value) {
    if (!value) {
      this.compression_type = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getOutputPath() {
    return this.output_path;
  }

  public TIcebergMergeSink setOutputPath(@org.apache.thrift.annotation.Nullable java.lang.String output_path) {
    this.output_path = output_path;
    return this;
  }

  public void unsetOutputPath() {
    this.output_path = null;
  }

  /** Returns true if field output_path is set (has been assigned a value) and false otherwise */
  public boolean isSetOutputPath() {
    return this.output_path != null;
  }

  public void setOutputPathIsSet(boolean value) {
    if (!value) {
      this.output_path = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getOriginalOutputPath() {
    return this.original_output_path;
  }

  public TIcebergMergeSink setOriginalOutputPath(@org.apache.thrift.annotation.Nullable java.lang.String original_output_path) {
    this.original_output_path = original_output_path;
    return this;
  }

  public void unsetOriginalOutputPath() {
    this.original_output_path = null;
  }

  /** Returns true if field original_output_path is set (has been assigned a value) and false otherwise */
  public boolean isSetOriginalOutputPath() {
    return this.original_output_path != null;
  }

  public void setOriginalOutputPathIsSet(boolean value) {
    if (!value) {
      this.original_output_path = null;
    }
  }

  public int getHadoopConfigSize() {
    return (this.hadoop_config == null) ? 0 : this.hadoop_config.size();
  }

  public void putToHadoopConfig(java.lang.String key, java.lang.String val) {
    if (this.hadoop_config == null) {
      this.hadoop_config = new java.util.HashMap<java.lang.String,java.lang.String>();
    }
    this.hadoop_config.put(key, val);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Map<java.lang.String,java.lang.String> getHadoopConfig() {
    return this.hadoop_config;
  }

  public TIcebergMergeSink setHadoopConfig(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> hadoop_config) {
    this.hadoop_config = hadoop_config;
    return this;
  }

  public void unsetHadoopConfig() {
    this.hadoop_config = null;
  }

  /** Returns true if field hadoop_config is set (has been assigned a value) and false otherwise */
  public boolean isSetHadoopConfig() {
    return this.hadoop_config != null;
  }

  public void setHadoopConfigIsSet(boolean value) {
    if (!value) {
      this.hadoop_config = null;
    }
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TFileType getFileType() {
    return this.file_type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileType
   */
  public TIcebergMergeSink setFileType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileType file_type) {
    this.file_type = file_type;
    return this;
  }

  public void unsetFileType() {
    this.file_type = null;
  }

  /** Returns true if field file_type is set (has been assigned a value) and false otherwise */
  public boolean isSetFileType() {
    return this.file_type != null;
  }

  public void setFileTypeIsSet(boolean value) {
    if (!value) {
      this.file_type = null;
    }
  }

  public int getBrokerAddressesSize() {
    return (this.broker_addresses == null) ? 0 : this.broker_addresses.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<org.apache.doris.thrift.TNetworkAddress> getBrokerAddressesIterator() {
    return (this.broker_addresses == null) ? null : this.broker_addresses.iterator();
  }

  public void addToBrokerAddresses(org.apache.doris.thrift.TNetworkAddress elem) {
    if (this.broker_addresses == null) {
      this.broker_addresses = new java.util.ArrayList<org.apache.doris.thrift.TNetworkAddress>();
    }
    this.broker_addresses.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<org.apache.doris.thrift.TNetworkAddress> getBrokerAddresses() {
    return this.broker_addresses;
  }

  public TIcebergMergeSink setBrokerAddresses(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TNetworkAddress> broker_addresses) {
    this.broker_addresses = broker_addresses;
    return this;
  }

  public void unsetBrokerAddresses() {
    this.broker_addresses = null;
  }

  /** Returns true if field broker_addresses is set (has been assigned a value) and false otherwise */
  public boolean isSetBrokerAddresses() {
    return this.broker_addresses != null;
  }

  public void setBrokerAddressesIsSet(boolean value) {
    if (!value) {
      this.broker_addresses = null;
    }
  }

  /**
   * 
   * @see TFileContent
   */
  @org.apache.thrift.annotation.Nullable
  public TFileContent getDeleteType() {
    return this.delete_type;
  }

  /**
   * 
   * @see TFileContent
   */
  public TIcebergMergeSink setDeleteType(@org.apache.thrift.annotation.Nullable TFileContent delete_type) {
    this.delete_type = delete_type;
    return this;
  }

  public void unsetDeleteType() {
    this.delete_type = null;
  }

  /** Returns true if field delete_type is set (has been assigned a value) and false otherwise */
  public boolean isSetDeleteType() {
    return this.delete_type != null;
  }

  public void setDeleteTypeIsSet(boolean value) {
    if (!value) {
      this.delete_type = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getTableLocation() {
    return this.table_location;
  }

  public TIcebergMergeSink setTableLocation(@org.apache.thrift.annotation.Nullable java.lang.String table_location) {
    this.table_location = table_location;
    return this;
  }

  public void unsetTableLocation() {
    this.table_location = null;
  }

  /** Returns true if field table_location is set (has been assigned a value) and false otherwise */
  public boolean isSetTableLocation() {
    return this.table_location != null;
  }

  public void setTableLocationIsSet(boolean value) {
    if (!value) {
      this.table_location = null;
    }
  }

  public int getPartitionSpecIdForDelete() {
    return this.partition_spec_id_for_delete;
  }

  public TIcebergMergeSink setPartitionSpecIdForDelete(int partition_spec_id_for_delete) {
    this.partition_spec_id_for_delete = partition_spec_id_for_delete;
    setPartitionSpecIdForDeleteIsSet(true);
    return this;
  }

  public void unsetPartitionSpecIdForDelete() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __PARTITION_SPEC_ID_FOR_DELETE_ISSET_ID);
  }

  /** Returns true if field partition_spec_id_for_delete is set (has been assigned a value) and false otherwise */
  public boolean isSetPartitionSpecIdForDelete() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __PARTITION_SPEC_ID_FOR_DELETE_ISSET_ID);
  }

  public void setPartitionSpecIdForDeleteIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __PARTITION_SPEC_ID_FOR_DELETE_ISSET_ID, value);
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getPartitionDataJsonForDelete() {
    return this.partition_data_json_for_delete;
  }

  public TIcebergMergeSink setPartitionDataJsonForDelete(@org.apache.thrift.annotation.Nullable java.lang.String partition_data_json_for_delete) {
    this.partition_data_json_for_delete = partition_data_json_for_delete;
    return this;
  }

  public void unsetPartitionDataJsonForDelete() {
    this.partition_data_json_for_delete = null;
  }

  /** Returns true if field partition_data_json_for_delete is set (has been assigned a value) and false otherwise */
  public boolean isSetPartitionDataJsonForDelete() {
    return this.partition_data_json_for_delete != null;
  }

  public void setPartitionDataJsonForDeleteIsSet(boolean value) {
    if (!value) {
      this.partition_data_json_for_delete = null;
    }
  }

  public int getFormatVersion() {
    return this.format_version;
  }

  public TIcebergMergeSink setFormatVersion(int format_version) {
    this.format_version = format_version;
    setFormatVersionIsSet(true);
    return this;
  }

  public void unsetFormatVersion() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __FORMAT_VERSION_ISSET_ID);
  }

  /** Returns true if field format_version is set (has been assigned a value) and false otherwise */
  public boolean isSetFormatVersion() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __FORMAT_VERSION_ISSET_ID);
  }

  public void setFormatVersionIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __FORMAT_VERSION_ISSET_ID, value);
  }

  public int getRewritableDeleteFileSetsSize() {
    return (this.rewritable_delete_file_sets == null) ? 0 : this.rewritable_delete_file_sets.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<TIcebergRewritableDeleteFileSet> getRewritableDeleteFileSetsIterator() {
    return (this.rewritable_delete_file_sets == null) ? null : this.rewritable_delete_file_sets.iterator();
  }

  public void addToRewritableDeleteFileSets(TIcebergRewritableDeleteFileSet elem) {
    if (this.rewritable_delete_file_sets == null) {
      this.rewritable_delete_file_sets = new java.util.ArrayList<TIcebergRewritableDeleteFileSet>();
    }
    this.rewritable_delete_file_sets.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<TIcebergRewritableDeleteFileSet> getRewritableDeleteFileSets() {
    return this.rewritable_delete_file_sets;
  }

  public TIcebergMergeSink setRewritableDeleteFileSets(@org.apache.thrift.annotation.Nullable java.util.List<TIcebergRewritableDeleteFileSet> rewritable_delete_file_sets) {
    this.rewritable_delete_file_sets = rewritable_delete_file_sets;
    return this;
  }

  public void unsetRewritableDeleteFileSets() {
    this.rewritable_delete_file_sets = null;
  }

  /** Returns true if field rewritable_delete_file_sets is set (has been assigned a value) and false otherwise */
  public boolean isSetRewritableDeleteFileSets() {
    return this.rewritable_delete_file_sets != null;
  }

  public void setRewritableDeleteFileSetsIsSet(boolean value) {
    if (!value) {
      this.rewritable_delete_file_sets = null;
    }
  }

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case DB_NAME:
      if (value == null) {
        unsetDbName();
      } else {
        setDbName((java.lang.String)value);
      }
      break;

    case TB_NAME:
      if (value == null) {
        unsetTbName();
      } else {
        setTbName((java.lang.String)value);
      }
      break;

    case SCHEMA_JSON:
      if (value == null) {
        unsetSchemaJson();
      } else {
        setSchemaJson((java.lang.String)value);
      }
      break;

    case PARTITION_SPECS_JSON:
      if (value == null) {
        unsetPartitionSpecsJson();
      } else {
        setPartitionSpecsJson((java.util.Map<java.lang.Integer,java.lang.String>)value);
      }
      break;

    case PARTITION_SPEC_ID:
      if (value == null) {
        unsetPartitionSpecId();
      } else {
        setPartitionSpecId((java.lang.Integer)value);
      }
      break;

    case SORT_FIELDS:
      if (value == null) {
        unsetSortFields();
      } else {
        setSortFields((java.util.List<TSortField>)value);
      }
      break;

    case FILE_FORMAT:
      if (value == null) {
        unsetFileFormat();
      } else {
        setFileFormat((org.apache.doris.thrift.TFileFormatType)value);
      }
      break;

    case COMPRESSION_TYPE:
      if (value == null) {
        unsetCompressionType();
      } else {
        setCompressionType((org.apache.doris.thrift.TFileCompressType)value);
      }
      break;

    case OUTPUT_PATH:
      if (value == null) {
        unsetOutputPath();
      } else {
        setOutputPath((java.lang.String)value);
      }
      break;

    case ORIGINAL_OUTPUT_PATH:
      if (value == null) {
        unsetOriginalOutputPath();
      } else {
        setOriginalOutputPath((java.lang.String)value);
      }
      break;

    case HADOOP_CONFIG:
      if (value == null) {
        unsetHadoopConfig();
      } else {
        setHadoopConfig((java.util.Map<java.lang.String,java.lang.String>)value);
      }
      break;

    case FILE_TYPE:
      if (value == null) {
        unsetFileType();
      } else {
        setFileType((org.apache.doris.thrift.TFileType)value);
      }
      break;

    case BROKER_ADDRESSES:
      if (value == null) {
        unsetBrokerAddresses();
      } else {
        setBrokerAddresses((java.util.List<org.apache.doris.thrift.TNetworkAddress>)value);
      }
      break;

    case DELETE_TYPE:
      if (value == null) {
        unsetDeleteType();
      } else {
        setDeleteType((TFileContent)value);
      }
      break;

    case TABLE_LOCATION:
      if (value == null) {
        unsetTableLocation();
      } else {
        setTableLocation((java.lang.String)value);
      }
      break;

    case PARTITION_SPEC_ID_FOR_DELETE:
      if (value == null) {
        unsetPartitionSpecIdForDelete();
      } else {
        setPartitionSpecIdForDelete((java.lang.Integer)value);
      }
      break;

    case PARTITION_DATA_JSON_FOR_DELETE:
      if (value == null) {
        unsetPartitionDataJsonForDelete();
      } else {
        setPartitionDataJsonForDelete((java.lang.String)value);
      }
      break;

    case FORMAT_VERSION:
      if (value == null) {
        unsetFormatVersion();
      } else {
        setFormatVersion((java.lang.Integer)value);
      }
      break;

    case REWRITABLE_DELETE_FILE_SETS:
      if (value == null) {
        unsetRewritableDeleteFileSets();
      } else {
        setRewritableDeleteFileSets((java.util.List<TIcebergRewritableDeleteFileSet>)value);
      }
      break;

    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.Object getFieldValue(_Fields field) {
    switch (field) {
    case DB_NAME:
      return getDbName();

    case TB_NAME:
      return getTbName();

    case SCHEMA_JSON:
      return getSchemaJson();

    case PARTITION_SPECS_JSON:
      return getPartitionSpecsJson();

    case PARTITION_SPEC_ID:
      return getPartitionSpecId();

    case SORT_FIELDS:
      return getSortFields();

    case FILE_FORMAT:
      return getFileFormat();

    case COMPRESSION_TYPE:
      return getCompressionType();

    case OUTPUT_PATH:
      return getOutputPath();

    case ORIGINAL_OUTPUT_PATH:
      return getOriginalOutputPath();

    case HADOOP_CONFIG:
      return getHadoopConfig();

    case FILE_TYPE:
      return getFileType();

    case BROKER_ADDRESSES:
      return getBrokerAddresses();

    case DELETE_TYPE:
      return getDeleteType();

    case TABLE_LOCATION:
      return getTableLocation();

    case PARTITION_SPEC_ID_FOR_DELETE:
      return getPartitionSpecIdForDelete();

    case PARTITION_DATA_JSON_FOR_DELETE:
      return getPartitionDataJsonForDelete();

    case FORMAT_VERSION:
      return getFormatVersion();

    case REWRITABLE_DELETE_FILE_SETS:
      return getRewritableDeleteFileSets();

    }
    throw new java.lang.IllegalStateException();
  }

  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
  public boolean isSet(_Fields field) {
    if (field == null) {
      throw new java.lang.IllegalArgumentException();
    }

    switch (field) {
    case DB_NAME:
      return isSetDbName();
    case TB_NAME:
      return isSetTbName();
    case SCHEMA_JSON:
      return isSetSchemaJson();
    case PARTITION_SPECS_JSON:
      return isSetPartitionSpecsJson();
    case PARTITION_SPEC_ID:
      return isSetPartitionSpecId();
    case SORT_FIELDS:
      return isSetSortFields();
    case FILE_FORMAT:
      return isSetFileFormat();
    case COMPRESSION_TYPE:
      return isSetCompressionType();
    case OUTPUT_PATH:
      return isSetOutputPath();
    case ORIGINAL_OUTPUT_PATH:
      return isSetOriginalOutputPath();
    case HADOOP_CONFIG:
      return isSetHadoopConfig();
    case FILE_TYPE:
      return isSetFileType();
    case BROKER_ADDRESSES:
      return isSetBrokerAddresses();
    case DELETE_TYPE:
      return isSetDeleteType();
    case TABLE_LOCATION:
      return isSetTableLocation();
    case PARTITION_SPEC_ID_FOR_DELETE:
      return isSetPartitionSpecIdForDelete();
    case PARTITION_DATA_JSON_FOR_DELETE:
      return isSetPartitionDataJsonForDelete();
    case FORMAT_VERSION:
      return isSetFormatVersion();
    case REWRITABLE_DELETE_FILE_SETS:
      return isSetRewritableDeleteFileSets();
    }
    throw new java.lang.IllegalStateException();
  }

  @Override
  public boolean equals(java.lang.Object that) {
    if (that instanceof TIcebergMergeSink)
      return this.equals((TIcebergMergeSink)that);
    return false;
  }

  public boolean equals(TIcebergMergeSink that) {
    if (that == null)
      return false;
    if (this == that)
      return true;

    boolean this_present_db_name = true && this.isSetDbName();
    boolean that_present_db_name = true && that.isSetDbName();
    if (this_present_db_name || that_present_db_name) {
      if (!(this_present_db_name && that_present_db_name))
        return false;
      if (!this.db_name.equals(that.db_name))
        return false;
    }

    boolean this_present_tb_name = true && this.isSetTbName();
    boolean that_present_tb_name = true && that.isSetTbName();
    if (this_present_tb_name || that_present_tb_name) {
      if (!(this_present_tb_name && that_present_tb_name))
        return false;
      if (!this.tb_name.equals(that.tb_name))
        return false;
    }

    boolean this_present_schema_json = true && this.isSetSchemaJson();
    boolean that_present_schema_json = true && that.isSetSchemaJson();
    if (this_present_schema_json || that_present_schema_json) {
      if (!(this_present_schema_json && that_present_schema_json))
        return false;
      if (!this.schema_json.equals(that.schema_json))
        return false;
    }

    boolean this_present_partition_specs_json = true && this.isSetPartitionSpecsJson();
    boolean that_present_partition_specs_json = true && that.isSetPartitionSpecsJson();
    if (this_present_partition_specs_json || that_present_partition_specs_json) {
      if (!(this_present_partition_specs_json && that_present_partition_specs_json))
        return false;
      if (!this.partition_specs_json.equals(that.partition_specs_json))
        return false;
    }

    boolean this_present_partition_spec_id = true && this.isSetPartitionSpecId();
    boolean that_present_partition_spec_id = true && that.isSetPartitionSpecId();
    if (this_present_partition_spec_id || that_present_partition_spec_id) {
      if (!(this_present_partition_spec_id && that_present_partition_spec_id))
        return false;
      if (this.partition_spec_id != that.partition_spec_id)
        return false;
    }

    boolean this_present_sort_fields = true && this.isSetSortFields();
    boolean that_present_sort_fields = true && that.isSetSortFields();
    if (this_present_sort_fields || that_present_sort_fields) {
      if (!(this_present_sort_fields && that_present_sort_fields))
        return false;
      if (!this.sort_fields.equals(that.sort_fields))
        return false;
    }

    boolean this_present_file_format = true && this.isSetFileFormat();
    boolean that_present_file_format = true && that.isSetFileFormat();
    if (this_present_file_format || that_present_file_format) {
      if (!(this_present_file_format && that_present_file_format))
        return false;
      if (!this.file_format.equals(that.file_format))
        return false;
    }

    boolean this_present_compression_type = true && this.isSetCompressionType();
    boolean that_present_compression_type = true && that.isSetCompressionType();
    if (this_present_compression_type || that_present_compression_type) {
      if (!(this_present_compression_type && that_present_compression_type))
        return false;
      if (!this.compression_type.equals(that.compression_type))
        return false;
    }

    boolean this_present_output_path = true && this.isSetOutputPath();
    boolean that_present_output_path = true && that.isSetOutputPath();
    if (this_present_output_path || that_present_output_path) {
      if (!(this_present_output_path && that_present_output_path))
        return false;
      if (!this.output_path.equals(that.output_path))
        return false;
    }

    boolean this_present_original_output_path = true && this.isSetOriginalOutputPath();
    boolean that_present_original_output_path = true && that.isSetOriginalOutputPath();
    if (this_present_original_output_path || that_present_original_output_path) {
      if (!(this_present_original_output_path && that_present_original_output_path))
        return false;
      if (!this.original_output_path.equals(that.original_output_path))
        return false;
    }

    boolean this_present_hadoop_config = true && this.isSetHadoopConfig();
    boolean that_present_hadoop_config = true && that.isSetHadoopConfig();
    if (this_present_hadoop_config || that_present_hadoop_config) {
      if (!(this_present_hadoop_config && that_present_hadoop_config))
        return false;
      if (!this.hadoop_config.equals(that.hadoop_config))
        return false;
    }

    boolean this_present_file_type = true && this.isSetFileType();
    boolean that_present_file_type = true && that.isSetFileType();
    if (this_present_file_type || that_present_file_type) {
      if (!(this_present_file_type && that_present_file_type))
        return false;
      if (!this.file_type.equals(that.file_type))
        return false;
    }

    boolean this_present_broker_addresses = true && this.isSetBrokerAddresses();
    boolean that_present_broker_addresses = true && that.isSetBrokerAddresses();
    if (this_present_broker_addresses || that_present_broker_addresses) {
      if (!(this_present_broker_addresses && that_present_broker_addresses))
        return false;
      if (!this.broker_addresses.equals(that.broker_addresses))
        return false;
    }

    boolean this_present_delete_type = true && this.isSetDeleteType();
    boolean that_present_delete_type = true && that.isSetDeleteType();
    if (this_present_delete_type || that_present_delete_type) {
      if (!(this_present_delete_type && that_present_delete_type))
        return false;
      if (!this.delete_type.equals(that.delete_type))
        return false;
    }

    boolean this_present_table_location = true && this.isSetTableLocation();
    boolean that_present_table_location = true && that.isSetTableLocation();
    if (this_present_table_location || that_present_table_location) {
      if (!(this_present_table_location && that_present_table_location))
        return false;
      if (!this.table_location.equals(that.table_location))
        return false;
    }

    boolean this_present_partition_spec_id_for_delete = true && this.isSetPartitionSpecIdForDelete();
    boolean that_present_partition_spec_id_for_delete = true && that.isSetPartitionSpecIdForDelete();
    if (this_present_partition_spec_id_for_delete || that_present_partition_spec_id_for_delete) {
      if (!(this_present_partition_spec_id_for_delete && that_present_partition_spec_id_for_delete))
        return false;
      if (this.partition_spec_id_for_delete != that.partition_spec_id_for_delete)
        return false;
    }

    boolean this_present_partition_data_json_for_delete = true && this.isSetPartitionDataJsonForDelete();
    boolean that_present_partition_data_json_for_delete = true && that.isSetPartitionDataJsonForDelete();
    if (this_present_partition_data_json_for_delete || that_present_partition_data_json_for_delete) {
      if (!(this_present_partition_data_json_for_delete && that_present_partition_data_json_for_delete))
        return false;
      if (!this.partition_data_json_for_delete.equals(that.partition_data_json_for_delete))
        return false;
    }

    boolean this_present_format_version = true && this.isSetFormatVersion();
    boolean that_present_format_version = true && that.isSetFormatVersion();
    if (this_present_format_version || that_present_format_version) {
      if (!(this_present_format_version && that_present_format_version))
        return false;
      if (this.format_version != that.format_version)
        return false;
    }

    boolean this_present_rewritable_delete_file_sets = true && this.isSetRewritableDeleteFileSets();
    boolean that_present_rewritable_delete_file_sets = true && that.isSetRewritableDeleteFileSets();
    if (this_present_rewritable_delete_file_sets || that_present_rewritable_delete_file_sets) {
      if (!(this_present_rewritable_delete_file_sets && that_present_rewritable_delete_file_sets))
        return false;
      if (!this.rewritable_delete_file_sets.equals(that.rewritable_delete_file_sets))
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int hashCode = 1;

    hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
    if (isSetDbName())
      hashCode = hashCode * 8191 + db_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetTbName()) ? 131071 : 524287);
    if (isSetTbName())
      hashCode = hashCode * 8191 + tb_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetSchemaJson()) ? 131071 : 524287);
    if (isSetSchemaJson())
      hashCode = hashCode * 8191 + schema_json.hashCode();

    hashCode = hashCode * 8191 + ((isSetPartitionSpecsJson()) ? 131071 : 524287);
    if (isSetPartitionSpecsJson())
      hashCode = hashCode * 8191 + partition_specs_json.hashCode();

    hashCode = hashCode * 8191 + ((isSetPartitionSpecId()) ? 131071 : 524287);
    if (isSetPartitionSpecId())
      hashCode = hashCode * 8191 + partition_spec_id;

    hashCode = hashCode * 8191 + ((isSetSortFields()) ? 131071 : 524287);
    if (isSetSortFields())
      hashCode = hashCode * 8191 + sort_fields.hashCode();

    hashCode = hashCode * 8191 + ((isSetFileFormat()) ? 131071 : 524287);
    if (isSetFileFormat())
      hashCode = hashCode * 8191 + file_format.getValue();

    hashCode = hashCode * 8191 + ((isSetCompressionType()) ? 131071 : 524287);
    if (isSetCompressionType())
      hashCode = hashCode * 8191 + compression_type.getValue();

    hashCode = hashCode * 8191 + ((isSetOutputPath()) ? 131071 : 524287);
    if (isSetOutputPath())
      hashCode = hashCode * 8191 + output_path.hashCode();

    hashCode = hashCode * 8191 + ((isSetOriginalOutputPath()) ? 131071 : 524287);
    if (isSetOriginalOutputPath())
      hashCode = hashCode * 8191 + original_output_path.hashCode();

    hashCode = hashCode * 8191 + ((isSetHadoopConfig()) ? 131071 : 524287);
    if (isSetHadoopConfig())
      hashCode = hashCode * 8191 + hadoop_config.hashCode();

    hashCode = hashCode * 8191 + ((isSetFileType()) ? 131071 : 524287);
    if (isSetFileType())
      hashCode = hashCode * 8191 + file_type.getValue();

    hashCode = hashCode * 8191 + ((isSetBrokerAddresses()) ? 131071 : 524287);
    if (isSetBrokerAddresses())
      hashCode = hashCode * 8191 + broker_addresses.hashCode();

    hashCode = hashCode * 8191 + ((isSetDeleteType()) ? 131071 : 524287);
    if (isSetDeleteType())
      hashCode = hashCode * 8191 + delete_type.getValue();

    hashCode = hashCode * 8191 + ((isSetTableLocation()) ? 131071 : 524287);
    if (isSetTableLocation())
      hashCode = hashCode * 8191 + table_location.hashCode();

    hashCode = hashCode * 8191 + ((isSetPartitionSpecIdForDelete()) ? 131071 : 524287);
    if (isSetPartitionSpecIdForDelete())
      hashCode = hashCode * 8191 + partition_spec_id_for_delete;

    hashCode = hashCode * 8191 + ((isSetPartitionDataJsonForDelete()) ? 131071 : 524287);
    if (isSetPartitionDataJsonForDelete())
      hashCode = hashCode * 8191 + partition_data_json_for_delete.hashCode();

    hashCode = hashCode * 8191 + ((isSetFormatVersion()) ? 131071 : 524287);
    if (isSetFormatVersion())
      hashCode = hashCode * 8191 + format_version;

    hashCode = hashCode * 8191 + ((isSetRewritableDeleteFileSets()) ? 131071 : 524287);
    if (isSetRewritableDeleteFileSets())
      hashCode = hashCode * 8191 + rewritable_delete_file_sets.hashCode();

    return hashCode;
  }

  @Override
  public int compareTo(TIcebergMergeSink other) {
    if (!getClass().equals(other.getClass())) {
      return getClass().getName().compareTo(other.getClass().getName());
    }

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDbName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTbName(), other.isSetTbName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTbName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tb_name, other.tb_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSchemaJson(), other.isSetSchemaJson());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSchemaJson()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schema_json, other.schema_json);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionSpecsJson(), other.isSetPartitionSpecsJson());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionSpecsJson()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_specs_json, other.partition_specs_json);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionSpecId(), other.isSetPartitionSpecId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionSpecId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_spec_id, other.partition_spec_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSortFields(), other.isSetSortFields());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSortFields()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sort_fields, other.sort_fields);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetFileFormat(), other.isSetFileFormat());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFileFormat()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.file_format, other.file_format);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCompressionType(), other.isSetCompressionType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCompressionType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.compression_type, other.compression_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetOutputPath(), other.isSetOutputPath());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOutputPath()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.output_path, other.output_path);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetOriginalOutputPath(), other.isSetOriginalOutputPath());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOriginalOutputPath()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.original_output_path, other.original_output_path);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetHadoopConfig(), other.isSetHadoopConfig());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHadoopConfig()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hadoop_config, other.hadoop_config);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetFileType(), other.isSetFileType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFileType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.file_type, other.file_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetBrokerAddresses(), other.isSetBrokerAddresses());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBrokerAddresses()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.broker_addresses, other.broker_addresses);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDeleteType(), other.isSetDeleteType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDeleteType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.delete_type, other.delete_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTableLocation(), other.isSetTableLocation());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTableLocation()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_location, other.table_location);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionSpecIdForDelete(), other.isSetPartitionSpecIdForDelete());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionSpecIdForDelete()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_spec_id_for_delete, other.partition_spec_id_for_delete);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionDataJsonForDelete(), other.isSetPartitionDataJsonForDelete());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionDataJsonForDelete()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_data_json_for_delete, other.partition_data_json_for_delete);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetFormatVersion(), other.isSetFormatVersion());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFormatVersion()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.format_version, other.format_version);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRewritableDeleteFileSets(), other.isSetRewritableDeleteFileSets());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRewritableDeleteFileSets()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rewritable_delete_file_sets, other.rewritable_delete_file_sets);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  @org.apache.thrift.annotation.Nullable
  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
    scheme(iprot).read(iprot, this);
  }

  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
    scheme(oprot).write(oprot, this);
  }

  @Override
  public java.lang.String toString() {
    java.lang.StringBuilder sb = new java.lang.StringBuilder("TIcebergMergeSink(");
    boolean first = true;

    if (isSetDbName()) {
      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
    }
    if (isSetTbName()) {
      if (!first) sb.append(", ");
      sb.append("tb_name:");
      if (this.tb_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tb_name);
      }
      first = false;
    }
    if (isSetSchemaJson()) {
      if (!first) sb.append(", ");
      sb.append("schema_json:");
      if (this.schema_json == null) {
        sb.append("null");
      } else {
        sb.append(this.schema_json);
      }
      first = false;
    }
    if (isSetPartitionSpecsJson()) {
      if (!first) sb.append(", ");
      sb.append("partition_specs_json:");
      if (this.partition_specs_json == null) {
        sb.append("null");
      } else {
        sb.append(this.partition_specs_json);
      }
      first = false;
    }
    if (isSetPartitionSpecId()) {
      if (!first) sb.append(", ");
      sb.append("partition_spec_id:");
      sb.append(this.partition_spec_id);
      first = false;
    }
    if (isSetSortFields()) {
      if (!first) sb.append(", ");
      sb.append("sort_fields:");
      if (this.sort_fields == null) {
        sb.append("null");
      } else {
        sb.append(this.sort_fields);
      }
      first = false;
    }
    if (isSetFileFormat()) {
      if (!first) sb.append(", ");
      sb.append("file_format:");
      if (this.file_format == null) {
        sb.append("null");
      } else {
        sb.append(this.file_format);
      }
      first = false;
    }
    if (isSetCompressionType()) {
      if (!first) sb.append(", ");
      sb.append("compression_type:");
      if (this.compression_type == null) {
        sb.append("null");
      } else {
        sb.append(this.compression_type);
      }
      first = false;
    }
    if (isSetOutputPath()) {
      if (!first) sb.append(", ");
      sb.append("output_path:");
      if (this.output_path == null) {
        sb.append("null");
      } else {
        sb.append(this.output_path);
      }
      first = false;
    }
    if (isSetOriginalOutputPath()) {
      if (!first) sb.append(", ");
      sb.append("original_output_path:");
      if (this.original_output_path == null) {
        sb.append("null");
      } else {
        sb.append(this.original_output_path);
      }
      first = false;
    }
    if (isSetHadoopConfig()) {
      if (!first) sb.append(", ");
      sb.append("hadoop_config:");
      if (this.hadoop_config == null) {
        sb.append("null");
      } else {
        sb.append(this.hadoop_config);
      }
      first = false;
    }
    if (isSetFileType()) {
      if (!first) sb.append(", ");
      sb.append("file_type:");
      if (this.file_type == null) {
        sb.append("null");
      } else {
        sb.append(this.file_type);
      }
      first = false;
    }
    if (isSetBrokerAddresses()) {
      if (!first) sb.append(", ");
      sb.append("broker_addresses:");
      if (this.broker_addresses == null) {
        sb.append("null");
      } else {
        sb.append(this.broker_addresses);
      }
      first = false;
    }
    if (isSetDeleteType()) {
      if (!first) sb.append(", ");
      sb.append("delete_type:");
      if (this.delete_type == null) {
        sb.append("null");
      } else {
        sb.append(this.delete_type);
      }
      first = false;
    }
    if (isSetTableLocation()) {
      if (!first) sb.append(", ");
      sb.append("table_location:");
      if (this.table_location == null) {
        sb.append("null");
      } else {
        sb.append(this.table_location);
      }
      first = false;
    }
    if (isSetPartitionSpecIdForDelete()) {
      if (!first) sb.append(", ");
      sb.append("partition_spec_id_for_delete:");
      sb.append(this.partition_spec_id_for_delete);
      first = false;
    }
    if (isSetPartitionDataJsonForDelete()) {
      if (!first) sb.append(", ");
      sb.append("partition_data_json_for_delete:");
      if (this.partition_data_json_for_delete == null) {
        sb.append("null");
      } else {
        sb.append(this.partition_data_json_for_delete);
      }
      first = false;
    }
    if (isSetFormatVersion()) {
      if (!first) sb.append(", ");
      sb.append("format_version:");
      sb.append(this.format_version);
      first = false;
    }
    if (isSetRewritableDeleteFileSets()) {
      if (!first) sb.append(", ");
      sb.append("rewritable_delete_file_sets:");
      if (this.rewritable_delete_file_sets == null) {
        sb.append("null");
      } else {
        sb.append(this.rewritable_delete_file_sets);
      }
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.thrift.TException {
    // check for required fields
    // check for sub-struct validity
  }

  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
    try {
      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
    try {
      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
      __isset_bitfield = 0;
      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private static class TIcebergMergeSinkStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TIcebergMergeSinkStandardScheme getScheme() {
      return new TIcebergMergeSinkStandardScheme();
    }
  }

  private static class TIcebergMergeSinkStandardScheme extends org.apache.thrift.scheme.StandardScheme<TIcebergMergeSink> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TIcebergMergeSink struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (schemeField.id) {
          case 1: // DB_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.db_name = iprot.readString();
              struct.setDbNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // TB_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.tb_name = iprot.readString();
              struct.setTbNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // SCHEMA_JSON
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.schema_json = iprot.readString();
              struct.setSchemaJsonIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // PARTITION_SPECS_JSON
            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map390 = iprot.readMapBegin();
                struct.partition_specs_json = new java.util.HashMap<java.lang.Integer,java.lang.String>(2*_map390.size);
                int _key391;
                @org.apache.thrift.annotation.Nullable java.lang.String _val392;
                for (int _i393 = 0; _i393 < _map390.size; ++_i393)
                {
                  _key391 = iprot.readI32();
                  _val392 = iprot.readString();
                  struct.partition_specs_json.put(_key391, _val392);
                }
                iprot.readMapEnd();
              }
              struct.setPartitionSpecsJsonIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // PARTITION_SPEC_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.partition_spec_id = iprot.readI32();
              struct.setPartitionSpecIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // SORT_FIELDS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list394 = iprot.readListBegin();
                struct.sort_fields = new java.util.ArrayList<TSortField>(_list394.size);
                @org.apache.thrift.annotation.Nullable TSortField _elem395;
                for (int _i396 = 0; _i396 < _list394.size; ++_i396)
                {
                  _elem395 = new TSortField();
                  _elem395.read(iprot);
                  struct.sort_fields.add(_elem395);
                }
                iprot.readListEnd();
              }
              struct.setSortFieldsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // FILE_FORMAT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.file_format = org.apache.doris.thrift.TFileFormatType.findByValue(iprot.readI32());
              struct.setFileFormatIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // COMPRESSION_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.compression_type = org.apache.doris.thrift.TFileCompressType.findByValue(iprot.readI32());
              struct.setCompressionTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // OUTPUT_PATH
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.output_path = iprot.readString();
              struct.setOutputPathIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // ORIGINAL_OUTPUT_PATH
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.original_output_path = iprot.readString();
              struct.setOriginalOutputPathIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // HADOOP_CONFIG
            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map397 = iprot.readMapBegin();
                struct.hadoop_config = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map397.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key398;
                @org.apache.thrift.annotation.Nullable java.lang.String _val399;
                for (int _i400 = 0; _i400 < _map397.size; ++_i400)
                {
                  _key398 = iprot.readString();
                  _val399 = iprot.readString();
                  struct.hadoop_config.put(_key398, _val399);
                }
                iprot.readMapEnd();
              }
              struct.setHadoopConfigIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // FILE_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.file_type = org.apache.doris.thrift.TFileType.findByValue(iprot.readI32());
              struct.setFileTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // BROKER_ADDRESSES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list401 = iprot.readListBegin();
                struct.broker_addresses = new java.util.ArrayList<org.apache.doris.thrift.TNetworkAddress>(_list401.size);
                @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TNetworkAddress _elem402;
                for (int _i403 = 0; _i403 < _list401.size; ++_i403)
                {
                  _elem402 = new org.apache.doris.thrift.TNetworkAddress();
                  _elem402.read(iprot);
                  struct.broker_addresses.add(_elem402);
                }
                iprot.readListEnd();
              }
              struct.setBrokerAddressesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 20: // DELETE_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.delete_type = org.apache.doris.thrift.TFileContent.findByValue(iprot.readI32());
              struct.setDeleteTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 21: // TABLE_LOCATION
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.table_location = iprot.readString();
              struct.setTableLocationIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 22: // PARTITION_SPEC_ID_FOR_DELETE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.partition_spec_id_for_delete = iprot.readI32();
              struct.setPartitionSpecIdForDeleteIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 23: // PARTITION_DATA_JSON_FOR_DELETE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.partition_data_json_for_delete = iprot.readString();
              struct.setPartitionDataJsonForDeleteIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 24: // FORMAT_VERSION
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.format_version = iprot.readI32();
              struct.setFormatVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 25: // REWRITABLE_DELETE_FILE_SETS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list404 = iprot.readListBegin();
                struct.rewritable_delete_file_sets = new java.util.ArrayList<TIcebergRewritableDeleteFileSet>(_list404.size);
                @org.apache.thrift.annotation.Nullable TIcebergRewritableDeleteFileSet _elem405;
                for (int _i406 = 0; _i406 < _list404.size; ++_i406)
                {
                  _elem405 = new TIcebergRewritableDeleteFileSet();
                  _elem405.read(iprot);
                  struct.rewritable_delete_file_sets.add(_elem405);
                }
                iprot.readListEnd();
              }
              struct.setRewritableDeleteFileSetsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

      // check for required fields of primitive type, which can't be checked in the validate method
      struct.validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot, TIcebergMergeSink struct) throws org.apache.thrift.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.db_name != null) {
        if (struct.isSetDbName()) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.tb_name != null) {
        if (struct.isSetTbName()) {
          oprot.writeFieldBegin(TB_NAME_FIELD_DESC);
          oprot.writeString(struct.tb_name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.schema_json != null) {
        if (struct.isSetSchemaJson()) {
          oprot.writeFieldBegin(SCHEMA_JSON_FIELD_DESC);
          oprot.writeString(struct.schema_json);
          oprot.writeFieldEnd();
        }
      }
      if (struct.partition_specs_json != null) {
        if (struct.isSetPartitionSpecsJson()) {
          oprot.writeFieldBegin(PARTITION_SPECS_JSON_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, struct.partition_specs_json.size()));
            for (java.util.Map.Entry<java.lang.Integer, java.lang.String> _iter407 : struct.partition_specs_json.entrySet())
            {
              oprot.writeI32(_iter407.getKey());
              oprot.writeString(_iter407.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetPartitionSpecId()) {
        oprot.writeFieldBegin(PARTITION_SPEC_ID_FIELD_DESC);
        oprot.writeI32(struct.partition_spec_id);
        oprot.writeFieldEnd();
      }
      if (struct.sort_fields != null) {
        if (struct.isSetSortFields()) {
          oprot.writeFieldBegin(SORT_FIELDS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.sort_fields.size()));
            for (TSortField _iter408 : struct.sort_fields)
            {
              _iter408.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.file_format != null) {
        if (struct.isSetFileFormat()) {
          oprot.writeFieldBegin(FILE_FORMAT_FIELD_DESC);
          oprot.writeI32(struct.file_format.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.compression_type != null) {
        if (struct.isSetCompressionType()) {
          oprot.writeFieldBegin(COMPRESSION_TYPE_FIELD_DESC);
          oprot.writeI32(struct.compression_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.output_path != null) {
        if (struct.isSetOutputPath()) {
          oprot.writeFieldBegin(OUTPUT_PATH_FIELD_DESC);
          oprot.writeString(struct.output_path);
          oprot.writeFieldEnd();
        }
      }
      if (struct.original_output_path != null) {
        if (struct.isSetOriginalOutputPath()) {
          oprot.writeFieldBegin(ORIGINAL_OUTPUT_PATH_FIELD_DESC);
          oprot.writeString(struct.original_output_path);
          oprot.writeFieldEnd();
        }
      }
      if (struct.hadoop_config != null) {
        if (struct.isSetHadoopConfig()) {
          oprot.writeFieldBegin(HADOOP_CONFIG_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.hadoop_config.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter409 : struct.hadoop_config.entrySet())
            {
              oprot.writeString(_iter409.getKey());
              oprot.writeString(_iter409.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.file_type != null) {
        if (struct.isSetFileType()) {
          oprot.writeFieldBegin(FILE_TYPE_FIELD_DESC);
          oprot.writeI32(struct.file_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.broker_addresses != null) {
        if (struct.isSetBrokerAddresses()) {
          oprot.writeFieldBegin(BROKER_ADDRESSES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.broker_addresses.size()));
            for (org.apache.doris.thrift.TNetworkAddress _iter410 : struct.broker_addresses)
            {
              _iter410.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.delete_type != null) {
        if (struct.isSetDeleteType()) {
          oprot.writeFieldBegin(DELETE_TYPE_FIELD_DESC);
          oprot.writeI32(struct.delete_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.table_location != null) {
        if (struct.isSetTableLocation()) {
          oprot.writeFieldBegin(TABLE_LOCATION_FIELD_DESC);
          oprot.writeString(struct.table_location);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetPartitionSpecIdForDelete()) {
        oprot.writeFieldBegin(PARTITION_SPEC_ID_FOR_DELETE_FIELD_DESC);
        oprot.writeI32(struct.partition_spec_id_for_delete);
        oprot.writeFieldEnd();
      }
      if (struct.partition_data_json_for_delete != null) {
        if (struct.isSetPartitionDataJsonForDelete()) {
          oprot.writeFieldBegin(PARTITION_DATA_JSON_FOR_DELETE_FIELD_DESC);
          oprot.writeString(struct.partition_data_json_for_delete);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetFormatVersion()) {
        oprot.writeFieldBegin(FORMAT_VERSION_FIELD_DESC);
        oprot.writeI32(struct.format_version);
        oprot.writeFieldEnd();
      }
      if (struct.rewritable_delete_file_sets != null) {
        if (struct.isSetRewritableDeleteFileSets()) {
          oprot.writeFieldBegin(REWRITABLE_DELETE_FILE_SETS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.rewritable_delete_file_sets.size()));
            for (TIcebergRewritableDeleteFileSet _iter411 : struct.rewritable_delete_file_sets)
            {
              _iter411.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class TIcebergMergeSinkTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TIcebergMergeSinkTupleScheme getScheme() {
      return new TIcebergMergeSinkTupleScheme();
    }
  }

  private static class TIcebergMergeSinkTupleScheme extends org.apache.thrift.scheme.TupleScheme<TIcebergMergeSink> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TIcebergMergeSink struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetDbName()) {
        optionals.set(0);
      }
      if (struct.isSetTbName()) {
        optionals.set(1);
      }
      if (struct.isSetSchemaJson()) {
        optionals.set(2);
      }
      if (struct.isSetPartitionSpecsJson()) {
        optionals.set(3);
      }
      if (struct.isSetPartitionSpecId()) {
        optionals.set(4);
      }
      if (struct.isSetSortFields()) {
        optionals.set(5);
      }
      if (struct.isSetFileFormat()) {
        optionals.set(6);
      }
      if (struct.isSetCompressionType()) {
        optionals.set(7);
      }
      if (struct.isSetOutputPath()) {
        optionals.set(8);
      }
      if (struct.isSetOriginalOutputPath()) {
        optionals.set(9);
      }
      if (struct.isSetHadoopConfig()) {
        optionals.set(10);
      }
      if (struct.isSetFileType()) {
        optionals.set(11);
      }
      if (struct.isSetBrokerAddresses()) {
        optionals.set(12);
      }
      if (struct.isSetDeleteType()) {
        optionals.set(13);
      }
      if (struct.isSetTableLocation()) {
        optionals.set(14);
      }
      if (struct.isSetPartitionSpecIdForDelete()) {
        optionals.set(15);
      }
      if (struct.isSetPartitionDataJsonForDelete()) {
        optionals.set(16);
      }
      if (struct.isSetFormatVersion()) {
        optionals.set(17);
      }
      if (struct.isSetRewritableDeleteFileSets()) {
        optionals.set(18);
      }
      oprot.writeBitSet(optionals, 19);
      if (struct.isSetDbName()) {
        oprot.writeString(struct.db_name);
      }
      if (struct.isSetTbName()) {
        oprot.writeString(struct.tb_name);
      }
      if (struct.isSetSchemaJson()) {
        oprot.writeString(struct.schema_json);
      }
      if (struct.isSetPartitionSpecsJson()) {
        {
          oprot.writeI32(struct.partition_specs_json.size());
          for (java.util.Map.Entry<java.lang.Integer, java.lang.String> _iter412 : struct.partition_specs_json.entrySet())
          {
            oprot.writeI32(_iter412.getKey());
            oprot.writeString(_iter412.getValue());
          }
        }
      }
      if (struct.isSetPartitionSpecId()) {
        oprot.writeI32(struct.partition_spec_id);
      }
      if (struct.isSetSortFields()) {
        {
          oprot.writeI32(struct.sort_fields.size());
          for (TSortField _iter413 : struct.sort_fields)
          {
            _iter413.write(oprot);
          }
        }
      }
      if (struct.isSetFileFormat()) {
        oprot.writeI32(struct.file_format.getValue());
      }
      if (struct.isSetCompressionType()) {
        oprot.writeI32(struct.compression_type.getValue());
      }
      if (struct.isSetOutputPath()) {
        oprot.writeString(struct.output_path);
      }
      if (struct.isSetOriginalOutputPath()) {
        oprot.writeString(struct.original_output_path);
      }
      if (struct.isSetHadoopConfig()) {
        {
          oprot.writeI32(struct.hadoop_config.size());
          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter414 : struct.hadoop_config.entrySet())
          {
            oprot.writeString(_iter414.getKey());
            oprot.writeString(_iter414.getValue());
          }
        }
      }
      if (struct.isSetFileType()) {
        oprot.writeI32(struct.file_type.getValue());
      }
      if (struct.isSetBrokerAddresses()) {
        {
          oprot.writeI32(struct.broker_addresses.size());
          for (org.apache.doris.thrift.TNetworkAddress _iter415 : struct.broker_addresses)
          {
            _iter415.write(oprot);
          }
        }
      }
      if (struct.isSetDeleteType()) {
        oprot.writeI32(struct.delete_type.getValue());
      }
      if (struct.isSetTableLocation()) {
        oprot.writeString(struct.table_location);
      }
      if (struct.isSetPartitionSpecIdForDelete()) {
        oprot.writeI32(struct.partition_spec_id_for_delete);
      }
      if (struct.isSetPartitionDataJsonForDelete()) {
        oprot.writeString(struct.partition_data_json_for_delete);
      }
      if (struct.isSetFormatVersion()) {
        oprot.writeI32(struct.format_version);
      }
      if (struct.isSetRewritableDeleteFileSets()) {
        {
          oprot.writeI32(struct.rewritable_delete_file_sets.size());
          for (TIcebergRewritableDeleteFileSet _iter416 : struct.rewritable_delete_file_sets)
          {
            _iter416.write(oprot);
          }
        }
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TIcebergMergeSink struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(19);
      if (incoming.get(0)) {
        struct.db_name = iprot.readString();
        struct.setDbNameIsSet(true);
      }
      if (incoming.get(1)) {
        struct.tb_name = iprot.readString();
        struct.setTbNameIsSet(true);
      }
      if (incoming.get(2)) {
        struct.schema_json = iprot.readString();
        struct.setSchemaJsonIsSet(true);
      }
      if (incoming.get(3)) {
        {
          org.apache.thrift.protocol.TMap _map417 = iprot.readMapBegin(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING); 
          struct.partition_specs_json = new java.util.HashMap<java.lang.Integer,java.lang.String>(2*_map417.size);
          int _key418;
          @org.apache.thrift.annotation.Nullable java.lang.String _val419;
          for (int _i420 = 0; _i420 < _map417.size; ++_i420)
          {
            _key418 = iprot.readI32();
            _val419 = iprot.readString();
            struct.partition_specs_json.put(_key418, _val419);
          }
        }
        struct.setPartitionSpecsJsonIsSet(true);
      }
      if (incoming.get(4)) {
        struct.partition_spec_id = iprot.readI32();
        struct.setPartitionSpecIdIsSet(true);
      }
      if (incoming.get(5)) {
        {
          org.apache.thrift.protocol.TList _list421 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
          struct.sort_fields = new java.util.ArrayList<TSortField>(_list421.size);
          @org.apache.thrift.annotation.Nullable TSortField _elem422;
          for (int _i423 = 0; _i423 < _list421.size; ++_i423)
          {
            _elem422 = new TSortField();
            _elem422.read(iprot);
            struct.sort_fields.add(_elem422);
          }
        }
        struct.setSortFieldsIsSet(true);
      }
      if (incoming.get(6)) {
        struct.file_format = org.apache.doris.thrift.TFileFormatType.findByValue(iprot.readI32());
        struct.setFileFormatIsSet(true);
      }
      if (incoming.get(7)) {
        struct.compression_type = org.apache.doris.thrift.TFileCompressType.findByValue(iprot.readI32());
        struct.setCompressionTypeIsSet(true);
      }
      if (incoming.get(8)) {
        struct.output_path = iprot.readString();
        struct.setOutputPathIsSet(true);
      }
      if (incoming.get(9)) {
        struct.original_output_path = iprot.readString();
        struct.setOriginalOutputPathIsSet(true);
      }
      if (incoming.get(10)) {
        {
          org.apache.thrift.protocol.TMap _map424 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
          struct.hadoop_config = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map424.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _key425;
          @org.apache.thrift.annotation.Nullable java.lang.String _val426;
          for (int _i427 = 0; _i427 < _map424.size; ++_i427)
          {
            _key425 = iprot.readString();
            _val426 = iprot.readString();
            struct.hadoop_config.put(_key425, _val426);
          }
        }
        struct.setHadoopConfigIsSet(true);
      }
      if (incoming.get(11)) {
        struct.file_type = org.apache.doris.thrift.TFileType.findByValue(iprot.readI32());
        struct.setFileTypeIsSet(true);
      }
      if (incoming.get(12)) {
        {
          org.apache.thrift.protocol.TList _list428 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
          struct.broker_addresses = new java.util.ArrayList<org.apache.doris.thrift.TNetworkAddress>(_list428.size);
          @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TNetworkAddress _elem429;
          for (int _i430 = 0; _i430 < _list428.size; ++_i430)
          {
            _elem429 = new org.apache.doris.thrift.TNetworkAddress();
            _elem429.read(iprot);
            struct.broker_addresses.add(_elem429);
          }
        }
        struct.setBrokerAddressesIsSet(true);
      }
      if (incoming.get(13)) {
        struct.delete_type = org.apache.doris.thrift.TFileContent.findByValue(iprot.readI32());
        struct.setDeleteTypeIsSet(true);
      }
      if (incoming.get(14)) {
        struct.table_location = iprot.readString();
        struct.setTableLocationIsSet(true);
      }
      if (incoming.get(15)) {
        struct.partition_spec_id_for_delete = iprot.readI32();
        struct.setPartitionSpecIdForDeleteIsSet(true);
      }
      if (incoming.get(16)) {
        struct.partition_data_json_for_delete = iprot.readString();
        struct.setPartitionDataJsonForDeleteIsSet(true);
      }
      if (incoming.get(17)) {
        struct.format_version = iprot.readI32();
        struct.setFormatVersionIsSet(true);
      }
      if (incoming.get(18)) {
        {
          org.apache.thrift.protocol.TList _list431 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
          struct.rewritable_delete_file_sets = new java.util.ArrayList<TIcebergRewritableDeleteFileSet>(_list431.size);
          @org.apache.thrift.annotation.Nullable TIcebergRewritableDeleteFileSet _elem432;
          for (int _i433 = 0; _i433 < _list431.size; ++_i433)
          {
            _elem432 = new TIcebergRewritableDeleteFileSet();
            _elem432.read(iprot);
            struct.rewritable_delete_file_sets.add(_elem432);
          }
        }
        struct.setRewritableDeleteFileSetsIsSet(true);
      }
    }
  }

  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
  }
}