TOlapTablePartitionParam.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 TOlapTablePartitionParam implements org.apache.thrift.TBase<TOlapTablePartitionParam, TOlapTablePartitionParam._Fields>, java.io.Serializable, Cloneable, Comparable<TOlapTablePartitionParam> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TOlapTablePartitionParam");

  private static final org.apache.thrift.protocol.TField DB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("db_id", org.apache.thrift.protocol.TType.I64, (short)1);
  private static final org.apache.thrift.protocol.TField TABLE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("table_id", org.apache.thrift.protocol.TType.I64, (short)2);
  private static final org.apache.thrift.protocol.TField VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("version", org.apache.thrift.protocol.TType.I64, (short)3);
  private static final org.apache.thrift.protocol.TField PARTITION_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_column", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField DISTRIBUTED_COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("distributed_columns", org.apache.thrift.protocol.TType.LIST, (short)5);
  private static final org.apache.thrift.protocol.TField PARTITIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("partitions", org.apache.thrift.protocol.TType.LIST, (short)6);
  private static final org.apache.thrift.protocol.TField PARTITION_COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_columns", org.apache.thrift.protocol.TType.LIST, (short)7);
  private static final org.apache.thrift.protocol.TField PARTITION_FUNCTION_EXPRS_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_function_exprs", org.apache.thrift.protocol.TType.LIST, (short)8);
  private static final org.apache.thrift.protocol.TField ENABLE_AUTOMATIC_PARTITION_FIELD_DESC = new org.apache.thrift.protocol.TField("enable_automatic_partition", org.apache.thrift.protocol.TType.BOOL, (short)9);
  private static final org.apache.thrift.protocol.TField PARTITION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_type", org.apache.thrift.protocol.TType.I32, (short)10);
  private static final org.apache.thrift.protocol.TField ENABLE_AUTO_DETECT_OVERWRITE_FIELD_DESC = new org.apache.thrift.protocol.TField("enable_auto_detect_overwrite", org.apache.thrift.protocol.TType.BOOL, (short)11);
  private static final org.apache.thrift.protocol.TField OVERWRITE_GROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("overwrite_group_id", org.apache.thrift.protocol.TType.I64, (short)12);
  private static final org.apache.thrift.protocol.TField PARTITIONS_IS_FAKE_FIELD_DESC = new org.apache.thrift.protocol.TField("partitions_is_fake", org.apache.thrift.protocol.TType.BOOL, (short)13);

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

  public long db_id; // required
  public long table_id; // required
  public long version; // required
  public @org.apache.thrift.annotation.Nullable java.lang.String partition_column; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> distributed_columns; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<TOlapTablePartition> partitions; // required
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partition_columns; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TExpr> partition_function_exprs; // optional
  public boolean enable_automatic_partition; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TPartitionType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TPartitionType partition_type; // optional
  public boolean enable_auto_detect_overwrite; // optional
  public long overwrite_group_id; // optional
  public boolean partitions_is_fake; // 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_ID((short)1, "db_id"),
    TABLE_ID((short)2, "table_id"),
    VERSION((short)3, "version"),
    PARTITION_COLUMN((short)4, "partition_column"),
    DISTRIBUTED_COLUMNS((short)5, "distributed_columns"),
    PARTITIONS((short)6, "partitions"),
    PARTITION_COLUMNS((short)7, "partition_columns"),
    PARTITION_FUNCTION_EXPRS((short)8, "partition_function_exprs"),
    ENABLE_AUTOMATIC_PARTITION((short)9, "enable_automatic_partition"),
    /**
     * 
     * @see org.apache.doris.thrift.TPartitionType
     */
    PARTITION_TYPE((short)10, "partition_type"),
    ENABLE_AUTO_DETECT_OVERWRITE((short)11, "enable_auto_detect_overwrite"),
    OVERWRITE_GROUP_ID((short)12, "overwrite_group_id"),
    PARTITIONS_IS_FAKE((short)13, "partitions_is_fake");

    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_ID
          return DB_ID;
        case 2: // TABLE_ID
          return TABLE_ID;
        case 3: // VERSION
          return VERSION;
        case 4: // PARTITION_COLUMN
          return PARTITION_COLUMN;
        case 5: // DISTRIBUTED_COLUMNS
          return DISTRIBUTED_COLUMNS;
        case 6: // PARTITIONS
          return PARTITIONS;
        case 7: // PARTITION_COLUMNS
          return PARTITION_COLUMNS;
        case 8: // PARTITION_FUNCTION_EXPRS
          return PARTITION_FUNCTION_EXPRS;
        case 9: // ENABLE_AUTOMATIC_PARTITION
          return ENABLE_AUTOMATIC_PARTITION;
        case 10: // PARTITION_TYPE
          return PARTITION_TYPE;
        case 11: // ENABLE_AUTO_DETECT_OVERWRITE
          return ENABLE_AUTO_DETECT_OVERWRITE;
        case 12: // OVERWRITE_GROUP_ID
          return OVERWRITE_GROUP_ID;
        case 13: // PARTITIONS_IS_FAKE
          return PARTITIONS_IS_FAKE;
        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 __DB_ID_ISSET_ID = 0;
  private static final int __TABLE_ID_ISSET_ID = 1;
  private static final int __VERSION_ISSET_ID = 2;
  private static final int __ENABLE_AUTOMATIC_PARTITION_ISSET_ID = 3;
  private static final int __ENABLE_AUTO_DETECT_OVERWRITE_ISSET_ID = 4;
  private static final int __OVERWRITE_GROUP_ID_ISSET_ID = 5;
  private static final int __PARTITIONS_IS_FAKE_ISSET_ID = 6;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.PARTITION_COLUMN,_Fields.DISTRIBUTED_COLUMNS,_Fields.PARTITION_COLUMNS,_Fields.PARTITION_FUNCTION_EXPRS,_Fields.ENABLE_AUTOMATIC_PARTITION,_Fields.PARTITION_TYPE,_Fields.ENABLE_AUTO_DETECT_OVERWRITE,_Fields.OVERWRITE_GROUP_ID,_Fields.PARTITIONS_IS_FAKE};
  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_ID, new org.apache.thrift.meta_data.FieldMetaData("db_id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.TABLE_ID, new org.apache.thrift.meta_data.FieldMetaData("table_id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.VERSION, new org.apache.thrift.meta_data.FieldMetaData("version", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PARTITION_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("partition_column", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.DISTRIBUTED_COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("distributed_columns", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.PARTITIONS, new org.apache.thrift.meta_data.FieldMetaData("partitions", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        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, TOlapTablePartition.class))));
    tmpMap.put(_Fields.PARTITION_COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("partition_columns", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.PARTITION_FUNCTION_EXPRS, new org.apache.thrift.meta_data.FieldMetaData("partition_function_exprs", 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.TExpr.class))));
    tmpMap.put(_Fields.ENABLE_AUTOMATIC_PARTITION, new org.apache.thrift.meta_data.FieldMetaData("enable_automatic_partition", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.PARTITION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("partition_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TPartitionType.class)));
    tmpMap.put(_Fields.ENABLE_AUTO_DETECT_OVERWRITE, new org.apache.thrift.meta_data.FieldMetaData("enable_auto_detect_overwrite", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.OVERWRITE_GROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("overwrite_group_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.PARTITIONS_IS_FAKE, new org.apache.thrift.meta_data.FieldMetaData("partitions_is_fake", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TOlapTablePartitionParam.class, metaDataMap);
  }

  public TOlapTablePartitionParam() {
    this.partitions_is_fake = false;

  }

  public TOlapTablePartitionParam(
    long db_id,
    long table_id,
    long version,
    java.util.List<TOlapTablePartition> partitions)
  {
    this();
    this.db_id = db_id;
    setDbIdIsSet(true);
    this.table_id = table_id;
    setTableIdIsSet(true);
    this.version = version;
    setVersionIsSet(true);
    this.partitions = partitions;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TOlapTablePartitionParam(TOlapTablePartitionParam other) {
    __isset_bitfield = other.__isset_bitfield;
    this.db_id = other.db_id;
    this.table_id = other.table_id;
    this.version = other.version;
    if (other.isSetPartitionColumn()) {
      this.partition_column = other.partition_column;
    }
    if (other.isSetDistributedColumns()) {
      java.util.List<java.lang.String> __this__distributed_columns = new java.util.ArrayList<java.lang.String>(other.distributed_columns);
      this.distributed_columns = __this__distributed_columns;
    }
    if (other.isSetPartitions()) {
      java.util.List<TOlapTablePartition> __this__partitions = new java.util.ArrayList<TOlapTablePartition>(other.partitions.size());
      for (TOlapTablePartition other_element : other.partitions) {
        __this__partitions.add(new TOlapTablePartition(other_element));
      }
      this.partitions = __this__partitions;
    }
    if (other.isSetPartitionColumns()) {
      java.util.List<java.lang.String> __this__partition_columns = new java.util.ArrayList<java.lang.String>(other.partition_columns);
      this.partition_columns = __this__partition_columns;
    }
    if (other.isSetPartitionFunctionExprs()) {
      java.util.List<org.apache.doris.thrift.TExpr> __this__partition_function_exprs = new java.util.ArrayList<org.apache.doris.thrift.TExpr>(other.partition_function_exprs.size());
      for (org.apache.doris.thrift.TExpr other_element : other.partition_function_exprs) {
        __this__partition_function_exprs.add(new org.apache.doris.thrift.TExpr(other_element));
      }
      this.partition_function_exprs = __this__partition_function_exprs;
    }
    this.enable_automatic_partition = other.enable_automatic_partition;
    if (other.isSetPartitionType()) {
      this.partition_type = other.partition_type;
    }
    this.enable_auto_detect_overwrite = other.enable_auto_detect_overwrite;
    this.overwrite_group_id = other.overwrite_group_id;
    this.partitions_is_fake = other.partitions_is_fake;
  }

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

  @Override
  public void clear() {
    setDbIdIsSet(false);
    this.db_id = 0;
    setTableIdIsSet(false);
    this.table_id = 0;
    setVersionIsSet(false);
    this.version = 0;
    this.partition_column = null;
    this.distributed_columns = null;
    this.partitions = null;
    this.partition_columns = null;
    this.partition_function_exprs = null;
    setEnableAutomaticPartitionIsSet(false);
    this.enable_automatic_partition = false;
    this.partition_type = null;
    setEnableAutoDetectOverwriteIsSet(false);
    this.enable_auto_detect_overwrite = false;
    setOverwriteGroupIdIsSet(false);
    this.overwrite_group_id = 0;
    this.partitions_is_fake = false;

  }

  public long getDbId() {
    return this.db_id;
  }

  public TOlapTablePartitionParam setDbId(long db_id) {
    this.db_id = db_id;
    setDbIdIsSet(true);
    return this;
  }

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

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

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

  public long getTableId() {
    return this.table_id;
  }

  public TOlapTablePartitionParam setTableId(long table_id) {
    this.table_id = table_id;
    setTableIdIsSet(true);
    return this;
  }

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

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

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

  public long getVersion() {
    return this.version;
  }

  public TOlapTablePartitionParam setVersion(long version) {
    this.version = version;
    setVersionIsSet(true);
    return this;
  }

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

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

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

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

  public TOlapTablePartitionParam setPartitionColumn(@org.apache.thrift.annotation.Nullable java.lang.String partition_column) {
    this.partition_column = partition_column;
    return this;
  }

  public void unsetPartitionColumn() {
    this.partition_column = null;
  }

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

  public void setPartitionColumnIsSet(boolean value) {
    if (!value) {
      this.partition_column = null;
    }
  }

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

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getDistributedColumnsIterator() {
    return (this.distributed_columns == null) ? null : this.distributed_columns.iterator();
  }

  public void addToDistributedColumns(java.lang.String elem) {
    if (this.distributed_columns == null) {
      this.distributed_columns = new java.util.ArrayList<java.lang.String>();
    }
    this.distributed_columns.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getDistributedColumns() {
    return this.distributed_columns;
  }

  public TOlapTablePartitionParam setDistributedColumns(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> distributed_columns) {
    this.distributed_columns = distributed_columns;
    return this;
  }

  public void unsetDistributedColumns() {
    this.distributed_columns = null;
  }

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

  public void setDistributedColumnsIsSet(boolean value) {
    if (!value) {
      this.distributed_columns = null;
    }
  }

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

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

  public void addToPartitions(TOlapTablePartition elem) {
    if (this.partitions == null) {
      this.partitions = new java.util.ArrayList<TOlapTablePartition>();
    }
    this.partitions.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<TOlapTablePartition> getPartitions() {
    return this.partitions;
  }

  public TOlapTablePartitionParam setPartitions(@org.apache.thrift.annotation.Nullable java.util.List<TOlapTablePartition> partitions) {
    this.partitions = partitions;
    return this;
  }

  public void unsetPartitions() {
    this.partitions = null;
  }

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

  public void setPartitionsIsSet(boolean value) {
    if (!value) {
      this.partitions = null;
    }
  }

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

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getPartitionColumnsIterator() {
    return (this.partition_columns == null) ? null : this.partition_columns.iterator();
  }

  public void addToPartitionColumns(java.lang.String elem) {
    if (this.partition_columns == null) {
      this.partition_columns = new java.util.ArrayList<java.lang.String>();
    }
    this.partition_columns.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getPartitionColumns() {
    return this.partition_columns;
  }

  public TOlapTablePartitionParam setPartitionColumns(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partition_columns) {
    this.partition_columns = partition_columns;
    return this;
  }

  public void unsetPartitionColumns() {
    this.partition_columns = null;
  }

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

  public void setPartitionColumnsIsSet(boolean value) {
    if (!value) {
      this.partition_columns = null;
    }
  }

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

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

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

  @org.apache.thrift.annotation.Nullable
  public java.util.List<org.apache.doris.thrift.TExpr> getPartitionFunctionExprs() {
    return this.partition_function_exprs;
  }

  public TOlapTablePartitionParam setPartitionFunctionExprs(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TExpr> partition_function_exprs) {
    this.partition_function_exprs = partition_function_exprs;
    return this;
  }

  public void unsetPartitionFunctionExprs() {
    this.partition_function_exprs = null;
  }

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

  public void setPartitionFunctionExprsIsSet(boolean value) {
    if (!value) {
      this.partition_function_exprs = null;
    }
  }

  public boolean isEnableAutomaticPartition() {
    return this.enable_automatic_partition;
  }

  public TOlapTablePartitionParam setEnableAutomaticPartition(boolean enable_automatic_partition) {
    this.enable_automatic_partition = enable_automatic_partition;
    setEnableAutomaticPartitionIsSet(true);
    return this;
  }

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

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

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

  /**
   * 
   * @see org.apache.doris.thrift.TPartitionType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TPartitionType getPartitionType() {
    return this.partition_type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TPartitionType
   */
  public TOlapTablePartitionParam setPartitionType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TPartitionType partition_type) {
    this.partition_type = partition_type;
    return this;
  }

  public void unsetPartitionType() {
    this.partition_type = null;
  }

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

  public void setPartitionTypeIsSet(boolean value) {
    if (!value) {
      this.partition_type = null;
    }
  }

  public boolean isEnableAutoDetectOverwrite() {
    return this.enable_auto_detect_overwrite;
  }

  public TOlapTablePartitionParam setEnableAutoDetectOverwrite(boolean enable_auto_detect_overwrite) {
    this.enable_auto_detect_overwrite = enable_auto_detect_overwrite;
    setEnableAutoDetectOverwriteIsSet(true);
    return this;
  }

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

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

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

  public long getOverwriteGroupId() {
    return this.overwrite_group_id;
  }

  public TOlapTablePartitionParam setOverwriteGroupId(long overwrite_group_id) {
    this.overwrite_group_id = overwrite_group_id;
    setOverwriteGroupIdIsSet(true);
    return this;
  }

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

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

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

  public boolean isPartitionsIsFake() {
    return this.partitions_is_fake;
  }

  public TOlapTablePartitionParam setPartitionsIsFake(boolean partitions_is_fake) {
    this.partitions_is_fake = partitions_is_fake;
    setPartitionsIsFakeIsSet(true);
    return this;
  }

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

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

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

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case DB_ID:
      if (value == null) {
        unsetDbId();
      } else {
        setDbId((java.lang.Long)value);
      }
      break;

    case TABLE_ID:
      if (value == null) {
        unsetTableId();
      } else {
        setTableId((java.lang.Long)value);
      }
      break;

    case VERSION:
      if (value == null) {
        unsetVersion();
      } else {
        setVersion((java.lang.Long)value);
      }
      break;

    case PARTITION_COLUMN:
      if (value == null) {
        unsetPartitionColumn();
      } else {
        setPartitionColumn((java.lang.String)value);
      }
      break;

    case DISTRIBUTED_COLUMNS:
      if (value == null) {
        unsetDistributedColumns();
      } else {
        setDistributedColumns((java.util.List<java.lang.String>)value);
      }
      break;

    case PARTITIONS:
      if (value == null) {
        unsetPartitions();
      } else {
        setPartitions((java.util.List<TOlapTablePartition>)value);
      }
      break;

    case PARTITION_COLUMNS:
      if (value == null) {
        unsetPartitionColumns();
      } else {
        setPartitionColumns((java.util.List<java.lang.String>)value);
      }
      break;

    case PARTITION_FUNCTION_EXPRS:
      if (value == null) {
        unsetPartitionFunctionExprs();
      } else {
        setPartitionFunctionExprs((java.util.List<org.apache.doris.thrift.TExpr>)value);
      }
      break;

    case ENABLE_AUTOMATIC_PARTITION:
      if (value == null) {
        unsetEnableAutomaticPartition();
      } else {
        setEnableAutomaticPartition((java.lang.Boolean)value);
      }
      break;

    case PARTITION_TYPE:
      if (value == null) {
        unsetPartitionType();
      } else {
        setPartitionType((org.apache.doris.thrift.TPartitionType)value);
      }
      break;

    case ENABLE_AUTO_DETECT_OVERWRITE:
      if (value == null) {
        unsetEnableAutoDetectOverwrite();
      } else {
        setEnableAutoDetectOverwrite((java.lang.Boolean)value);
      }
      break;

    case OVERWRITE_GROUP_ID:
      if (value == null) {
        unsetOverwriteGroupId();
      } else {
        setOverwriteGroupId((java.lang.Long)value);
      }
      break;

    case PARTITIONS_IS_FAKE:
      if (value == null) {
        unsetPartitionsIsFake();
      } else {
        setPartitionsIsFake((java.lang.Boolean)value);
      }
      break;

    }
  }

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

    case TABLE_ID:
      return getTableId();

    case VERSION:
      return getVersion();

    case PARTITION_COLUMN:
      return getPartitionColumn();

    case DISTRIBUTED_COLUMNS:
      return getDistributedColumns();

    case PARTITIONS:
      return getPartitions();

    case PARTITION_COLUMNS:
      return getPartitionColumns();

    case PARTITION_FUNCTION_EXPRS:
      return getPartitionFunctionExprs();

    case ENABLE_AUTOMATIC_PARTITION:
      return isEnableAutomaticPartition();

    case PARTITION_TYPE:
      return getPartitionType();

    case ENABLE_AUTO_DETECT_OVERWRITE:
      return isEnableAutoDetectOverwrite();

    case OVERWRITE_GROUP_ID:
      return getOverwriteGroupId();

    case PARTITIONS_IS_FAKE:
      return isPartitionsIsFake();

    }
    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_ID:
      return isSetDbId();
    case TABLE_ID:
      return isSetTableId();
    case VERSION:
      return isSetVersion();
    case PARTITION_COLUMN:
      return isSetPartitionColumn();
    case DISTRIBUTED_COLUMNS:
      return isSetDistributedColumns();
    case PARTITIONS:
      return isSetPartitions();
    case PARTITION_COLUMNS:
      return isSetPartitionColumns();
    case PARTITION_FUNCTION_EXPRS:
      return isSetPartitionFunctionExprs();
    case ENABLE_AUTOMATIC_PARTITION:
      return isSetEnableAutomaticPartition();
    case PARTITION_TYPE:
      return isSetPartitionType();
    case ENABLE_AUTO_DETECT_OVERWRITE:
      return isSetEnableAutoDetectOverwrite();
    case OVERWRITE_GROUP_ID:
      return isSetOverwriteGroupId();
    case PARTITIONS_IS_FAKE:
      return isSetPartitionsIsFake();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    boolean this_present_db_id = true;
    boolean that_present_db_id = true;
    if (this_present_db_id || that_present_db_id) {
      if (!(this_present_db_id && that_present_db_id))
        return false;
      if (this.db_id != that.db_id)
        return false;
    }

    boolean this_present_table_id = true;
    boolean that_present_table_id = true;
    if (this_present_table_id || that_present_table_id) {
      if (!(this_present_table_id && that_present_table_id))
        return false;
      if (this.table_id != that.table_id)
        return false;
    }

    boolean this_present_version = true;
    boolean that_present_version = true;
    if (this_present_version || that_present_version) {
      if (!(this_present_version && that_present_version))
        return false;
      if (this.version != that.version)
        return false;
    }

    boolean this_present_partition_column = true && this.isSetPartitionColumn();
    boolean that_present_partition_column = true && that.isSetPartitionColumn();
    if (this_present_partition_column || that_present_partition_column) {
      if (!(this_present_partition_column && that_present_partition_column))
        return false;
      if (!this.partition_column.equals(that.partition_column))
        return false;
    }

    boolean this_present_distributed_columns = true && this.isSetDistributedColumns();
    boolean that_present_distributed_columns = true && that.isSetDistributedColumns();
    if (this_present_distributed_columns || that_present_distributed_columns) {
      if (!(this_present_distributed_columns && that_present_distributed_columns))
        return false;
      if (!this.distributed_columns.equals(that.distributed_columns))
        return false;
    }

    boolean this_present_partitions = true && this.isSetPartitions();
    boolean that_present_partitions = true && that.isSetPartitions();
    if (this_present_partitions || that_present_partitions) {
      if (!(this_present_partitions && that_present_partitions))
        return false;
      if (!this.partitions.equals(that.partitions))
        return false;
    }

    boolean this_present_partition_columns = true && this.isSetPartitionColumns();
    boolean that_present_partition_columns = true && that.isSetPartitionColumns();
    if (this_present_partition_columns || that_present_partition_columns) {
      if (!(this_present_partition_columns && that_present_partition_columns))
        return false;
      if (!this.partition_columns.equals(that.partition_columns))
        return false;
    }

    boolean this_present_partition_function_exprs = true && this.isSetPartitionFunctionExprs();
    boolean that_present_partition_function_exprs = true && that.isSetPartitionFunctionExprs();
    if (this_present_partition_function_exprs || that_present_partition_function_exprs) {
      if (!(this_present_partition_function_exprs && that_present_partition_function_exprs))
        return false;
      if (!this.partition_function_exprs.equals(that.partition_function_exprs))
        return false;
    }

    boolean this_present_enable_automatic_partition = true && this.isSetEnableAutomaticPartition();
    boolean that_present_enable_automatic_partition = true && that.isSetEnableAutomaticPartition();
    if (this_present_enable_automatic_partition || that_present_enable_automatic_partition) {
      if (!(this_present_enable_automatic_partition && that_present_enable_automatic_partition))
        return false;
      if (this.enable_automatic_partition != that.enable_automatic_partition)
        return false;
    }

    boolean this_present_partition_type = true && this.isSetPartitionType();
    boolean that_present_partition_type = true && that.isSetPartitionType();
    if (this_present_partition_type || that_present_partition_type) {
      if (!(this_present_partition_type && that_present_partition_type))
        return false;
      if (!this.partition_type.equals(that.partition_type))
        return false;
    }

    boolean this_present_enable_auto_detect_overwrite = true && this.isSetEnableAutoDetectOverwrite();
    boolean that_present_enable_auto_detect_overwrite = true && that.isSetEnableAutoDetectOverwrite();
    if (this_present_enable_auto_detect_overwrite || that_present_enable_auto_detect_overwrite) {
      if (!(this_present_enable_auto_detect_overwrite && that_present_enable_auto_detect_overwrite))
        return false;
      if (this.enable_auto_detect_overwrite != that.enable_auto_detect_overwrite)
        return false;
    }

    boolean this_present_overwrite_group_id = true && this.isSetOverwriteGroupId();
    boolean that_present_overwrite_group_id = true && that.isSetOverwriteGroupId();
    if (this_present_overwrite_group_id || that_present_overwrite_group_id) {
      if (!(this_present_overwrite_group_id && that_present_overwrite_group_id))
        return false;
      if (this.overwrite_group_id != that.overwrite_group_id)
        return false;
    }

    boolean this_present_partitions_is_fake = true && this.isSetPartitionsIsFake();
    boolean that_present_partitions_is_fake = true && that.isSetPartitionsIsFake();
    if (this_present_partitions_is_fake || that_present_partitions_is_fake) {
      if (!(this_present_partitions_is_fake && that_present_partitions_is_fake))
        return false;
      if (this.partitions_is_fake != that.partitions_is_fake)
        return false;
    }

    return true;
  }

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

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(db_id);

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(table_id);

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(version);

    hashCode = hashCode * 8191 + ((isSetPartitionColumn()) ? 131071 : 524287);
    if (isSetPartitionColumn())
      hashCode = hashCode * 8191 + partition_column.hashCode();

    hashCode = hashCode * 8191 + ((isSetDistributedColumns()) ? 131071 : 524287);
    if (isSetDistributedColumns())
      hashCode = hashCode * 8191 + distributed_columns.hashCode();

    hashCode = hashCode * 8191 + ((isSetPartitions()) ? 131071 : 524287);
    if (isSetPartitions())
      hashCode = hashCode * 8191 + partitions.hashCode();

    hashCode = hashCode * 8191 + ((isSetPartitionColumns()) ? 131071 : 524287);
    if (isSetPartitionColumns())
      hashCode = hashCode * 8191 + partition_columns.hashCode();

    hashCode = hashCode * 8191 + ((isSetPartitionFunctionExprs()) ? 131071 : 524287);
    if (isSetPartitionFunctionExprs())
      hashCode = hashCode * 8191 + partition_function_exprs.hashCode();

    hashCode = hashCode * 8191 + ((isSetEnableAutomaticPartition()) ? 131071 : 524287);
    if (isSetEnableAutomaticPartition())
      hashCode = hashCode * 8191 + ((enable_automatic_partition) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetPartitionType()) ? 131071 : 524287);
    if (isSetPartitionType())
      hashCode = hashCode * 8191 + partition_type.getValue();

    hashCode = hashCode * 8191 + ((isSetEnableAutoDetectOverwrite()) ? 131071 : 524287);
    if (isSetEnableAutoDetectOverwrite())
      hashCode = hashCode * 8191 + ((enable_auto_detect_overwrite) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetOverwriteGroupId()) ? 131071 : 524287);
    if (isSetOverwriteGroupId())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(overwrite_group_id);

    hashCode = hashCode * 8191 + ((isSetPartitionsIsFake()) ? 131071 : 524287);
    if (isSetPartitionsIsFake())
      hashCode = hashCode * 8191 + ((partitions_is_fake) ? 131071 : 524287);

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetDbId(), other.isSetDbId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDbId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_id, other.db_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTableId(), other.isSetTableId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTableId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_id, other.table_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVersion(), other.isSetVersion());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVersion()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.version, other.version);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionColumn(), other.isSetPartitionColumn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionColumn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_column, other.partition_column);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDistributedColumns(), other.isSetDistributedColumns());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDistributedColumns()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.distributed_columns, other.distributed_columns);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitions(), other.isSetPartitions());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitions()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partitions, other.partitions);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionColumns(), other.isSetPartitionColumns());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionColumns()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_columns, other.partition_columns);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionFunctionExprs(), other.isSetPartitionFunctionExprs());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionFunctionExprs()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_function_exprs, other.partition_function_exprs);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEnableAutomaticPartition(), other.isSetEnableAutomaticPartition());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnableAutomaticPartition()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enable_automatic_partition, other.enable_automatic_partition);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionType(), other.isSetPartitionType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_type, other.partition_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEnableAutoDetectOverwrite(), other.isSetEnableAutoDetectOverwrite());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnableAutoDetectOverwrite()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enable_auto_detect_overwrite, other.enable_auto_detect_overwrite);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetOverwriteGroupId(), other.isSetOverwriteGroupId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetOverwriteGroupId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overwrite_group_id, other.overwrite_group_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionsIsFake(), other.isSetPartitionsIsFake());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionsIsFake()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partitions_is_fake, other.partitions_is_fake);
      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("TOlapTablePartitionParam(");
    boolean first = true;

    sb.append("db_id:");
    sb.append(this.db_id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("table_id:");
    sb.append(this.table_id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("version:");
    sb.append(this.version);
    first = false;
    if (isSetPartitionColumn()) {
      if (!first) sb.append(", ");
      sb.append("partition_column:");
      if (this.partition_column == null) {
        sb.append("null");
      } else {
        sb.append(this.partition_column);
      }
      first = false;
    }
    if (isSetDistributedColumns()) {
      if (!first) sb.append(", ");
      sb.append("distributed_columns:");
      if (this.distributed_columns == null) {
        sb.append("null");
      } else {
        sb.append(this.distributed_columns);
      }
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("partitions:");
    if (this.partitions == null) {
      sb.append("null");
    } else {
      sb.append(this.partitions);
    }
    first = false;
    if (isSetPartitionColumns()) {
      if (!first) sb.append(", ");
      sb.append("partition_columns:");
      if (this.partition_columns == null) {
        sb.append("null");
      } else {
        sb.append(this.partition_columns);
      }
      first = false;
    }
    if (isSetPartitionFunctionExprs()) {
      if (!first) sb.append(", ");
      sb.append("partition_function_exprs:");
      if (this.partition_function_exprs == null) {
        sb.append("null");
      } else {
        sb.append(this.partition_function_exprs);
      }
      first = false;
    }
    if (isSetEnableAutomaticPartition()) {
      if (!first) sb.append(", ");
      sb.append("enable_automatic_partition:");
      sb.append(this.enable_automatic_partition);
      first = false;
    }
    if (isSetPartitionType()) {
      if (!first) sb.append(", ");
      sb.append("partition_type:");
      if (this.partition_type == null) {
        sb.append("null");
      } else {
        sb.append(this.partition_type);
      }
      first = false;
    }
    if (isSetEnableAutoDetectOverwrite()) {
      if (!first) sb.append(", ");
      sb.append("enable_auto_detect_overwrite:");
      sb.append(this.enable_auto_detect_overwrite);
      first = false;
    }
    if (isSetOverwriteGroupId()) {
      if (!first) sb.append(", ");
      sb.append("overwrite_group_id:");
      sb.append(this.overwrite_group_id);
      first = false;
    }
    if (isSetPartitionsIsFake()) {
      if (!first) sb.append(", ");
      sb.append("partitions_is_fake:");
      sb.append(this.partitions_is_fake);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.thrift.TException {
    // check for required fields
    // alas, we cannot check 'db_id' because it's a primitive and you chose the non-beans generator.
    // alas, we cannot check 'table_id' because it's a primitive and you chose the non-beans generator.
    // alas, we cannot check 'version' because it's a primitive and you chose the non-beans generator.
    if (partitions == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'partitions' was not present! Struct: " + toString());
    }
    // 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 TOlapTablePartitionParamStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TOlapTablePartitionParamStandardScheme getScheme() {
      return new TOlapTablePartitionParamStandardScheme();
    }
  }

  private static class TOlapTablePartitionParamStandardScheme extends org.apache.thrift.scheme.StandardScheme<TOlapTablePartitionParam> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TOlapTablePartitionParam 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_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.db_id = iprot.readI64();
              struct.setDbIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // TABLE_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.table_id = iprot.readI64();
              struct.setTableIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // VERSION
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.version = iprot.readI64();
              struct.setVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // PARTITION_COLUMN
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.partition_column = iprot.readString();
              struct.setPartitionColumnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // DISTRIBUTED_COLUMNS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list114 = iprot.readListBegin();
                struct.distributed_columns = new java.util.ArrayList<java.lang.String>(_list114.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem115;
                for (int _i116 = 0; _i116 < _list114.size; ++_i116)
                {
                  _elem115 = iprot.readString();
                  struct.distributed_columns.add(_elem115);
                }
                iprot.readListEnd();
              }
              struct.setDistributedColumnsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // PARTITIONS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list117 = iprot.readListBegin();
                struct.partitions = new java.util.ArrayList<TOlapTablePartition>(_list117.size);
                @org.apache.thrift.annotation.Nullable TOlapTablePartition _elem118;
                for (int _i119 = 0; _i119 < _list117.size; ++_i119)
                {
                  _elem118 = new TOlapTablePartition();
                  _elem118.read(iprot);
                  struct.partitions.add(_elem118);
                }
                iprot.readListEnd();
              }
              struct.setPartitionsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // PARTITION_COLUMNS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list120 = iprot.readListBegin();
                struct.partition_columns = new java.util.ArrayList<java.lang.String>(_list120.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem121;
                for (int _i122 = 0; _i122 < _list120.size; ++_i122)
                {
                  _elem121 = iprot.readString();
                  struct.partition_columns.add(_elem121);
                }
                iprot.readListEnd();
              }
              struct.setPartitionColumnsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // PARTITION_FUNCTION_EXPRS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list123 = iprot.readListBegin();
                struct.partition_function_exprs = new java.util.ArrayList<org.apache.doris.thrift.TExpr>(_list123.size);
                @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TExpr _elem124;
                for (int _i125 = 0; _i125 < _list123.size; ++_i125)
                {
                  _elem124 = new org.apache.doris.thrift.TExpr();
                  _elem124.read(iprot);
                  struct.partition_function_exprs.add(_elem124);
                }
                iprot.readListEnd();
              }
              struct.setPartitionFunctionExprsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // ENABLE_AUTOMATIC_PARTITION
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.enable_automatic_partition = iprot.readBool();
              struct.setEnableAutomaticPartitionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // PARTITION_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.partition_type = org.apache.doris.thrift.TPartitionType.findByValue(iprot.readI32());
              struct.setPartitionTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // ENABLE_AUTO_DETECT_OVERWRITE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.enable_auto_detect_overwrite = iprot.readBool();
              struct.setEnableAutoDetectOverwriteIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // OVERWRITE_GROUP_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.overwrite_group_id = iprot.readI64();
              struct.setOverwriteGroupIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // PARTITIONS_IS_FAKE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.partitions_is_fake = iprot.readBool();
              struct.setPartitionsIsFakeIsSet(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
      if (!struct.isSetDbId()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'db_id' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetTableId()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'table_id' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetVersion()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'version' was not found in serialized data! Struct: " + toString());
      }
      struct.validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(DB_ID_FIELD_DESC);
      oprot.writeI64(struct.db_id);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(TABLE_ID_FIELD_DESC);
      oprot.writeI64(struct.table_id);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(VERSION_FIELD_DESC);
      oprot.writeI64(struct.version);
      oprot.writeFieldEnd();
      if (struct.partition_column != null) {
        if (struct.isSetPartitionColumn()) {
          oprot.writeFieldBegin(PARTITION_COLUMN_FIELD_DESC);
          oprot.writeString(struct.partition_column);
          oprot.writeFieldEnd();
        }
      }
      if (struct.distributed_columns != null) {
        if (struct.isSetDistributedColumns()) {
          oprot.writeFieldBegin(DISTRIBUTED_COLUMNS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.distributed_columns.size()));
            for (java.lang.String _iter126 : struct.distributed_columns)
            {
              oprot.writeString(_iter126);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.partitions != null) {
        oprot.writeFieldBegin(PARTITIONS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.partitions.size()));
          for (TOlapTablePartition _iter127 : struct.partitions)
          {
            _iter127.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.partition_columns != null) {
        if (struct.isSetPartitionColumns()) {
          oprot.writeFieldBegin(PARTITION_COLUMNS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.partition_columns.size()));
            for (java.lang.String _iter128 : struct.partition_columns)
            {
              oprot.writeString(_iter128);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.partition_function_exprs != null) {
        if (struct.isSetPartitionFunctionExprs()) {
          oprot.writeFieldBegin(PARTITION_FUNCTION_EXPRS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.partition_function_exprs.size()));
            for (org.apache.doris.thrift.TExpr _iter129 : struct.partition_function_exprs)
            {
              _iter129.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetEnableAutomaticPartition()) {
        oprot.writeFieldBegin(ENABLE_AUTOMATIC_PARTITION_FIELD_DESC);
        oprot.writeBool(struct.enable_automatic_partition);
        oprot.writeFieldEnd();
      }
      if (struct.partition_type != null) {
        if (struct.isSetPartitionType()) {
          oprot.writeFieldBegin(PARTITION_TYPE_FIELD_DESC);
          oprot.writeI32(struct.partition_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetEnableAutoDetectOverwrite()) {
        oprot.writeFieldBegin(ENABLE_AUTO_DETECT_OVERWRITE_FIELD_DESC);
        oprot.writeBool(struct.enable_auto_detect_overwrite);
        oprot.writeFieldEnd();
      }
      if (struct.isSetOverwriteGroupId()) {
        oprot.writeFieldBegin(OVERWRITE_GROUP_ID_FIELD_DESC);
        oprot.writeI64(struct.overwrite_group_id);
        oprot.writeFieldEnd();
      }
      if (struct.isSetPartitionsIsFake()) {
        oprot.writeFieldBegin(PARTITIONS_IS_FAKE_FIELD_DESC);
        oprot.writeBool(struct.partitions_is_fake);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TOlapTablePartitionParamTupleScheme extends org.apache.thrift.scheme.TupleScheme<TOlapTablePartitionParam> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TOlapTablePartitionParam struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      oprot.writeI64(struct.db_id);
      oprot.writeI64(struct.table_id);
      oprot.writeI64(struct.version);
      {
        oprot.writeI32(struct.partitions.size());
        for (TOlapTablePartition _iter130 : struct.partitions)
        {
          _iter130.write(oprot);
        }
      }
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetPartitionColumn()) {
        optionals.set(0);
      }
      if (struct.isSetDistributedColumns()) {
        optionals.set(1);
      }
      if (struct.isSetPartitionColumns()) {
        optionals.set(2);
      }
      if (struct.isSetPartitionFunctionExprs()) {
        optionals.set(3);
      }
      if (struct.isSetEnableAutomaticPartition()) {
        optionals.set(4);
      }
      if (struct.isSetPartitionType()) {
        optionals.set(5);
      }
      if (struct.isSetEnableAutoDetectOverwrite()) {
        optionals.set(6);
      }
      if (struct.isSetOverwriteGroupId()) {
        optionals.set(7);
      }
      if (struct.isSetPartitionsIsFake()) {
        optionals.set(8);
      }
      oprot.writeBitSet(optionals, 9);
      if (struct.isSetPartitionColumn()) {
        oprot.writeString(struct.partition_column);
      }
      if (struct.isSetDistributedColumns()) {
        {
          oprot.writeI32(struct.distributed_columns.size());
          for (java.lang.String _iter131 : struct.distributed_columns)
          {
            oprot.writeString(_iter131);
          }
        }
      }
      if (struct.isSetPartitionColumns()) {
        {
          oprot.writeI32(struct.partition_columns.size());
          for (java.lang.String _iter132 : struct.partition_columns)
          {
            oprot.writeString(_iter132);
          }
        }
      }
      if (struct.isSetPartitionFunctionExprs()) {
        {
          oprot.writeI32(struct.partition_function_exprs.size());
          for (org.apache.doris.thrift.TExpr _iter133 : struct.partition_function_exprs)
          {
            _iter133.write(oprot);
          }
        }
      }
      if (struct.isSetEnableAutomaticPartition()) {
        oprot.writeBool(struct.enable_automatic_partition);
      }
      if (struct.isSetPartitionType()) {
        oprot.writeI32(struct.partition_type.getValue());
      }
      if (struct.isSetEnableAutoDetectOverwrite()) {
        oprot.writeBool(struct.enable_auto_detect_overwrite);
      }
      if (struct.isSetOverwriteGroupId()) {
        oprot.writeI64(struct.overwrite_group_id);
      }
      if (struct.isSetPartitionsIsFake()) {
        oprot.writeBool(struct.partitions_is_fake);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TOlapTablePartitionParam struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      struct.db_id = iprot.readI64();
      struct.setDbIdIsSet(true);
      struct.table_id = iprot.readI64();
      struct.setTableIdIsSet(true);
      struct.version = iprot.readI64();
      struct.setVersionIsSet(true);
      {
        org.apache.thrift.protocol.TList _list134 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
        struct.partitions = new java.util.ArrayList<TOlapTablePartition>(_list134.size);
        @org.apache.thrift.annotation.Nullable TOlapTablePartition _elem135;
        for (int _i136 = 0; _i136 < _list134.size; ++_i136)
        {
          _elem135 = new TOlapTablePartition();
          _elem135.read(iprot);
          struct.partitions.add(_elem135);
        }
      }
      struct.setPartitionsIsSet(true);
      java.util.BitSet incoming = iprot.readBitSet(9);
      if (incoming.get(0)) {
        struct.partition_column = iprot.readString();
        struct.setPartitionColumnIsSet(true);
      }
      if (incoming.get(1)) {
        {
          org.apache.thrift.protocol.TList _list137 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.distributed_columns = new java.util.ArrayList<java.lang.String>(_list137.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem138;
          for (int _i139 = 0; _i139 < _list137.size; ++_i139)
          {
            _elem138 = iprot.readString();
            struct.distributed_columns.add(_elem138);
          }
        }
        struct.setDistributedColumnsIsSet(true);
      }
      if (incoming.get(2)) {
        {
          org.apache.thrift.protocol.TList _list140 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.partition_columns = new java.util.ArrayList<java.lang.String>(_list140.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem141;
          for (int _i142 = 0; _i142 < _list140.size; ++_i142)
          {
            _elem141 = iprot.readString();
            struct.partition_columns.add(_elem141);
          }
        }
        struct.setPartitionColumnsIsSet(true);
      }
      if (incoming.get(3)) {
        {
          org.apache.thrift.protocol.TList _list143 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
          struct.partition_function_exprs = new java.util.ArrayList<org.apache.doris.thrift.TExpr>(_list143.size);
          @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TExpr _elem144;
          for (int _i145 = 0; _i145 < _list143.size; ++_i145)
          {
            _elem144 = new org.apache.doris.thrift.TExpr();
            _elem144.read(iprot);
            struct.partition_function_exprs.add(_elem144);
          }
        }
        struct.setPartitionFunctionExprsIsSet(true);
      }
      if (incoming.get(4)) {
        struct.enable_automatic_partition = iprot.readBool();
        struct.setEnableAutomaticPartitionIsSet(true);
      }
      if (incoming.get(5)) {
        struct.partition_type = org.apache.doris.thrift.TPartitionType.findByValue(iprot.readI32());
        struct.setPartitionTypeIsSet(true);
      }
      if (incoming.get(6)) {
        struct.enable_auto_detect_overwrite = iprot.readBool();
        struct.setEnableAutoDetectOverwriteIsSet(true);
      }
      if (incoming.get(7)) {
        struct.overwrite_group_id = iprot.readI64();
        struct.setOverwriteGroupIdIsSet(true);
      }
      if (incoming.get(8)) {
        struct.partitions_is_fake = iprot.readBool();
        struct.setPartitionsIsFakeIsSet(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();
  }
}