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

  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 SLOT_DESCS_FIELD_DESC = new org.apache.thrift.protocol.TField("slot_descs", org.apache.thrift.protocol.TType.LIST, (short)4);
  private static final org.apache.thrift.protocol.TField TUPLE_DESC_FIELD_DESC = new org.apache.thrift.protocol.TField("tuple_desc", org.apache.thrift.protocol.TType.STRUCT, (short)5);
  private static final org.apache.thrift.protocol.TField INDEXES_FIELD_DESC = new org.apache.thrift.protocol.TField("indexes", org.apache.thrift.protocol.TType.LIST, (short)6);
  private static final org.apache.thrift.protocol.TField IS_DYNAMIC_SCHEMA_FIELD_DESC = new org.apache.thrift.protocol.TField("is_dynamic_schema", org.apache.thrift.protocol.TType.BOOL, (short)7);
  private static final org.apache.thrift.protocol.TField IS_PARTIAL_UPDATE_FIELD_DESC = new org.apache.thrift.protocol.TField("is_partial_update", org.apache.thrift.protocol.TType.BOOL, (short)8);
  private static final org.apache.thrift.protocol.TField PARTIAL_UPDATE_INPUT_COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("partial_update_input_columns", org.apache.thrift.protocol.TType.LIST, (short)9);
  private static final org.apache.thrift.protocol.TField IS_STRICT_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("is_strict_mode", org.apache.thrift.protocol.TType.BOOL, (short)10);
  private static final org.apache.thrift.protocol.TField AUTO_INCREMENT_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("auto_increment_column", org.apache.thrift.protocol.TType.STRING, (short)11);
  private static final org.apache.thrift.protocol.TField AUTO_INCREMENT_COLUMN_UNIQUE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("auto_increment_column_unique_id", org.apache.thrift.protocol.TType.I32, (short)12);
  private static final org.apache.thrift.protocol.TField INVERTED_INDEX_FILE_STORAGE_FORMAT_FIELD_DESC = new org.apache.thrift.protocol.TField("inverted_index_file_storage_format", org.apache.thrift.protocol.TType.I32, (short)13);
  private static final org.apache.thrift.protocol.TField UNIQUE_KEY_UPDATE_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("unique_key_update_mode", org.apache.thrift.protocol.TType.I32, (short)14);
  private static final org.apache.thrift.protocol.TField SEQUENCE_MAP_COL_UNIQUE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("sequence_map_col_unique_id", org.apache.thrift.protocol.TType.I32, (short)15);
  private static final org.apache.thrift.protocol.TField PARTIAL_UPDATE_NEW_KEY_POLICY_FIELD_DESC = new org.apache.thrift.protocol.TField("partial_update_new_key_policy", org.apache.thrift.protocol.TType.I32, (short)16);

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

  public long db_id; // required
  public long table_id; // required
  public long version; // required
  public @org.apache.thrift.annotation.Nullable java.util.List<TSlotDescriptor> slot_descs; // required
  public @org.apache.thrift.annotation.Nullable TTupleDescriptor tuple_desc; // required
  public @org.apache.thrift.annotation.Nullable java.util.List<TOlapTableIndexSchema> indexes; // required
  public boolean is_dynamic_schema; // optional
  public boolean is_partial_update; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partial_update_input_columns; // optional
  public boolean is_strict_mode; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String auto_increment_column; // optional
  public int auto_increment_column_unique_id; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TInvertedIndexFileStorageFormat
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TInvertedIndexFileStorageFormat inverted_index_file_storage_format; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TUniqueKeyUpdateMode
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TUniqueKeyUpdateMode unique_key_update_mode; // optional
  public int sequence_map_col_unique_id; // optional
  /**
   * 
   * @see TPartialUpdateNewRowPolicy
   */
  public @org.apache.thrift.annotation.Nullable TPartialUpdateNewRowPolicy partial_update_new_key_policy; // 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"),
    SLOT_DESCS((short)4, "slot_descs"),
    TUPLE_DESC((short)5, "tuple_desc"),
    INDEXES((short)6, "indexes"),
    IS_DYNAMIC_SCHEMA((short)7, "is_dynamic_schema"),
    IS_PARTIAL_UPDATE((short)8, "is_partial_update"),
    PARTIAL_UPDATE_INPUT_COLUMNS((short)9, "partial_update_input_columns"),
    IS_STRICT_MODE((short)10, "is_strict_mode"),
    AUTO_INCREMENT_COLUMN((short)11, "auto_increment_column"),
    AUTO_INCREMENT_COLUMN_UNIQUE_ID((short)12, "auto_increment_column_unique_id"),
    /**
     * 
     * @see org.apache.doris.thrift.TInvertedIndexFileStorageFormat
     */
    INVERTED_INDEX_FILE_STORAGE_FORMAT((short)13, "inverted_index_file_storage_format"),
    /**
     * 
     * @see org.apache.doris.thrift.TUniqueKeyUpdateMode
     */
    UNIQUE_KEY_UPDATE_MODE((short)14, "unique_key_update_mode"),
    SEQUENCE_MAP_COL_UNIQUE_ID((short)15, "sequence_map_col_unique_id"),
    /**
     * 
     * @see TPartialUpdateNewRowPolicy
     */
    PARTIAL_UPDATE_NEW_KEY_POLICY((short)16, "partial_update_new_key_policy");

    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: // SLOT_DESCS
          return SLOT_DESCS;
        case 5: // TUPLE_DESC
          return TUPLE_DESC;
        case 6: // INDEXES
          return INDEXES;
        case 7: // IS_DYNAMIC_SCHEMA
          return IS_DYNAMIC_SCHEMA;
        case 8: // IS_PARTIAL_UPDATE
          return IS_PARTIAL_UPDATE;
        case 9: // PARTIAL_UPDATE_INPUT_COLUMNS
          return PARTIAL_UPDATE_INPUT_COLUMNS;
        case 10: // IS_STRICT_MODE
          return IS_STRICT_MODE;
        case 11: // AUTO_INCREMENT_COLUMN
          return AUTO_INCREMENT_COLUMN;
        case 12: // AUTO_INCREMENT_COLUMN_UNIQUE_ID
          return AUTO_INCREMENT_COLUMN_UNIQUE_ID;
        case 13: // INVERTED_INDEX_FILE_STORAGE_FORMAT
          return INVERTED_INDEX_FILE_STORAGE_FORMAT;
        case 14: // UNIQUE_KEY_UPDATE_MODE
          return UNIQUE_KEY_UPDATE_MODE;
        case 15: // SEQUENCE_MAP_COL_UNIQUE_ID
          return SEQUENCE_MAP_COL_UNIQUE_ID;
        case 16: // PARTIAL_UPDATE_NEW_KEY_POLICY
          return PARTIAL_UPDATE_NEW_KEY_POLICY;
        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 __IS_DYNAMIC_SCHEMA_ISSET_ID = 3;
  private static final int __IS_PARTIAL_UPDATE_ISSET_ID = 4;
  private static final int __IS_STRICT_MODE_ISSET_ID = 5;
  private static final int __AUTO_INCREMENT_COLUMN_UNIQUE_ID_ISSET_ID = 6;
  private static final int __SEQUENCE_MAP_COL_UNIQUE_ID_ISSET_ID = 7;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.IS_DYNAMIC_SCHEMA,_Fields.IS_PARTIAL_UPDATE,_Fields.PARTIAL_UPDATE_INPUT_COLUMNS,_Fields.IS_STRICT_MODE,_Fields.AUTO_INCREMENT_COLUMN,_Fields.AUTO_INCREMENT_COLUMN_UNIQUE_ID,_Fields.INVERTED_INDEX_FILE_STORAGE_FORMAT,_Fields.UNIQUE_KEY_UPDATE_MODE,_Fields.SEQUENCE_MAP_COL_UNIQUE_ID,_Fields.PARTIAL_UPDATE_NEW_KEY_POLICY};
  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.SLOT_DESCS, new org.apache.thrift.meta_data.FieldMetaData("slot_descs", 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, TSlotDescriptor.class))));
    tmpMap.put(_Fields.TUPLE_DESC, new org.apache.thrift.meta_data.FieldMetaData("tuple_desc", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TTupleDescriptor.class)));
    tmpMap.put(_Fields.INDEXES, new org.apache.thrift.meta_data.FieldMetaData("indexes", 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, TOlapTableIndexSchema.class))));
    tmpMap.put(_Fields.IS_DYNAMIC_SCHEMA, new org.apache.thrift.meta_data.FieldMetaData("is_dynamic_schema", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.IS_PARTIAL_UPDATE, new org.apache.thrift.meta_data.FieldMetaData("is_partial_update", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.PARTIAL_UPDATE_INPUT_COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("partial_update_input_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.IS_STRICT_MODE, new org.apache.thrift.meta_data.FieldMetaData("is_strict_mode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.AUTO_INCREMENT_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("auto_increment_column", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.AUTO_INCREMENT_COLUMN_UNIQUE_ID, new org.apache.thrift.meta_data.FieldMetaData("auto_increment_column_unique_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.INVERTED_INDEX_FILE_STORAGE_FORMAT, new org.apache.thrift.meta_data.FieldMetaData("inverted_index_file_storage_format", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TInvertedIndexFileStorageFormat.class)));
    tmpMap.put(_Fields.UNIQUE_KEY_UPDATE_MODE, new org.apache.thrift.meta_data.FieldMetaData("unique_key_update_mode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TUniqueKeyUpdateMode.class)));
    tmpMap.put(_Fields.SEQUENCE_MAP_COL_UNIQUE_ID, new org.apache.thrift.meta_data.FieldMetaData("sequence_map_col_unique_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.PARTIAL_UPDATE_NEW_KEY_POLICY, new org.apache.thrift.meta_data.FieldMetaData("partial_update_new_key_policy", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TPartialUpdateNewRowPolicy.class)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TOlapTableSchemaParam.class, metaDataMap);
  }

  public TOlapTableSchemaParam() {
    this.is_strict_mode = false;

    this.auto_increment_column_unique_id = -1;

    this.inverted_index_file_storage_format = org.apache.doris.thrift.TInvertedIndexFileStorageFormat.V1;

    this.sequence_map_col_unique_id = -1;

  }

  public TOlapTableSchemaParam(
    long db_id,
    long table_id,
    long version,
    java.util.List<TSlotDescriptor> slot_descs,
    TTupleDescriptor tuple_desc,
    java.util.List<TOlapTableIndexSchema> indexes)
  {
    this();
    this.db_id = db_id;
    setDbIdIsSet(true);
    this.table_id = table_id;
    setTableIdIsSet(true);
    this.version = version;
    setVersionIsSet(true);
    this.slot_descs = slot_descs;
    this.tuple_desc = tuple_desc;
    this.indexes = indexes;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TOlapTableSchemaParam(TOlapTableSchemaParam other) {
    __isset_bitfield = other.__isset_bitfield;
    this.db_id = other.db_id;
    this.table_id = other.table_id;
    this.version = other.version;
    if (other.isSetSlotDescs()) {
      java.util.List<TSlotDescriptor> __this__slot_descs = new java.util.ArrayList<TSlotDescriptor>(other.slot_descs.size());
      for (TSlotDescriptor other_element : other.slot_descs) {
        __this__slot_descs.add(new TSlotDescriptor(other_element));
      }
      this.slot_descs = __this__slot_descs;
    }
    if (other.isSetTupleDesc()) {
      this.tuple_desc = new TTupleDescriptor(other.tuple_desc);
    }
    if (other.isSetIndexes()) {
      java.util.List<TOlapTableIndexSchema> __this__indexes = new java.util.ArrayList<TOlapTableIndexSchema>(other.indexes.size());
      for (TOlapTableIndexSchema other_element : other.indexes) {
        __this__indexes.add(new TOlapTableIndexSchema(other_element));
      }
      this.indexes = __this__indexes;
    }
    this.is_dynamic_schema = other.is_dynamic_schema;
    this.is_partial_update = other.is_partial_update;
    if (other.isSetPartialUpdateInputColumns()) {
      java.util.List<java.lang.String> __this__partial_update_input_columns = new java.util.ArrayList<java.lang.String>(other.partial_update_input_columns);
      this.partial_update_input_columns = __this__partial_update_input_columns;
    }
    this.is_strict_mode = other.is_strict_mode;
    if (other.isSetAutoIncrementColumn()) {
      this.auto_increment_column = other.auto_increment_column;
    }
    this.auto_increment_column_unique_id = other.auto_increment_column_unique_id;
    if (other.isSetInvertedIndexFileStorageFormat()) {
      this.inverted_index_file_storage_format = other.inverted_index_file_storage_format;
    }
    if (other.isSetUniqueKeyUpdateMode()) {
      this.unique_key_update_mode = other.unique_key_update_mode;
    }
    this.sequence_map_col_unique_id = other.sequence_map_col_unique_id;
    if (other.isSetPartialUpdateNewKeyPolicy()) {
      this.partial_update_new_key_policy = other.partial_update_new_key_policy;
    }
  }

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

  @Override
  public void clear() {
    setDbIdIsSet(false);
    this.db_id = 0;
    setTableIdIsSet(false);
    this.table_id = 0;
    setVersionIsSet(false);
    this.version = 0;
    this.slot_descs = null;
    this.tuple_desc = null;
    this.indexes = null;
    setIsDynamicSchemaIsSet(false);
    this.is_dynamic_schema = false;
    setIsPartialUpdateIsSet(false);
    this.is_partial_update = false;
    this.partial_update_input_columns = null;
    this.is_strict_mode = false;

    this.auto_increment_column = null;
    this.auto_increment_column_unique_id = -1;

    this.inverted_index_file_storage_format = org.apache.doris.thrift.TInvertedIndexFileStorageFormat.V1;

    this.unique_key_update_mode = null;
    this.sequence_map_col_unique_id = -1;

    this.partial_update_new_key_policy = null;
  }

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

  public TOlapTableSchemaParam 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 TOlapTableSchemaParam 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 TOlapTableSchemaParam 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);
  }

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

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

  public void addToSlotDescs(TSlotDescriptor elem) {
    if (this.slot_descs == null) {
      this.slot_descs = new java.util.ArrayList<TSlotDescriptor>();
    }
    this.slot_descs.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<TSlotDescriptor> getSlotDescs() {
    return this.slot_descs;
  }

  public TOlapTableSchemaParam setSlotDescs(@org.apache.thrift.annotation.Nullable java.util.List<TSlotDescriptor> slot_descs) {
    this.slot_descs = slot_descs;
    return this;
  }

  public void unsetSlotDescs() {
    this.slot_descs = null;
  }

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

  public void setSlotDescsIsSet(boolean value) {
    if (!value) {
      this.slot_descs = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public TTupleDescriptor getTupleDesc() {
    return this.tuple_desc;
  }

  public TOlapTableSchemaParam setTupleDesc(@org.apache.thrift.annotation.Nullable TTupleDescriptor tuple_desc) {
    this.tuple_desc = tuple_desc;
    return this;
  }

  public void unsetTupleDesc() {
    this.tuple_desc = null;
  }

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

  public void setTupleDescIsSet(boolean value) {
    if (!value) {
      this.tuple_desc = null;
    }
  }

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

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

  public void addToIndexes(TOlapTableIndexSchema elem) {
    if (this.indexes == null) {
      this.indexes = new java.util.ArrayList<TOlapTableIndexSchema>();
    }
    this.indexes.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<TOlapTableIndexSchema> getIndexes() {
    return this.indexes;
  }

  public TOlapTableSchemaParam setIndexes(@org.apache.thrift.annotation.Nullable java.util.List<TOlapTableIndexSchema> indexes) {
    this.indexes = indexes;
    return this;
  }

  public void unsetIndexes() {
    this.indexes = null;
  }

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

  public void setIndexesIsSet(boolean value) {
    if (!value) {
      this.indexes = null;
    }
  }

  public boolean isIsDynamicSchema() {
    return this.is_dynamic_schema;
  }

  public TOlapTableSchemaParam setIsDynamicSchema(boolean is_dynamic_schema) {
    this.is_dynamic_schema = is_dynamic_schema;
    setIsDynamicSchemaIsSet(true);
    return this;
  }

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

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

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

  public boolean isIsPartialUpdate() {
    return this.is_partial_update;
  }

  public TOlapTableSchemaParam setIsPartialUpdate(boolean is_partial_update) {
    this.is_partial_update = is_partial_update;
    setIsPartialUpdateIsSet(true);
    return this;
  }

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

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

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

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

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

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

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

  public TOlapTableSchemaParam setPartialUpdateInputColumns(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partial_update_input_columns) {
    this.partial_update_input_columns = partial_update_input_columns;
    return this;
  }

  public void unsetPartialUpdateInputColumns() {
    this.partial_update_input_columns = null;
  }

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

  public void setPartialUpdateInputColumnsIsSet(boolean value) {
    if (!value) {
      this.partial_update_input_columns = null;
    }
  }

  public boolean isIsStrictMode() {
    return this.is_strict_mode;
  }

  public TOlapTableSchemaParam setIsStrictMode(boolean is_strict_mode) {
    this.is_strict_mode = is_strict_mode;
    setIsStrictModeIsSet(true);
    return this;
  }

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

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

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

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

  public TOlapTableSchemaParam setAutoIncrementColumn(@org.apache.thrift.annotation.Nullable java.lang.String auto_increment_column) {
    this.auto_increment_column = auto_increment_column;
    return this;
  }

  public void unsetAutoIncrementColumn() {
    this.auto_increment_column = null;
  }

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

  public void setAutoIncrementColumnIsSet(boolean value) {
    if (!value) {
      this.auto_increment_column = null;
    }
  }

  public int getAutoIncrementColumnUniqueId() {
    return this.auto_increment_column_unique_id;
  }

  public TOlapTableSchemaParam setAutoIncrementColumnUniqueId(int auto_increment_column_unique_id) {
    this.auto_increment_column_unique_id = auto_increment_column_unique_id;
    setAutoIncrementColumnUniqueIdIsSet(true);
    return this;
  }

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

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

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

  /**
   * 
   * @see org.apache.doris.thrift.TInvertedIndexFileStorageFormat
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TInvertedIndexFileStorageFormat getInvertedIndexFileStorageFormat() {
    return this.inverted_index_file_storage_format;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TInvertedIndexFileStorageFormat
   */
  public TOlapTableSchemaParam setInvertedIndexFileStorageFormat(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TInvertedIndexFileStorageFormat inverted_index_file_storage_format) {
    this.inverted_index_file_storage_format = inverted_index_file_storage_format;
    return this;
  }

  public void unsetInvertedIndexFileStorageFormat() {
    this.inverted_index_file_storage_format = null;
  }

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

  public void setInvertedIndexFileStorageFormatIsSet(boolean value) {
    if (!value) {
      this.inverted_index_file_storage_format = null;
    }
  }

  /**
   * 
   * @see org.apache.doris.thrift.TUniqueKeyUpdateMode
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TUniqueKeyUpdateMode getUniqueKeyUpdateMode() {
    return this.unique_key_update_mode;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TUniqueKeyUpdateMode
   */
  public TOlapTableSchemaParam setUniqueKeyUpdateMode(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TUniqueKeyUpdateMode unique_key_update_mode) {
    this.unique_key_update_mode = unique_key_update_mode;
    return this;
  }

  public void unsetUniqueKeyUpdateMode() {
    this.unique_key_update_mode = null;
  }

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

  public void setUniqueKeyUpdateModeIsSet(boolean value) {
    if (!value) {
      this.unique_key_update_mode = null;
    }
  }

  public int getSequenceMapColUniqueId() {
    return this.sequence_map_col_unique_id;
  }

  public TOlapTableSchemaParam setSequenceMapColUniqueId(int sequence_map_col_unique_id) {
    this.sequence_map_col_unique_id = sequence_map_col_unique_id;
    setSequenceMapColUniqueIdIsSet(true);
    return this;
  }

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

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

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

  /**
   * 
   * @see TPartialUpdateNewRowPolicy
   */
  @org.apache.thrift.annotation.Nullable
  public TPartialUpdateNewRowPolicy getPartialUpdateNewKeyPolicy() {
    return this.partial_update_new_key_policy;
  }

  /**
   * 
   * @see TPartialUpdateNewRowPolicy
   */
  public TOlapTableSchemaParam setPartialUpdateNewKeyPolicy(@org.apache.thrift.annotation.Nullable TPartialUpdateNewRowPolicy partial_update_new_key_policy) {
    this.partial_update_new_key_policy = partial_update_new_key_policy;
    return this;
  }

  public void unsetPartialUpdateNewKeyPolicy() {
    this.partial_update_new_key_policy = null;
  }

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

  public void setPartialUpdateNewKeyPolicyIsSet(boolean value) {
    if (!value) {
      this.partial_update_new_key_policy = null;
    }
  }

  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 SLOT_DESCS:
      if (value == null) {
        unsetSlotDescs();
      } else {
        setSlotDescs((java.util.List<TSlotDescriptor>)value);
      }
      break;

    case TUPLE_DESC:
      if (value == null) {
        unsetTupleDesc();
      } else {
        setTupleDesc((TTupleDescriptor)value);
      }
      break;

    case INDEXES:
      if (value == null) {
        unsetIndexes();
      } else {
        setIndexes((java.util.List<TOlapTableIndexSchema>)value);
      }
      break;

    case IS_DYNAMIC_SCHEMA:
      if (value == null) {
        unsetIsDynamicSchema();
      } else {
        setIsDynamicSchema((java.lang.Boolean)value);
      }
      break;

    case IS_PARTIAL_UPDATE:
      if (value == null) {
        unsetIsPartialUpdate();
      } else {
        setIsPartialUpdate((java.lang.Boolean)value);
      }
      break;

    case PARTIAL_UPDATE_INPUT_COLUMNS:
      if (value == null) {
        unsetPartialUpdateInputColumns();
      } else {
        setPartialUpdateInputColumns((java.util.List<java.lang.String>)value);
      }
      break;

    case IS_STRICT_MODE:
      if (value == null) {
        unsetIsStrictMode();
      } else {
        setIsStrictMode((java.lang.Boolean)value);
      }
      break;

    case AUTO_INCREMENT_COLUMN:
      if (value == null) {
        unsetAutoIncrementColumn();
      } else {
        setAutoIncrementColumn((java.lang.String)value);
      }
      break;

    case AUTO_INCREMENT_COLUMN_UNIQUE_ID:
      if (value == null) {
        unsetAutoIncrementColumnUniqueId();
      } else {
        setAutoIncrementColumnUniqueId((java.lang.Integer)value);
      }
      break;

    case INVERTED_INDEX_FILE_STORAGE_FORMAT:
      if (value == null) {
        unsetInvertedIndexFileStorageFormat();
      } else {
        setInvertedIndexFileStorageFormat((org.apache.doris.thrift.TInvertedIndexFileStorageFormat)value);
      }
      break;

    case UNIQUE_KEY_UPDATE_MODE:
      if (value == null) {
        unsetUniqueKeyUpdateMode();
      } else {
        setUniqueKeyUpdateMode((org.apache.doris.thrift.TUniqueKeyUpdateMode)value);
      }
      break;

    case SEQUENCE_MAP_COL_UNIQUE_ID:
      if (value == null) {
        unsetSequenceMapColUniqueId();
      } else {
        setSequenceMapColUniqueId((java.lang.Integer)value);
      }
      break;

    case PARTIAL_UPDATE_NEW_KEY_POLICY:
      if (value == null) {
        unsetPartialUpdateNewKeyPolicy();
      } else {
        setPartialUpdateNewKeyPolicy((TPartialUpdateNewRowPolicy)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 SLOT_DESCS:
      return getSlotDescs();

    case TUPLE_DESC:
      return getTupleDesc();

    case INDEXES:
      return getIndexes();

    case IS_DYNAMIC_SCHEMA:
      return isIsDynamicSchema();

    case IS_PARTIAL_UPDATE:
      return isIsPartialUpdate();

    case PARTIAL_UPDATE_INPUT_COLUMNS:
      return getPartialUpdateInputColumns();

    case IS_STRICT_MODE:
      return isIsStrictMode();

    case AUTO_INCREMENT_COLUMN:
      return getAutoIncrementColumn();

    case AUTO_INCREMENT_COLUMN_UNIQUE_ID:
      return getAutoIncrementColumnUniqueId();

    case INVERTED_INDEX_FILE_STORAGE_FORMAT:
      return getInvertedIndexFileStorageFormat();

    case UNIQUE_KEY_UPDATE_MODE:
      return getUniqueKeyUpdateMode();

    case SEQUENCE_MAP_COL_UNIQUE_ID:
      return getSequenceMapColUniqueId();

    case PARTIAL_UPDATE_NEW_KEY_POLICY:
      return getPartialUpdateNewKeyPolicy();

    }
    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 SLOT_DESCS:
      return isSetSlotDescs();
    case TUPLE_DESC:
      return isSetTupleDesc();
    case INDEXES:
      return isSetIndexes();
    case IS_DYNAMIC_SCHEMA:
      return isSetIsDynamicSchema();
    case IS_PARTIAL_UPDATE:
      return isSetIsPartialUpdate();
    case PARTIAL_UPDATE_INPUT_COLUMNS:
      return isSetPartialUpdateInputColumns();
    case IS_STRICT_MODE:
      return isSetIsStrictMode();
    case AUTO_INCREMENT_COLUMN:
      return isSetAutoIncrementColumn();
    case AUTO_INCREMENT_COLUMN_UNIQUE_ID:
      return isSetAutoIncrementColumnUniqueId();
    case INVERTED_INDEX_FILE_STORAGE_FORMAT:
      return isSetInvertedIndexFileStorageFormat();
    case UNIQUE_KEY_UPDATE_MODE:
      return isSetUniqueKeyUpdateMode();
    case SEQUENCE_MAP_COL_UNIQUE_ID:
      return isSetSequenceMapColUniqueId();
    case PARTIAL_UPDATE_NEW_KEY_POLICY:
      return isSetPartialUpdateNewKeyPolicy();
    }
    throw new java.lang.IllegalStateException();
  }

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

  public boolean equals(TOlapTableSchemaParam 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_slot_descs = true && this.isSetSlotDescs();
    boolean that_present_slot_descs = true && that.isSetSlotDescs();
    if (this_present_slot_descs || that_present_slot_descs) {
      if (!(this_present_slot_descs && that_present_slot_descs))
        return false;
      if (!this.slot_descs.equals(that.slot_descs))
        return false;
    }

    boolean this_present_tuple_desc = true && this.isSetTupleDesc();
    boolean that_present_tuple_desc = true && that.isSetTupleDesc();
    if (this_present_tuple_desc || that_present_tuple_desc) {
      if (!(this_present_tuple_desc && that_present_tuple_desc))
        return false;
      if (!this.tuple_desc.equals(that.tuple_desc))
        return false;
    }

    boolean this_present_indexes = true && this.isSetIndexes();
    boolean that_present_indexes = true && that.isSetIndexes();
    if (this_present_indexes || that_present_indexes) {
      if (!(this_present_indexes && that_present_indexes))
        return false;
      if (!this.indexes.equals(that.indexes))
        return false;
    }

    boolean this_present_is_dynamic_schema = true && this.isSetIsDynamicSchema();
    boolean that_present_is_dynamic_schema = true && that.isSetIsDynamicSchema();
    if (this_present_is_dynamic_schema || that_present_is_dynamic_schema) {
      if (!(this_present_is_dynamic_schema && that_present_is_dynamic_schema))
        return false;
      if (this.is_dynamic_schema != that.is_dynamic_schema)
        return false;
    }

    boolean this_present_is_partial_update = true && this.isSetIsPartialUpdate();
    boolean that_present_is_partial_update = true && that.isSetIsPartialUpdate();
    if (this_present_is_partial_update || that_present_is_partial_update) {
      if (!(this_present_is_partial_update && that_present_is_partial_update))
        return false;
      if (this.is_partial_update != that.is_partial_update)
        return false;
    }

    boolean this_present_partial_update_input_columns = true && this.isSetPartialUpdateInputColumns();
    boolean that_present_partial_update_input_columns = true && that.isSetPartialUpdateInputColumns();
    if (this_present_partial_update_input_columns || that_present_partial_update_input_columns) {
      if (!(this_present_partial_update_input_columns && that_present_partial_update_input_columns))
        return false;
      if (!this.partial_update_input_columns.equals(that.partial_update_input_columns))
        return false;
    }

    boolean this_present_is_strict_mode = true && this.isSetIsStrictMode();
    boolean that_present_is_strict_mode = true && that.isSetIsStrictMode();
    if (this_present_is_strict_mode || that_present_is_strict_mode) {
      if (!(this_present_is_strict_mode && that_present_is_strict_mode))
        return false;
      if (this.is_strict_mode != that.is_strict_mode)
        return false;
    }

    boolean this_present_auto_increment_column = true && this.isSetAutoIncrementColumn();
    boolean that_present_auto_increment_column = true && that.isSetAutoIncrementColumn();
    if (this_present_auto_increment_column || that_present_auto_increment_column) {
      if (!(this_present_auto_increment_column && that_present_auto_increment_column))
        return false;
      if (!this.auto_increment_column.equals(that.auto_increment_column))
        return false;
    }

    boolean this_present_auto_increment_column_unique_id = true && this.isSetAutoIncrementColumnUniqueId();
    boolean that_present_auto_increment_column_unique_id = true && that.isSetAutoIncrementColumnUniqueId();
    if (this_present_auto_increment_column_unique_id || that_present_auto_increment_column_unique_id) {
      if (!(this_present_auto_increment_column_unique_id && that_present_auto_increment_column_unique_id))
        return false;
      if (this.auto_increment_column_unique_id != that.auto_increment_column_unique_id)
        return false;
    }

    boolean this_present_inverted_index_file_storage_format = true && this.isSetInvertedIndexFileStorageFormat();
    boolean that_present_inverted_index_file_storage_format = true && that.isSetInvertedIndexFileStorageFormat();
    if (this_present_inverted_index_file_storage_format || that_present_inverted_index_file_storage_format) {
      if (!(this_present_inverted_index_file_storage_format && that_present_inverted_index_file_storage_format))
        return false;
      if (!this.inverted_index_file_storage_format.equals(that.inverted_index_file_storage_format))
        return false;
    }

    boolean this_present_unique_key_update_mode = true && this.isSetUniqueKeyUpdateMode();
    boolean that_present_unique_key_update_mode = true && that.isSetUniqueKeyUpdateMode();
    if (this_present_unique_key_update_mode || that_present_unique_key_update_mode) {
      if (!(this_present_unique_key_update_mode && that_present_unique_key_update_mode))
        return false;
      if (!this.unique_key_update_mode.equals(that.unique_key_update_mode))
        return false;
    }

    boolean this_present_sequence_map_col_unique_id = true && this.isSetSequenceMapColUniqueId();
    boolean that_present_sequence_map_col_unique_id = true && that.isSetSequenceMapColUniqueId();
    if (this_present_sequence_map_col_unique_id || that_present_sequence_map_col_unique_id) {
      if (!(this_present_sequence_map_col_unique_id && that_present_sequence_map_col_unique_id))
        return false;
      if (this.sequence_map_col_unique_id != that.sequence_map_col_unique_id)
        return false;
    }

    boolean this_present_partial_update_new_key_policy = true && this.isSetPartialUpdateNewKeyPolicy();
    boolean that_present_partial_update_new_key_policy = true && that.isSetPartialUpdateNewKeyPolicy();
    if (this_present_partial_update_new_key_policy || that_present_partial_update_new_key_policy) {
      if (!(this_present_partial_update_new_key_policy && that_present_partial_update_new_key_policy))
        return false;
      if (!this.partial_update_new_key_policy.equals(that.partial_update_new_key_policy))
        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 + ((isSetSlotDescs()) ? 131071 : 524287);
    if (isSetSlotDescs())
      hashCode = hashCode * 8191 + slot_descs.hashCode();

    hashCode = hashCode * 8191 + ((isSetTupleDesc()) ? 131071 : 524287);
    if (isSetTupleDesc())
      hashCode = hashCode * 8191 + tuple_desc.hashCode();

    hashCode = hashCode * 8191 + ((isSetIndexes()) ? 131071 : 524287);
    if (isSetIndexes())
      hashCode = hashCode * 8191 + indexes.hashCode();

    hashCode = hashCode * 8191 + ((isSetIsDynamicSchema()) ? 131071 : 524287);
    if (isSetIsDynamicSchema())
      hashCode = hashCode * 8191 + ((is_dynamic_schema) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetIsPartialUpdate()) ? 131071 : 524287);
    if (isSetIsPartialUpdate())
      hashCode = hashCode * 8191 + ((is_partial_update) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetPartialUpdateInputColumns()) ? 131071 : 524287);
    if (isSetPartialUpdateInputColumns())
      hashCode = hashCode * 8191 + partial_update_input_columns.hashCode();

    hashCode = hashCode * 8191 + ((isSetIsStrictMode()) ? 131071 : 524287);
    if (isSetIsStrictMode())
      hashCode = hashCode * 8191 + ((is_strict_mode) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetAutoIncrementColumn()) ? 131071 : 524287);
    if (isSetAutoIncrementColumn())
      hashCode = hashCode * 8191 + auto_increment_column.hashCode();

    hashCode = hashCode * 8191 + ((isSetAutoIncrementColumnUniqueId()) ? 131071 : 524287);
    if (isSetAutoIncrementColumnUniqueId())
      hashCode = hashCode * 8191 + auto_increment_column_unique_id;

    hashCode = hashCode * 8191 + ((isSetInvertedIndexFileStorageFormat()) ? 131071 : 524287);
    if (isSetInvertedIndexFileStorageFormat())
      hashCode = hashCode * 8191 + inverted_index_file_storage_format.getValue();

    hashCode = hashCode * 8191 + ((isSetUniqueKeyUpdateMode()) ? 131071 : 524287);
    if (isSetUniqueKeyUpdateMode())
      hashCode = hashCode * 8191 + unique_key_update_mode.getValue();

    hashCode = hashCode * 8191 + ((isSetSequenceMapColUniqueId()) ? 131071 : 524287);
    if (isSetSequenceMapColUniqueId())
      hashCode = hashCode * 8191 + sequence_map_col_unique_id;

    hashCode = hashCode * 8191 + ((isSetPartialUpdateNewKeyPolicy()) ? 131071 : 524287);
    if (isSetPartialUpdateNewKeyPolicy())
      hashCode = hashCode * 8191 + partial_update_new_key_policy.getValue();

    return hashCode;
  }

  @Override
  public int compareTo(TOlapTableSchemaParam 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(isSetSlotDescs(), other.isSetSlotDescs());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSlotDescs()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.slot_descs, other.slot_descs);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTupleDesc(), other.isSetTupleDesc());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTupleDesc()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tuple_desc, other.tuple_desc);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIndexes(), other.isSetIndexes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIndexes()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.indexes, other.indexes);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsDynamicSchema(), other.isSetIsDynamicSchema());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsDynamicSchema()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_dynamic_schema, other.is_dynamic_schema);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsPartialUpdate(), other.isSetIsPartialUpdate());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsPartialUpdate()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_partial_update, other.is_partial_update);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartialUpdateInputColumns(), other.isSetPartialUpdateInputColumns());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartialUpdateInputColumns()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partial_update_input_columns, other.partial_update_input_columns);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsStrictMode(), other.isSetIsStrictMode());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsStrictMode()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_strict_mode, other.is_strict_mode);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetAutoIncrementColumn(), other.isSetAutoIncrementColumn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAutoIncrementColumn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.auto_increment_column, other.auto_increment_column);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetAutoIncrementColumnUniqueId(), other.isSetAutoIncrementColumnUniqueId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAutoIncrementColumnUniqueId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.auto_increment_column_unique_id, other.auto_increment_column_unique_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetInvertedIndexFileStorageFormat(), other.isSetInvertedIndexFileStorageFormat());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetInvertedIndexFileStorageFormat()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inverted_index_file_storage_format, other.inverted_index_file_storage_format);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetUniqueKeyUpdateMode(), other.isSetUniqueKeyUpdateMode());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUniqueKeyUpdateMode()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unique_key_update_mode, other.unique_key_update_mode);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSequenceMapColUniqueId(), other.isSetSequenceMapColUniqueId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSequenceMapColUniqueId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sequence_map_col_unique_id, other.sequence_map_col_unique_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartialUpdateNewKeyPolicy(), other.isSetPartialUpdateNewKeyPolicy());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartialUpdateNewKeyPolicy()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partial_update_new_key_policy, other.partial_update_new_key_policy);
      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("TOlapTableSchemaParam(");
    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 (!first) sb.append(", ");
    sb.append("slot_descs:");
    if (this.slot_descs == null) {
      sb.append("null");
    } else {
      sb.append(this.slot_descs);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("tuple_desc:");
    if (this.tuple_desc == null) {
      sb.append("null");
    } else {
      sb.append(this.tuple_desc);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("indexes:");
    if (this.indexes == null) {
      sb.append("null");
    } else {
      sb.append(this.indexes);
    }
    first = false;
    if (isSetIsDynamicSchema()) {
      if (!first) sb.append(", ");
      sb.append("is_dynamic_schema:");
      sb.append(this.is_dynamic_schema);
      first = false;
    }
    if (isSetIsPartialUpdate()) {
      if (!first) sb.append(", ");
      sb.append("is_partial_update:");
      sb.append(this.is_partial_update);
      first = false;
    }
    if (isSetPartialUpdateInputColumns()) {
      if (!first) sb.append(", ");
      sb.append("partial_update_input_columns:");
      if (this.partial_update_input_columns == null) {
        sb.append("null");
      } else {
        sb.append(this.partial_update_input_columns);
      }
      first = false;
    }
    if (isSetIsStrictMode()) {
      if (!first) sb.append(", ");
      sb.append("is_strict_mode:");
      sb.append(this.is_strict_mode);
      first = false;
    }
    if (isSetAutoIncrementColumn()) {
      if (!first) sb.append(", ");
      sb.append("auto_increment_column:");
      if (this.auto_increment_column == null) {
        sb.append("null");
      } else {
        sb.append(this.auto_increment_column);
      }
      first = false;
    }
    if (isSetAutoIncrementColumnUniqueId()) {
      if (!first) sb.append(", ");
      sb.append("auto_increment_column_unique_id:");
      sb.append(this.auto_increment_column_unique_id);
      first = false;
    }
    if (isSetInvertedIndexFileStorageFormat()) {
      if (!first) sb.append(", ");
      sb.append("inverted_index_file_storage_format:");
      if (this.inverted_index_file_storage_format == null) {
        sb.append("null");
      } else {
        sb.append(this.inverted_index_file_storage_format);
      }
      first = false;
    }
    if (isSetUniqueKeyUpdateMode()) {
      if (!first) sb.append(", ");
      sb.append("unique_key_update_mode:");
      if (this.unique_key_update_mode == null) {
        sb.append("null");
      } else {
        sb.append(this.unique_key_update_mode);
      }
      first = false;
    }
    if (isSetSequenceMapColUniqueId()) {
      if (!first) sb.append(", ");
      sb.append("sequence_map_col_unique_id:");
      sb.append(this.sequence_map_col_unique_id);
      first = false;
    }
    if (isSetPartialUpdateNewKeyPolicy()) {
      if (!first) sb.append(", ");
      sb.append("partial_update_new_key_policy:");
      if (this.partial_update_new_key_policy == null) {
        sb.append("null");
      } else {
        sb.append(this.partial_update_new_key_policy);
      }
      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 (slot_descs == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'slot_descs' was not present! Struct: " + toString());
    }
    if (tuple_desc == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'tuple_desc' was not present! Struct: " + toString());
    }
    if (indexes == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'indexes' was not present! Struct: " + toString());
    }
    // check for sub-struct validity
    if (tuple_desc != null) {
      tuple_desc.validate();
    }
  }

  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 TOlapTableSchemaParamStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TOlapTableSchemaParamStandardScheme getScheme() {
      return new TOlapTableSchemaParamStandardScheme();
    }
  }

  private static class TOlapTableSchemaParamStandardScheme extends org.apache.thrift.scheme.StandardScheme<TOlapTableSchemaParam> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TOlapTableSchemaParam 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: // SLOT_DESCS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list196 = iprot.readListBegin();
                struct.slot_descs = new java.util.ArrayList<TSlotDescriptor>(_list196.size);
                @org.apache.thrift.annotation.Nullable TSlotDescriptor _elem197;
                for (int _i198 = 0; _i198 < _list196.size; ++_i198)
                {
                  _elem197 = new TSlotDescriptor();
                  _elem197.read(iprot);
                  struct.slot_descs.add(_elem197);
                }
                iprot.readListEnd();
              }
              struct.setSlotDescsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // TUPLE_DESC
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.tuple_desc = new TTupleDescriptor();
              struct.tuple_desc.read(iprot);
              struct.setTupleDescIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // INDEXES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list199 = iprot.readListBegin();
                struct.indexes = new java.util.ArrayList<TOlapTableIndexSchema>(_list199.size);
                @org.apache.thrift.annotation.Nullable TOlapTableIndexSchema _elem200;
                for (int _i201 = 0; _i201 < _list199.size; ++_i201)
                {
                  _elem200 = new TOlapTableIndexSchema();
                  _elem200.read(iprot);
                  struct.indexes.add(_elem200);
                }
                iprot.readListEnd();
              }
              struct.setIndexesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // IS_DYNAMIC_SCHEMA
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_dynamic_schema = iprot.readBool();
              struct.setIsDynamicSchemaIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // IS_PARTIAL_UPDATE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_partial_update = iprot.readBool();
              struct.setIsPartialUpdateIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // PARTIAL_UPDATE_INPUT_COLUMNS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list202 = iprot.readListBegin();
                struct.partial_update_input_columns = new java.util.ArrayList<java.lang.String>(_list202.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem203;
                for (int _i204 = 0; _i204 < _list202.size; ++_i204)
                {
                  _elem203 = iprot.readString();
                  struct.partial_update_input_columns.add(_elem203);
                }
                iprot.readListEnd();
              }
              struct.setPartialUpdateInputColumnsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // IS_STRICT_MODE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_strict_mode = iprot.readBool();
              struct.setIsStrictModeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // AUTO_INCREMENT_COLUMN
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.auto_increment_column = iprot.readString();
              struct.setAutoIncrementColumnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // AUTO_INCREMENT_COLUMN_UNIQUE_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.auto_increment_column_unique_id = iprot.readI32();
              struct.setAutoIncrementColumnUniqueIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // INVERTED_INDEX_FILE_STORAGE_FORMAT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.inverted_index_file_storage_format = org.apache.doris.thrift.TInvertedIndexFileStorageFormat.findByValue(iprot.readI32());
              struct.setInvertedIndexFileStorageFormatIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // UNIQUE_KEY_UPDATE_MODE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.unique_key_update_mode = org.apache.doris.thrift.TUniqueKeyUpdateMode.findByValue(iprot.readI32());
              struct.setUniqueKeyUpdateModeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // SEQUENCE_MAP_COL_UNIQUE_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.sequence_map_col_unique_id = iprot.readI32();
              struct.setSequenceMapColUniqueIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // PARTIAL_UPDATE_NEW_KEY_POLICY
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.partial_update_new_key_policy = org.apache.doris.thrift.TPartialUpdateNewRowPolicy.findByValue(iprot.readI32());
              struct.setPartialUpdateNewKeyPolicyIsSet(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, TOlapTableSchemaParam 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.slot_descs != null) {
        oprot.writeFieldBegin(SLOT_DESCS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.slot_descs.size()));
          for (TSlotDescriptor _iter205 : struct.slot_descs)
          {
            _iter205.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.tuple_desc != null) {
        oprot.writeFieldBegin(TUPLE_DESC_FIELD_DESC);
        struct.tuple_desc.write(oprot);
        oprot.writeFieldEnd();
      }
      if (struct.indexes != null) {
        oprot.writeFieldBegin(INDEXES_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.indexes.size()));
          for (TOlapTableIndexSchema _iter206 : struct.indexes)
          {
            _iter206.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.isSetIsDynamicSchema()) {
        oprot.writeFieldBegin(IS_DYNAMIC_SCHEMA_FIELD_DESC);
        oprot.writeBool(struct.is_dynamic_schema);
        oprot.writeFieldEnd();
      }
      if (struct.isSetIsPartialUpdate()) {
        oprot.writeFieldBegin(IS_PARTIAL_UPDATE_FIELD_DESC);
        oprot.writeBool(struct.is_partial_update);
        oprot.writeFieldEnd();
      }
      if (struct.partial_update_input_columns != null) {
        if (struct.isSetPartialUpdateInputColumns()) {
          oprot.writeFieldBegin(PARTIAL_UPDATE_INPUT_COLUMNS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.partial_update_input_columns.size()));
            for (java.lang.String _iter207 : struct.partial_update_input_columns)
            {
              oprot.writeString(_iter207);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetIsStrictMode()) {
        oprot.writeFieldBegin(IS_STRICT_MODE_FIELD_DESC);
        oprot.writeBool(struct.is_strict_mode);
        oprot.writeFieldEnd();
      }
      if (struct.auto_increment_column != null) {
        if (struct.isSetAutoIncrementColumn()) {
          oprot.writeFieldBegin(AUTO_INCREMENT_COLUMN_FIELD_DESC);
          oprot.writeString(struct.auto_increment_column);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetAutoIncrementColumnUniqueId()) {
        oprot.writeFieldBegin(AUTO_INCREMENT_COLUMN_UNIQUE_ID_FIELD_DESC);
        oprot.writeI32(struct.auto_increment_column_unique_id);
        oprot.writeFieldEnd();
      }
      if (struct.inverted_index_file_storage_format != null) {
        if (struct.isSetInvertedIndexFileStorageFormat()) {
          oprot.writeFieldBegin(INVERTED_INDEX_FILE_STORAGE_FORMAT_FIELD_DESC);
          oprot.writeI32(struct.inverted_index_file_storage_format.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.unique_key_update_mode != null) {
        if (struct.isSetUniqueKeyUpdateMode()) {
          oprot.writeFieldBegin(UNIQUE_KEY_UPDATE_MODE_FIELD_DESC);
          oprot.writeI32(struct.unique_key_update_mode.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetSequenceMapColUniqueId()) {
        oprot.writeFieldBegin(SEQUENCE_MAP_COL_UNIQUE_ID_FIELD_DESC);
        oprot.writeI32(struct.sequence_map_col_unique_id);
        oprot.writeFieldEnd();
      }
      if (struct.partial_update_new_key_policy != null) {
        if (struct.isSetPartialUpdateNewKeyPolicy()) {
          oprot.writeFieldBegin(PARTIAL_UPDATE_NEW_KEY_POLICY_FIELD_DESC);
          oprot.writeI32(struct.partial_update_new_key_policy.getValue());
          oprot.writeFieldEnd();
        }
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TOlapTableSchemaParamTupleScheme extends org.apache.thrift.scheme.TupleScheme<TOlapTableSchemaParam> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TOlapTableSchemaParam 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.slot_descs.size());
        for (TSlotDescriptor _iter208 : struct.slot_descs)
        {
          _iter208.write(oprot);
        }
      }
      struct.tuple_desc.write(oprot);
      {
        oprot.writeI32(struct.indexes.size());
        for (TOlapTableIndexSchema _iter209 : struct.indexes)
        {
          _iter209.write(oprot);
        }
      }
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetIsDynamicSchema()) {
        optionals.set(0);
      }
      if (struct.isSetIsPartialUpdate()) {
        optionals.set(1);
      }
      if (struct.isSetPartialUpdateInputColumns()) {
        optionals.set(2);
      }
      if (struct.isSetIsStrictMode()) {
        optionals.set(3);
      }
      if (struct.isSetAutoIncrementColumn()) {
        optionals.set(4);
      }
      if (struct.isSetAutoIncrementColumnUniqueId()) {
        optionals.set(5);
      }
      if (struct.isSetInvertedIndexFileStorageFormat()) {
        optionals.set(6);
      }
      if (struct.isSetUniqueKeyUpdateMode()) {
        optionals.set(7);
      }
      if (struct.isSetSequenceMapColUniqueId()) {
        optionals.set(8);
      }
      if (struct.isSetPartialUpdateNewKeyPolicy()) {
        optionals.set(9);
      }
      oprot.writeBitSet(optionals, 10);
      if (struct.isSetIsDynamicSchema()) {
        oprot.writeBool(struct.is_dynamic_schema);
      }
      if (struct.isSetIsPartialUpdate()) {
        oprot.writeBool(struct.is_partial_update);
      }
      if (struct.isSetPartialUpdateInputColumns()) {
        {
          oprot.writeI32(struct.partial_update_input_columns.size());
          for (java.lang.String _iter210 : struct.partial_update_input_columns)
          {
            oprot.writeString(_iter210);
          }
        }
      }
      if (struct.isSetIsStrictMode()) {
        oprot.writeBool(struct.is_strict_mode);
      }
      if (struct.isSetAutoIncrementColumn()) {
        oprot.writeString(struct.auto_increment_column);
      }
      if (struct.isSetAutoIncrementColumnUniqueId()) {
        oprot.writeI32(struct.auto_increment_column_unique_id);
      }
      if (struct.isSetInvertedIndexFileStorageFormat()) {
        oprot.writeI32(struct.inverted_index_file_storage_format.getValue());
      }
      if (struct.isSetUniqueKeyUpdateMode()) {
        oprot.writeI32(struct.unique_key_update_mode.getValue());
      }
      if (struct.isSetSequenceMapColUniqueId()) {
        oprot.writeI32(struct.sequence_map_col_unique_id);
      }
      if (struct.isSetPartialUpdateNewKeyPolicy()) {
        oprot.writeI32(struct.partial_update_new_key_policy.getValue());
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TOlapTableSchemaParam 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 _list211 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
        struct.slot_descs = new java.util.ArrayList<TSlotDescriptor>(_list211.size);
        @org.apache.thrift.annotation.Nullable TSlotDescriptor _elem212;
        for (int _i213 = 0; _i213 < _list211.size; ++_i213)
        {
          _elem212 = new TSlotDescriptor();
          _elem212.read(iprot);
          struct.slot_descs.add(_elem212);
        }
      }
      struct.setSlotDescsIsSet(true);
      struct.tuple_desc = new TTupleDescriptor();
      struct.tuple_desc.read(iprot);
      struct.setTupleDescIsSet(true);
      {
        org.apache.thrift.protocol.TList _list214 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
        struct.indexes = new java.util.ArrayList<TOlapTableIndexSchema>(_list214.size);
        @org.apache.thrift.annotation.Nullable TOlapTableIndexSchema _elem215;
        for (int _i216 = 0; _i216 < _list214.size; ++_i216)
        {
          _elem215 = new TOlapTableIndexSchema();
          _elem215.read(iprot);
          struct.indexes.add(_elem215);
        }
      }
      struct.setIndexesIsSet(true);
      java.util.BitSet incoming = iprot.readBitSet(10);
      if (incoming.get(0)) {
        struct.is_dynamic_schema = iprot.readBool();
        struct.setIsDynamicSchemaIsSet(true);
      }
      if (incoming.get(1)) {
        struct.is_partial_update = iprot.readBool();
        struct.setIsPartialUpdateIsSet(true);
      }
      if (incoming.get(2)) {
        {
          org.apache.thrift.protocol.TList _list217 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.partial_update_input_columns = new java.util.ArrayList<java.lang.String>(_list217.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem218;
          for (int _i219 = 0; _i219 < _list217.size; ++_i219)
          {
            _elem218 = iprot.readString();
            struct.partial_update_input_columns.add(_elem218);
          }
        }
        struct.setPartialUpdateInputColumnsIsSet(true);
      }
      if (incoming.get(3)) {
        struct.is_strict_mode = iprot.readBool();
        struct.setIsStrictModeIsSet(true);
      }
      if (incoming.get(4)) {
        struct.auto_increment_column = iprot.readString();
        struct.setAutoIncrementColumnIsSet(true);
      }
      if (incoming.get(5)) {
        struct.auto_increment_column_unique_id = iprot.readI32();
        struct.setAutoIncrementColumnUniqueIdIsSet(true);
      }
      if (incoming.get(6)) {
        struct.inverted_index_file_storage_format = org.apache.doris.thrift.TInvertedIndexFileStorageFormat.findByValue(iprot.readI32());
        struct.setInvertedIndexFileStorageFormatIsSet(true);
      }
      if (incoming.get(7)) {
        struct.unique_key_update_mode = org.apache.doris.thrift.TUniqueKeyUpdateMode.findByValue(iprot.readI32());
        struct.setUniqueKeyUpdateModeIsSet(true);
      }
      if (incoming.get(8)) {
        struct.sequence_map_col_unique_id = iprot.readI32();
        struct.setSequenceMapColUniqueIdIsSet(true);
      }
      if (incoming.get(9)) {
        struct.partial_update_new_key_policy = org.apache.doris.thrift.TPartialUpdateNewRowPolicy.findByValue(iprot.readI32());
        struct.setPartialUpdateNewKeyPolicyIsSet(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();
  }
}