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

  private static final org.apache.thrift.protocol.TField SHORT_KEY_COLUMN_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("short_key_column_count", org.apache.thrift.protocol.TType.I16, (short)1);
  private static final org.apache.thrift.protocol.TField SCHEMA_HASH_FIELD_DESC = new org.apache.thrift.protocol.TField("schema_hash", org.apache.thrift.protocol.TType.I32, (short)2);
  private static final org.apache.thrift.protocol.TField KEYS_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("keys_type", org.apache.thrift.protocol.TType.I32, (short)3);
  private static final org.apache.thrift.protocol.TField STORAGE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("storage_type", org.apache.thrift.protocol.TType.I32, (short)4);
  private static final org.apache.thrift.protocol.TField COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("columns", org.apache.thrift.protocol.TType.LIST, (short)5);
  private static final org.apache.thrift.protocol.TField BLOOM_FILTER_FPP_FIELD_DESC = new org.apache.thrift.protocol.TField("bloom_filter_fpp", org.apache.thrift.protocol.TType.DOUBLE, (short)6);
  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)7);
  private static final org.apache.thrift.protocol.TField IS_IN_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("is_in_memory", org.apache.thrift.protocol.TType.BOOL, (short)8);
  private static final org.apache.thrift.protocol.TField DELETE_SIGN_IDX_FIELD_DESC = new org.apache.thrift.protocol.TField("delete_sign_idx", org.apache.thrift.protocol.TType.I32, (short)9);
  private static final org.apache.thrift.protocol.TField SEQUENCE_COL_IDX_FIELD_DESC = new org.apache.thrift.protocol.TField("sequence_col_idx", org.apache.thrift.protocol.TType.I32, (short)10);
  private static final org.apache.thrift.protocol.TField SORT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("sort_type", org.apache.thrift.protocol.TType.I32, (short)11);
  private static final org.apache.thrift.protocol.TField SORT_COL_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("sort_col_num", org.apache.thrift.protocol.TType.I32, (short)12);
  private static final org.apache.thrift.protocol.TField DISABLE_AUTO_COMPACTION_FIELD_DESC = new org.apache.thrift.protocol.TField("disable_auto_compaction", org.apache.thrift.protocol.TType.BOOL, (short)13);
  private static final org.apache.thrift.protocol.TField VERSION_COL_IDX_FIELD_DESC = new org.apache.thrift.protocol.TField("version_col_idx", org.apache.thrift.protocol.TType.I32, (short)14);
  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)15);
  private static final org.apache.thrift.protocol.TField STORE_ROW_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("store_row_column", org.apache.thrift.protocol.TType.BOOL, (short)16);
  private static final org.apache.thrift.protocol.TField ENABLE_SINGLE_REPLICA_COMPACTION_FIELD_DESC = new org.apache.thrift.protocol.TField("enable_single_replica_compaction", org.apache.thrift.protocol.TType.BOOL, (short)17);
  private static final org.apache.thrift.protocol.TField SKIP_WRITE_INDEX_ON_LOAD_FIELD_DESC = new org.apache.thrift.protocol.TField("skip_write_index_on_load", org.apache.thrift.protocol.TType.BOOL, (short)18);
  private static final org.apache.thrift.protocol.TField CLUSTER_KEY_UIDS_FIELD_DESC = new org.apache.thrift.protocol.TField("cluster_key_uids", org.apache.thrift.protocol.TType.LIST, (short)19);
  private static final org.apache.thrift.protocol.TField ROW_STORE_COL_CIDS_FIELD_DESC = new org.apache.thrift.protocol.TField("row_store_col_cids", org.apache.thrift.protocol.TType.LIST, (short)20);
  private static final org.apache.thrift.protocol.TField ROW_STORE_PAGE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("row_store_page_size", org.apache.thrift.protocol.TType.I64, (short)21);
  private static final org.apache.thrift.protocol.TField VARIANT_ENABLE_FLATTEN_NESTED_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_enable_flatten_nested", org.apache.thrift.protocol.TType.BOOL, (short)22);
  private static final org.apache.thrift.protocol.TField STORAGE_PAGE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("storage_page_size", org.apache.thrift.protocol.TType.I64, (short)23);
  private static final org.apache.thrift.protocol.TField STORAGE_DICT_PAGE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("storage_dict_page_size", org.apache.thrift.protocol.TType.I64, (short)24);

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

  public short short_key_column_count; // required
  public int schema_hash; // required
  /**
   * 
   * @see org.apache.doris.thrift.TKeysType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TKeysType keys_type; // required
  /**
   * 
   * @see org.apache.doris.thrift.TStorageType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TStorageType storage_type; // required
  public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TColumn> columns; // required
  public double bloom_filter_fpp; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TOlapTableIndex> indexes; // optional
  public boolean is_in_memory; // optional
  public int delete_sign_idx; // optional
  public int sequence_col_idx; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TSortType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TSortType sort_type; // optional
  public int sort_col_num; // optional
  public boolean disable_auto_compaction; // optional
  public int version_col_idx; // optional
  public boolean is_dynamic_schema; // optional
  public boolean store_row_column; // optional
  public boolean enable_single_replica_compaction; // optional
  public boolean skip_write_index_on_load; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.Integer> cluster_key_uids; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.Integer> row_store_col_cids; // optional
  public long row_store_page_size; // optional
  public boolean variant_enable_flatten_nested; // optional
  public long storage_page_size; // optional
  public long storage_dict_page_size; // 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 {
    SHORT_KEY_COLUMN_COUNT((short)1, "short_key_column_count"),
    SCHEMA_HASH((short)2, "schema_hash"),
    /**
     * 
     * @see org.apache.doris.thrift.TKeysType
     */
    KEYS_TYPE((short)3, "keys_type"),
    /**
     * 
     * @see org.apache.doris.thrift.TStorageType
     */
    STORAGE_TYPE((short)4, "storage_type"),
    COLUMNS((short)5, "columns"),
    BLOOM_FILTER_FPP((short)6, "bloom_filter_fpp"),
    INDEXES((short)7, "indexes"),
    IS_IN_MEMORY((short)8, "is_in_memory"),
    DELETE_SIGN_IDX((short)9, "delete_sign_idx"),
    SEQUENCE_COL_IDX((short)10, "sequence_col_idx"),
    /**
     * 
     * @see org.apache.doris.thrift.TSortType
     */
    SORT_TYPE((short)11, "sort_type"),
    SORT_COL_NUM((short)12, "sort_col_num"),
    DISABLE_AUTO_COMPACTION((short)13, "disable_auto_compaction"),
    VERSION_COL_IDX((short)14, "version_col_idx"),
    IS_DYNAMIC_SCHEMA((short)15, "is_dynamic_schema"),
    STORE_ROW_COLUMN((short)16, "store_row_column"),
    ENABLE_SINGLE_REPLICA_COMPACTION((short)17, "enable_single_replica_compaction"),
    SKIP_WRITE_INDEX_ON_LOAD((short)18, "skip_write_index_on_load"),
    CLUSTER_KEY_UIDS((short)19, "cluster_key_uids"),
    ROW_STORE_COL_CIDS((short)20, "row_store_col_cids"),
    ROW_STORE_PAGE_SIZE((short)21, "row_store_page_size"),
    VARIANT_ENABLE_FLATTEN_NESTED((short)22, "variant_enable_flatten_nested"),
    STORAGE_PAGE_SIZE((short)23, "storage_page_size"),
    STORAGE_DICT_PAGE_SIZE((short)24, "storage_dict_page_size");

    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: // SHORT_KEY_COLUMN_COUNT
          return SHORT_KEY_COLUMN_COUNT;
        case 2: // SCHEMA_HASH
          return SCHEMA_HASH;
        case 3: // KEYS_TYPE
          return KEYS_TYPE;
        case 4: // STORAGE_TYPE
          return STORAGE_TYPE;
        case 5: // COLUMNS
          return COLUMNS;
        case 6: // BLOOM_FILTER_FPP
          return BLOOM_FILTER_FPP;
        case 7: // INDEXES
          return INDEXES;
        case 8: // IS_IN_MEMORY
          return IS_IN_MEMORY;
        case 9: // DELETE_SIGN_IDX
          return DELETE_SIGN_IDX;
        case 10: // SEQUENCE_COL_IDX
          return SEQUENCE_COL_IDX;
        case 11: // SORT_TYPE
          return SORT_TYPE;
        case 12: // SORT_COL_NUM
          return SORT_COL_NUM;
        case 13: // DISABLE_AUTO_COMPACTION
          return DISABLE_AUTO_COMPACTION;
        case 14: // VERSION_COL_IDX
          return VERSION_COL_IDX;
        case 15: // IS_DYNAMIC_SCHEMA
          return IS_DYNAMIC_SCHEMA;
        case 16: // STORE_ROW_COLUMN
          return STORE_ROW_COLUMN;
        case 17: // ENABLE_SINGLE_REPLICA_COMPACTION
          return ENABLE_SINGLE_REPLICA_COMPACTION;
        case 18: // SKIP_WRITE_INDEX_ON_LOAD
          return SKIP_WRITE_INDEX_ON_LOAD;
        case 19: // CLUSTER_KEY_UIDS
          return CLUSTER_KEY_UIDS;
        case 20: // ROW_STORE_COL_CIDS
          return ROW_STORE_COL_CIDS;
        case 21: // ROW_STORE_PAGE_SIZE
          return ROW_STORE_PAGE_SIZE;
        case 22: // VARIANT_ENABLE_FLATTEN_NESTED
          return VARIANT_ENABLE_FLATTEN_NESTED;
        case 23: // STORAGE_PAGE_SIZE
          return STORAGE_PAGE_SIZE;
        case 24: // STORAGE_DICT_PAGE_SIZE
          return STORAGE_DICT_PAGE_SIZE;
        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 __SHORT_KEY_COLUMN_COUNT_ISSET_ID = 0;
  private static final int __SCHEMA_HASH_ISSET_ID = 1;
  private static final int __BLOOM_FILTER_FPP_ISSET_ID = 2;
  private static final int __IS_IN_MEMORY_ISSET_ID = 3;
  private static final int __DELETE_SIGN_IDX_ISSET_ID = 4;
  private static final int __SEQUENCE_COL_IDX_ISSET_ID = 5;
  private static final int __SORT_COL_NUM_ISSET_ID = 6;
  private static final int __DISABLE_AUTO_COMPACTION_ISSET_ID = 7;
  private static final int __VERSION_COL_IDX_ISSET_ID = 8;
  private static final int __IS_DYNAMIC_SCHEMA_ISSET_ID = 9;
  private static final int __STORE_ROW_COLUMN_ISSET_ID = 10;
  private static final int __ENABLE_SINGLE_REPLICA_COMPACTION_ISSET_ID = 11;
  private static final int __SKIP_WRITE_INDEX_ON_LOAD_ISSET_ID = 12;
  private static final int __ROW_STORE_PAGE_SIZE_ISSET_ID = 13;
  private static final int __VARIANT_ENABLE_FLATTEN_NESTED_ISSET_ID = 14;
  private static final int __STORAGE_PAGE_SIZE_ISSET_ID = 15;
  private static final int __STORAGE_DICT_PAGE_SIZE_ISSET_ID = 16;
  private int __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.BLOOM_FILTER_FPP,_Fields.INDEXES,_Fields.IS_IN_MEMORY,_Fields.DELETE_SIGN_IDX,_Fields.SEQUENCE_COL_IDX,_Fields.SORT_TYPE,_Fields.SORT_COL_NUM,_Fields.DISABLE_AUTO_COMPACTION,_Fields.VERSION_COL_IDX,_Fields.IS_DYNAMIC_SCHEMA,_Fields.STORE_ROW_COLUMN,_Fields.ENABLE_SINGLE_REPLICA_COMPACTION,_Fields.SKIP_WRITE_INDEX_ON_LOAD,_Fields.CLUSTER_KEY_UIDS,_Fields.ROW_STORE_COL_CIDS,_Fields.ROW_STORE_PAGE_SIZE,_Fields.VARIANT_ENABLE_FLATTEN_NESTED,_Fields.STORAGE_PAGE_SIZE,_Fields.STORAGE_DICT_PAGE_SIZE};
  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.SHORT_KEY_COLUMN_COUNT, new org.apache.thrift.meta_data.FieldMetaData("short_key_column_count", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
    tmpMap.put(_Fields.SCHEMA_HASH, new org.apache.thrift.meta_data.FieldMetaData("schema_hash", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32        , "TSchemaHash")));
    tmpMap.put(_Fields.KEYS_TYPE, new org.apache.thrift.meta_data.FieldMetaData("keys_type", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TKeysType.class)));
    tmpMap.put(_Fields.STORAGE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("storage_type", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TStorageType.class)));
    tmpMap.put(_Fields.COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("columns", 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, org.apache.doris.thrift.TColumn.class))));
    tmpMap.put(_Fields.BLOOM_FILTER_FPP, new org.apache.thrift.meta_data.FieldMetaData("bloom_filter_fpp", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
    tmpMap.put(_Fields.INDEXES, new org.apache.thrift.meta_data.FieldMetaData("indexes", 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.TOlapTableIndex.class))));
    tmpMap.put(_Fields.IS_IN_MEMORY, new org.apache.thrift.meta_data.FieldMetaData("is_in_memory", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.DELETE_SIGN_IDX, new org.apache.thrift.meta_data.FieldMetaData("delete_sign_idx", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.SEQUENCE_COL_IDX, new org.apache.thrift.meta_data.FieldMetaData("sequence_col_idx", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.SORT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("sort_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TSortType.class)));
    tmpMap.put(_Fields.SORT_COL_NUM, new org.apache.thrift.meta_data.FieldMetaData("sort_col_num", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.DISABLE_AUTO_COMPACTION, new org.apache.thrift.meta_data.FieldMetaData("disable_auto_compaction", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.VERSION_COL_IDX, new org.apache.thrift.meta_data.FieldMetaData("version_col_idx", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    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.STORE_ROW_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("store_row_column", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.ENABLE_SINGLE_REPLICA_COMPACTION, new org.apache.thrift.meta_data.FieldMetaData("enable_single_replica_compaction", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.SKIP_WRITE_INDEX_ON_LOAD, new org.apache.thrift.meta_data.FieldMetaData("skip_write_index_on_load", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.CLUSTER_KEY_UIDS, new org.apache.thrift.meta_data.FieldMetaData("cluster_key_uids", 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.I32))));
    tmpMap.put(_Fields.ROW_STORE_COL_CIDS, new org.apache.thrift.meta_data.FieldMetaData("row_store_col_cids", 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.I32))));
    tmpMap.put(_Fields.ROW_STORE_PAGE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("row_store_page_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.VARIANT_ENABLE_FLATTEN_NESTED, new org.apache.thrift.meta_data.FieldMetaData("variant_enable_flatten_nested", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.STORAGE_PAGE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("storage_page_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.STORAGE_DICT_PAGE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("storage_dict_page_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TTabletSchema.class, metaDataMap);
  }

  public TTabletSchema() {
    this.delete_sign_idx = -1;

    this.sequence_col_idx = -1;

    this.version_col_idx = -1;

    this.is_dynamic_schema = false;

    this.store_row_column = false;

    this.enable_single_replica_compaction = false;

    this.skip_write_index_on_load = false;

    this.row_store_page_size = 16384L;

    this.variant_enable_flatten_nested = false;

    this.storage_page_size = 65536L;

    this.storage_dict_page_size = 262144L;

  }

  public TTabletSchema(
    short short_key_column_count,
    int schema_hash,
    org.apache.doris.thrift.TKeysType keys_type,
    org.apache.doris.thrift.TStorageType storage_type,
    java.util.List<org.apache.doris.thrift.TColumn> columns)
  {
    this();
    this.short_key_column_count = short_key_column_count;
    setShortKeyColumnCountIsSet(true);
    this.schema_hash = schema_hash;
    setSchemaHashIsSet(true);
    this.keys_type = keys_type;
    this.storage_type = storage_type;
    this.columns = columns;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TTabletSchema(TTabletSchema other) {
    __isset_bitfield = other.__isset_bitfield;
    this.short_key_column_count = other.short_key_column_count;
    this.schema_hash = other.schema_hash;
    if (other.isSetKeysType()) {
      this.keys_type = other.keys_type;
    }
    if (other.isSetStorageType()) {
      this.storage_type = other.storage_type;
    }
    if (other.isSetColumns()) {
      java.util.List<org.apache.doris.thrift.TColumn> __this__columns = new java.util.ArrayList<org.apache.doris.thrift.TColumn>(other.columns.size());
      for (org.apache.doris.thrift.TColumn other_element : other.columns) {
        __this__columns.add(new org.apache.doris.thrift.TColumn(other_element));
      }
      this.columns = __this__columns;
    }
    this.bloom_filter_fpp = other.bloom_filter_fpp;
    if (other.isSetIndexes()) {
      java.util.List<org.apache.doris.thrift.TOlapTableIndex> __this__indexes = new java.util.ArrayList<org.apache.doris.thrift.TOlapTableIndex>(other.indexes.size());
      for (org.apache.doris.thrift.TOlapTableIndex other_element : other.indexes) {
        __this__indexes.add(new org.apache.doris.thrift.TOlapTableIndex(other_element));
      }
      this.indexes = __this__indexes;
    }
    this.is_in_memory = other.is_in_memory;
    this.delete_sign_idx = other.delete_sign_idx;
    this.sequence_col_idx = other.sequence_col_idx;
    if (other.isSetSortType()) {
      this.sort_type = other.sort_type;
    }
    this.sort_col_num = other.sort_col_num;
    this.disable_auto_compaction = other.disable_auto_compaction;
    this.version_col_idx = other.version_col_idx;
    this.is_dynamic_schema = other.is_dynamic_schema;
    this.store_row_column = other.store_row_column;
    this.enable_single_replica_compaction = other.enable_single_replica_compaction;
    this.skip_write_index_on_load = other.skip_write_index_on_load;
    if (other.isSetClusterKeyUids()) {
      java.util.List<java.lang.Integer> __this__cluster_key_uids = new java.util.ArrayList<java.lang.Integer>(other.cluster_key_uids);
      this.cluster_key_uids = __this__cluster_key_uids;
    }
    if (other.isSetRowStoreColCids()) {
      java.util.List<java.lang.Integer> __this__row_store_col_cids = new java.util.ArrayList<java.lang.Integer>(other.row_store_col_cids);
      this.row_store_col_cids = __this__row_store_col_cids;
    }
    this.row_store_page_size = other.row_store_page_size;
    this.variant_enable_flatten_nested = other.variant_enable_flatten_nested;
    this.storage_page_size = other.storage_page_size;
    this.storage_dict_page_size = other.storage_dict_page_size;
  }

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

  @Override
  public void clear() {
    setShortKeyColumnCountIsSet(false);
    this.short_key_column_count = 0;
    setSchemaHashIsSet(false);
    this.schema_hash = 0;
    this.keys_type = null;
    this.storage_type = null;
    this.columns = null;
    setBloomFilterFppIsSet(false);
    this.bloom_filter_fpp = 0.0;
    this.indexes = null;
    setIsInMemoryIsSet(false);
    this.is_in_memory = false;
    this.delete_sign_idx = -1;

    this.sequence_col_idx = -1;

    this.sort_type = null;
    setSortColNumIsSet(false);
    this.sort_col_num = 0;
    setDisableAutoCompactionIsSet(false);
    this.disable_auto_compaction = false;
    this.version_col_idx = -1;

    this.is_dynamic_schema = false;

    this.store_row_column = false;

    this.enable_single_replica_compaction = false;

    this.skip_write_index_on_load = false;

    this.cluster_key_uids = null;
    this.row_store_col_cids = null;
    this.row_store_page_size = 16384L;

    this.variant_enable_flatten_nested = false;

    this.storage_page_size = 65536L;

    this.storage_dict_page_size = 262144L;

  }

  public short getShortKeyColumnCount() {
    return this.short_key_column_count;
  }

  public TTabletSchema setShortKeyColumnCount(short short_key_column_count) {
    this.short_key_column_count = short_key_column_count;
    setShortKeyColumnCountIsSet(true);
    return this;
  }

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

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

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

  public int getSchemaHash() {
    return this.schema_hash;
  }

  public TTabletSchema setSchemaHash(int schema_hash) {
    this.schema_hash = schema_hash;
    setSchemaHashIsSet(true);
    return this;
  }

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

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

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

  /**
   * 
   * @see org.apache.doris.thrift.TKeysType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TKeysType getKeysType() {
    return this.keys_type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TKeysType
   */
  public TTabletSchema setKeysType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TKeysType keys_type) {
    this.keys_type = keys_type;
    return this;
  }

  public void unsetKeysType() {
    this.keys_type = null;
  }

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

  public void setKeysTypeIsSet(boolean value) {
    if (!value) {
      this.keys_type = null;
    }
  }

  /**
   * 
   * @see org.apache.doris.thrift.TStorageType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TStorageType getStorageType() {
    return this.storage_type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TStorageType
   */
  public TTabletSchema setStorageType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TStorageType storage_type) {
    this.storage_type = storage_type;
    return this;
  }

  public void unsetStorageType() {
    this.storage_type = null;
  }

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

  public void setStorageTypeIsSet(boolean value) {
    if (!value) {
      this.storage_type = null;
    }
  }

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

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

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

  @org.apache.thrift.annotation.Nullable
  public java.util.List<org.apache.doris.thrift.TColumn> getColumns() {
    return this.columns;
  }

  public TTabletSchema setColumns(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TColumn> columns) {
    this.columns = columns;
    return this;
  }

  public void unsetColumns() {
    this.columns = null;
  }

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

  public void setColumnsIsSet(boolean value) {
    if (!value) {
      this.columns = null;
    }
  }

  public double getBloomFilterFpp() {
    return this.bloom_filter_fpp;
  }

  public TTabletSchema setBloomFilterFpp(double bloom_filter_fpp) {
    this.bloom_filter_fpp = bloom_filter_fpp;
    setBloomFilterFppIsSet(true);
    return this;
  }

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

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

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

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

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

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

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

  public TTabletSchema setIndexes(@org.apache.thrift.annotation.Nullable java.util.List<org.apache.doris.thrift.TOlapTableIndex> 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 isIsInMemory() {
    return this.is_in_memory;
  }

  public TTabletSchema setIsInMemory(boolean is_in_memory) {
    this.is_in_memory = is_in_memory;
    setIsInMemoryIsSet(true);
    return this;
  }

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

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

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

  public int getDeleteSignIdx() {
    return this.delete_sign_idx;
  }

  public TTabletSchema setDeleteSignIdx(int delete_sign_idx) {
    this.delete_sign_idx = delete_sign_idx;
    setDeleteSignIdxIsSet(true);
    return this;
  }

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

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

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

  public int getSequenceColIdx() {
    return this.sequence_col_idx;
  }

  public TTabletSchema setSequenceColIdx(int sequence_col_idx) {
    this.sequence_col_idx = sequence_col_idx;
    setSequenceColIdxIsSet(true);
    return this;
  }

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

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

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

  /**
   * 
   * @see org.apache.doris.thrift.TSortType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TSortType getSortType() {
    return this.sort_type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TSortType
   */
  public TTabletSchema setSortType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TSortType sort_type) {
    this.sort_type = sort_type;
    return this;
  }

  public void unsetSortType() {
    this.sort_type = null;
  }

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

  public void setSortTypeIsSet(boolean value) {
    if (!value) {
      this.sort_type = null;
    }
  }

  public int getSortColNum() {
    return this.sort_col_num;
  }

  public TTabletSchema setSortColNum(int sort_col_num) {
    this.sort_col_num = sort_col_num;
    setSortColNumIsSet(true);
    return this;
  }

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

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

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

  public boolean isDisableAutoCompaction() {
    return this.disable_auto_compaction;
  }

  public TTabletSchema setDisableAutoCompaction(boolean disable_auto_compaction) {
    this.disable_auto_compaction = disable_auto_compaction;
    setDisableAutoCompactionIsSet(true);
    return this;
  }

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

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

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

  public int getVersionColIdx() {
    return this.version_col_idx;
  }

  public TTabletSchema setVersionColIdx(int version_col_idx) {
    this.version_col_idx = version_col_idx;
    setVersionColIdxIsSet(true);
    return this;
  }

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

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

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

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

  public TTabletSchema 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 isStoreRowColumn() {
    return this.store_row_column;
  }

  public TTabletSchema setStoreRowColumn(boolean store_row_column) {
    this.store_row_column = store_row_column;
    setStoreRowColumnIsSet(true);
    return this;
  }

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

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

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

  public boolean isEnableSingleReplicaCompaction() {
    return this.enable_single_replica_compaction;
  }

  public TTabletSchema setEnableSingleReplicaCompaction(boolean enable_single_replica_compaction) {
    this.enable_single_replica_compaction = enable_single_replica_compaction;
    setEnableSingleReplicaCompactionIsSet(true);
    return this;
  }

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

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

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

  public boolean isSkipWriteIndexOnLoad() {
    return this.skip_write_index_on_load;
  }

  public TTabletSchema setSkipWriteIndexOnLoad(boolean skip_write_index_on_load) {
    this.skip_write_index_on_load = skip_write_index_on_load;
    setSkipWriteIndexOnLoadIsSet(true);
    return this;
  }

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

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

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

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

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

  public void addToClusterKeyUids(int elem) {
    if (this.cluster_key_uids == null) {
      this.cluster_key_uids = new java.util.ArrayList<java.lang.Integer>();
    }
    this.cluster_key_uids.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.Integer> getClusterKeyUids() {
    return this.cluster_key_uids;
  }

  public TTabletSchema setClusterKeyUids(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.Integer> cluster_key_uids) {
    this.cluster_key_uids = cluster_key_uids;
    return this;
  }

  public void unsetClusterKeyUids() {
    this.cluster_key_uids = null;
  }

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

  public void setClusterKeyUidsIsSet(boolean value) {
    if (!value) {
      this.cluster_key_uids = null;
    }
  }

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

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

  public void addToRowStoreColCids(int elem) {
    if (this.row_store_col_cids == null) {
      this.row_store_col_cids = new java.util.ArrayList<java.lang.Integer>();
    }
    this.row_store_col_cids.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.Integer> getRowStoreColCids() {
    return this.row_store_col_cids;
  }

  public TTabletSchema setRowStoreColCids(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.Integer> row_store_col_cids) {
    this.row_store_col_cids = row_store_col_cids;
    return this;
  }

  public void unsetRowStoreColCids() {
    this.row_store_col_cids = null;
  }

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

  public void setRowStoreColCidsIsSet(boolean value) {
    if (!value) {
      this.row_store_col_cids = null;
    }
  }

  public long getRowStorePageSize() {
    return this.row_store_page_size;
  }

  public TTabletSchema setRowStorePageSize(long row_store_page_size) {
    this.row_store_page_size = row_store_page_size;
    setRowStorePageSizeIsSet(true);
    return this;
  }

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

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

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

  public boolean isVariantEnableFlattenNested() {
    return this.variant_enable_flatten_nested;
  }

  public TTabletSchema setVariantEnableFlattenNested(boolean variant_enable_flatten_nested) {
    this.variant_enable_flatten_nested = variant_enable_flatten_nested;
    setVariantEnableFlattenNestedIsSet(true);
    return this;
  }

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

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

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

  public long getStoragePageSize() {
    return this.storage_page_size;
  }

  public TTabletSchema setStoragePageSize(long storage_page_size) {
    this.storage_page_size = storage_page_size;
    setStoragePageSizeIsSet(true);
    return this;
  }

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

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

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

  public long getStorageDictPageSize() {
    return this.storage_dict_page_size;
  }

  public TTabletSchema setStorageDictPageSize(long storage_dict_page_size) {
    this.storage_dict_page_size = storage_dict_page_size;
    setStorageDictPageSizeIsSet(true);
    return this;
  }

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

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

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

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case SHORT_KEY_COLUMN_COUNT:
      if (value == null) {
        unsetShortKeyColumnCount();
      } else {
        setShortKeyColumnCount((java.lang.Short)value);
      }
      break;

    case SCHEMA_HASH:
      if (value == null) {
        unsetSchemaHash();
      } else {
        setSchemaHash((java.lang.Integer)value);
      }
      break;

    case KEYS_TYPE:
      if (value == null) {
        unsetKeysType();
      } else {
        setKeysType((org.apache.doris.thrift.TKeysType)value);
      }
      break;

    case STORAGE_TYPE:
      if (value == null) {
        unsetStorageType();
      } else {
        setStorageType((org.apache.doris.thrift.TStorageType)value);
      }
      break;

    case COLUMNS:
      if (value == null) {
        unsetColumns();
      } else {
        setColumns((java.util.List<org.apache.doris.thrift.TColumn>)value);
      }
      break;

    case BLOOM_FILTER_FPP:
      if (value == null) {
        unsetBloomFilterFpp();
      } else {
        setBloomFilterFpp((java.lang.Double)value);
      }
      break;

    case INDEXES:
      if (value == null) {
        unsetIndexes();
      } else {
        setIndexes((java.util.List<org.apache.doris.thrift.TOlapTableIndex>)value);
      }
      break;

    case IS_IN_MEMORY:
      if (value == null) {
        unsetIsInMemory();
      } else {
        setIsInMemory((java.lang.Boolean)value);
      }
      break;

    case DELETE_SIGN_IDX:
      if (value == null) {
        unsetDeleteSignIdx();
      } else {
        setDeleteSignIdx((java.lang.Integer)value);
      }
      break;

    case SEQUENCE_COL_IDX:
      if (value == null) {
        unsetSequenceColIdx();
      } else {
        setSequenceColIdx((java.lang.Integer)value);
      }
      break;

    case SORT_TYPE:
      if (value == null) {
        unsetSortType();
      } else {
        setSortType((org.apache.doris.thrift.TSortType)value);
      }
      break;

    case SORT_COL_NUM:
      if (value == null) {
        unsetSortColNum();
      } else {
        setSortColNum((java.lang.Integer)value);
      }
      break;

    case DISABLE_AUTO_COMPACTION:
      if (value == null) {
        unsetDisableAutoCompaction();
      } else {
        setDisableAutoCompaction((java.lang.Boolean)value);
      }
      break;

    case VERSION_COL_IDX:
      if (value == null) {
        unsetVersionColIdx();
      } else {
        setVersionColIdx((java.lang.Integer)value);
      }
      break;

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

    case STORE_ROW_COLUMN:
      if (value == null) {
        unsetStoreRowColumn();
      } else {
        setStoreRowColumn((java.lang.Boolean)value);
      }
      break;

    case ENABLE_SINGLE_REPLICA_COMPACTION:
      if (value == null) {
        unsetEnableSingleReplicaCompaction();
      } else {
        setEnableSingleReplicaCompaction((java.lang.Boolean)value);
      }
      break;

    case SKIP_WRITE_INDEX_ON_LOAD:
      if (value == null) {
        unsetSkipWriteIndexOnLoad();
      } else {
        setSkipWriteIndexOnLoad((java.lang.Boolean)value);
      }
      break;

    case CLUSTER_KEY_UIDS:
      if (value == null) {
        unsetClusterKeyUids();
      } else {
        setClusterKeyUids((java.util.List<java.lang.Integer>)value);
      }
      break;

    case ROW_STORE_COL_CIDS:
      if (value == null) {
        unsetRowStoreColCids();
      } else {
        setRowStoreColCids((java.util.List<java.lang.Integer>)value);
      }
      break;

    case ROW_STORE_PAGE_SIZE:
      if (value == null) {
        unsetRowStorePageSize();
      } else {
        setRowStorePageSize((java.lang.Long)value);
      }
      break;

    case VARIANT_ENABLE_FLATTEN_NESTED:
      if (value == null) {
        unsetVariantEnableFlattenNested();
      } else {
        setVariantEnableFlattenNested((java.lang.Boolean)value);
      }
      break;

    case STORAGE_PAGE_SIZE:
      if (value == null) {
        unsetStoragePageSize();
      } else {
        setStoragePageSize((java.lang.Long)value);
      }
      break;

    case STORAGE_DICT_PAGE_SIZE:
      if (value == null) {
        unsetStorageDictPageSize();
      } else {
        setStorageDictPageSize((java.lang.Long)value);
      }
      break;

    }
  }

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

    case SCHEMA_HASH:
      return getSchemaHash();

    case KEYS_TYPE:
      return getKeysType();

    case STORAGE_TYPE:
      return getStorageType();

    case COLUMNS:
      return getColumns();

    case BLOOM_FILTER_FPP:
      return getBloomFilterFpp();

    case INDEXES:
      return getIndexes();

    case IS_IN_MEMORY:
      return isIsInMemory();

    case DELETE_SIGN_IDX:
      return getDeleteSignIdx();

    case SEQUENCE_COL_IDX:
      return getSequenceColIdx();

    case SORT_TYPE:
      return getSortType();

    case SORT_COL_NUM:
      return getSortColNum();

    case DISABLE_AUTO_COMPACTION:
      return isDisableAutoCompaction();

    case VERSION_COL_IDX:
      return getVersionColIdx();

    case IS_DYNAMIC_SCHEMA:
      return isIsDynamicSchema();

    case STORE_ROW_COLUMN:
      return isStoreRowColumn();

    case ENABLE_SINGLE_REPLICA_COMPACTION:
      return isEnableSingleReplicaCompaction();

    case SKIP_WRITE_INDEX_ON_LOAD:
      return isSkipWriteIndexOnLoad();

    case CLUSTER_KEY_UIDS:
      return getClusterKeyUids();

    case ROW_STORE_COL_CIDS:
      return getRowStoreColCids();

    case ROW_STORE_PAGE_SIZE:
      return getRowStorePageSize();

    case VARIANT_ENABLE_FLATTEN_NESTED:
      return isVariantEnableFlattenNested();

    case STORAGE_PAGE_SIZE:
      return getStoragePageSize();

    case STORAGE_DICT_PAGE_SIZE:
      return getStorageDictPageSize();

    }
    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 SHORT_KEY_COLUMN_COUNT:
      return isSetShortKeyColumnCount();
    case SCHEMA_HASH:
      return isSetSchemaHash();
    case KEYS_TYPE:
      return isSetKeysType();
    case STORAGE_TYPE:
      return isSetStorageType();
    case COLUMNS:
      return isSetColumns();
    case BLOOM_FILTER_FPP:
      return isSetBloomFilterFpp();
    case INDEXES:
      return isSetIndexes();
    case IS_IN_MEMORY:
      return isSetIsInMemory();
    case DELETE_SIGN_IDX:
      return isSetDeleteSignIdx();
    case SEQUENCE_COL_IDX:
      return isSetSequenceColIdx();
    case SORT_TYPE:
      return isSetSortType();
    case SORT_COL_NUM:
      return isSetSortColNum();
    case DISABLE_AUTO_COMPACTION:
      return isSetDisableAutoCompaction();
    case VERSION_COL_IDX:
      return isSetVersionColIdx();
    case IS_DYNAMIC_SCHEMA:
      return isSetIsDynamicSchema();
    case STORE_ROW_COLUMN:
      return isSetStoreRowColumn();
    case ENABLE_SINGLE_REPLICA_COMPACTION:
      return isSetEnableSingleReplicaCompaction();
    case SKIP_WRITE_INDEX_ON_LOAD:
      return isSetSkipWriteIndexOnLoad();
    case CLUSTER_KEY_UIDS:
      return isSetClusterKeyUids();
    case ROW_STORE_COL_CIDS:
      return isSetRowStoreColCids();
    case ROW_STORE_PAGE_SIZE:
      return isSetRowStorePageSize();
    case VARIANT_ENABLE_FLATTEN_NESTED:
      return isSetVariantEnableFlattenNested();
    case STORAGE_PAGE_SIZE:
      return isSetStoragePageSize();
    case STORAGE_DICT_PAGE_SIZE:
      return isSetStorageDictPageSize();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    boolean this_present_short_key_column_count = true;
    boolean that_present_short_key_column_count = true;
    if (this_present_short_key_column_count || that_present_short_key_column_count) {
      if (!(this_present_short_key_column_count && that_present_short_key_column_count))
        return false;
      if (this.short_key_column_count != that.short_key_column_count)
        return false;
    }

    boolean this_present_schema_hash = true;
    boolean that_present_schema_hash = true;
    if (this_present_schema_hash || that_present_schema_hash) {
      if (!(this_present_schema_hash && that_present_schema_hash))
        return false;
      if (this.schema_hash != that.schema_hash)
        return false;
    }

    boolean this_present_keys_type = true && this.isSetKeysType();
    boolean that_present_keys_type = true && that.isSetKeysType();
    if (this_present_keys_type || that_present_keys_type) {
      if (!(this_present_keys_type && that_present_keys_type))
        return false;
      if (!this.keys_type.equals(that.keys_type))
        return false;
    }

    boolean this_present_storage_type = true && this.isSetStorageType();
    boolean that_present_storage_type = true && that.isSetStorageType();
    if (this_present_storage_type || that_present_storage_type) {
      if (!(this_present_storage_type && that_present_storage_type))
        return false;
      if (!this.storage_type.equals(that.storage_type))
        return false;
    }

    boolean this_present_columns = true && this.isSetColumns();
    boolean that_present_columns = true && that.isSetColumns();
    if (this_present_columns || that_present_columns) {
      if (!(this_present_columns && that_present_columns))
        return false;
      if (!this.columns.equals(that.columns))
        return false;
    }

    boolean this_present_bloom_filter_fpp = true && this.isSetBloomFilterFpp();
    boolean that_present_bloom_filter_fpp = true && that.isSetBloomFilterFpp();
    if (this_present_bloom_filter_fpp || that_present_bloom_filter_fpp) {
      if (!(this_present_bloom_filter_fpp && that_present_bloom_filter_fpp))
        return false;
      if (this.bloom_filter_fpp != that.bloom_filter_fpp)
        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_in_memory = true && this.isSetIsInMemory();
    boolean that_present_is_in_memory = true && that.isSetIsInMemory();
    if (this_present_is_in_memory || that_present_is_in_memory) {
      if (!(this_present_is_in_memory && that_present_is_in_memory))
        return false;
      if (this.is_in_memory != that.is_in_memory)
        return false;
    }

    boolean this_present_delete_sign_idx = true && this.isSetDeleteSignIdx();
    boolean that_present_delete_sign_idx = true && that.isSetDeleteSignIdx();
    if (this_present_delete_sign_idx || that_present_delete_sign_idx) {
      if (!(this_present_delete_sign_idx && that_present_delete_sign_idx))
        return false;
      if (this.delete_sign_idx != that.delete_sign_idx)
        return false;
    }

    boolean this_present_sequence_col_idx = true && this.isSetSequenceColIdx();
    boolean that_present_sequence_col_idx = true && that.isSetSequenceColIdx();
    if (this_present_sequence_col_idx || that_present_sequence_col_idx) {
      if (!(this_present_sequence_col_idx && that_present_sequence_col_idx))
        return false;
      if (this.sequence_col_idx != that.sequence_col_idx)
        return false;
    }

    boolean this_present_sort_type = true && this.isSetSortType();
    boolean that_present_sort_type = true && that.isSetSortType();
    if (this_present_sort_type || that_present_sort_type) {
      if (!(this_present_sort_type && that_present_sort_type))
        return false;
      if (!this.sort_type.equals(that.sort_type))
        return false;
    }

    boolean this_present_sort_col_num = true && this.isSetSortColNum();
    boolean that_present_sort_col_num = true && that.isSetSortColNum();
    if (this_present_sort_col_num || that_present_sort_col_num) {
      if (!(this_present_sort_col_num && that_present_sort_col_num))
        return false;
      if (this.sort_col_num != that.sort_col_num)
        return false;
    }

    boolean this_present_disable_auto_compaction = true && this.isSetDisableAutoCompaction();
    boolean that_present_disable_auto_compaction = true && that.isSetDisableAutoCompaction();
    if (this_present_disable_auto_compaction || that_present_disable_auto_compaction) {
      if (!(this_present_disable_auto_compaction && that_present_disable_auto_compaction))
        return false;
      if (this.disable_auto_compaction != that.disable_auto_compaction)
        return false;
    }

    boolean this_present_version_col_idx = true && this.isSetVersionColIdx();
    boolean that_present_version_col_idx = true && that.isSetVersionColIdx();
    if (this_present_version_col_idx || that_present_version_col_idx) {
      if (!(this_present_version_col_idx && that_present_version_col_idx))
        return false;
      if (this.version_col_idx != that.version_col_idx)
        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_store_row_column = true && this.isSetStoreRowColumn();
    boolean that_present_store_row_column = true && that.isSetStoreRowColumn();
    if (this_present_store_row_column || that_present_store_row_column) {
      if (!(this_present_store_row_column && that_present_store_row_column))
        return false;
      if (this.store_row_column != that.store_row_column)
        return false;
    }

    boolean this_present_enable_single_replica_compaction = true && this.isSetEnableSingleReplicaCompaction();
    boolean that_present_enable_single_replica_compaction = true && that.isSetEnableSingleReplicaCompaction();
    if (this_present_enable_single_replica_compaction || that_present_enable_single_replica_compaction) {
      if (!(this_present_enable_single_replica_compaction && that_present_enable_single_replica_compaction))
        return false;
      if (this.enable_single_replica_compaction != that.enable_single_replica_compaction)
        return false;
    }

    boolean this_present_skip_write_index_on_load = true && this.isSetSkipWriteIndexOnLoad();
    boolean that_present_skip_write_index_on_load = true && that.isSetSkipWriteIndexOnLoad();
    if (this_present_skip_write_index_on_load || that_present_skip_write_index_on_load) {
      if (!(this_present_skip_write_index_on_load && that_present_skip_write_index_on_load))
        return false;
      if (this.skip_write_index_on_load != that.skip_write_index_on_load)
        return false;
    }

    boolean this_present_cluster_key_uids = true && this.isSetClusterKeyUids();
    boolean that_present_cluster_key_uids = true && that.isSetClusterKeyUids();
    if (this_present_cluster_key_uids || that_present_cluster_key_uids) {
      if (!(this_present_cluster_key_uids && that_present_cluster_key_uids))
        return false;
      if (!this.cluster_key_uids.equals(that.cluster_key_uids))
        return false;
    }

    boolean this_present_row_store_col_cids = true && this.isSetRowStoreColCids();
    boolean that_present_row_store_col_cids = true && that.isSetRowStoreColCids();
    if (this_present_row_store_col_cids || that_present_row_store_col_cids) {
      if (!(this_present_row_store_col_cids && that_present_row_store_col_cids))
        return false;
      if (!this.row_store_col_cids.equals(that.row_store_col_cids))
        return false;
    }

    boolean this_present_row_store_page_size = true && this.isSetRowStorePageSize();
    boolean that_present_row_store_page_size = true && that.isSetRowStorePageSize();
    if (this_present_row_store_page_size || that_present_row_store_page_size) {
      if (!(this_present_row_store_page_size && that_present_row_store_page_size))
        return false;
      if (this.row_store_page_size != that.row_store_page_size)
        return false;
    }

    boolean this_present_variant_enable_flatten_nested = true && this.isSetVariantEnableFlattenNested();
    boolean that_present_variant_enable_flatten_nested = true && that.isSetVariantEnableFlattenNested();
    if (this_present_variant_enable_flatten_nested || that_present_variant_enable_flatten_nested) {
      if (!(this_present_variant_enable_flatten_nested && that_present_variant_enable_flatten_nested))
        return false;
      if (this.variant_enable_flatten_nested != that.variant_enable_flatten_nested)
        return false;
    }

    boolean this_present_storage_page_size = true && this.isSetStoragePageSize();
    boolean that_present_storage_page_size = true && that.isSetStoragePageSize();
    if (this_present_storage_page_size || that_present_storage_page_size) {
      if (!(this_present_storage_page_size && that_present_storage_page_size))
        return false;
      if (this.storage_page_size != that.storage_page_size)
        return false;
    }

    boolean this_present_storage_dict_page_size = true && this.isSetStorageDictPageSize();
    boolean that_present_storage_dict_page_size = true && that.isSetStorageDictPageSize();
    if (this_present_storage_dict_page_size || that_present_storage_dict_page_size) {
      if (!(this_present_storage_dict_page_size && that_present_storage_dict_page_size))
        return false;
      if (this.storage_dict_page_size != that.storage_dict_page_size)
        return false;
    }

    return true;
  }

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

    hashCode = hashCode * 8191 + short_key_column_count;

    hashCode = hashCode * 8191 + schema_hash;

    hashCode = hashCode * 8191 + ((isSetKeysType()) ? 131071 : 524287);
    if (isSetKeysType())
      hashCode = hashCode * 8191 + keys_type.getValue();

    hashCode = hashCode * 8191 + ((isSetStorageType()) ? 131071 : 524287);
    if (isSetStorageType())
      hashCode = hashCode * 8191 + storage_type.getValue();

    hashCode = hashCode * 8191 + ((isSetColumns()) ? 131071 : 524287);
    if (isSetColumns())
      hashCode = hashCode * 8191 + columns.hashCode();

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

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

    hashCode = hashCode * 8191 + ((isSetIsInMemory()) ? 131071 : 524287);
    if (isSetIsInMemory())
      hashCode = hashCode * 8191 + ((is_in_memory) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetDeleteSignIdx()) ? 131071 : 524287);
    if (isSetDeleteSignIdx())
      hashCode = hashCode * 8191 + delete_sign_idx;

    hashCode = hashCode * 8191 + ((isSetSequenceColIdx()) ? 131071 : 524287);
    if (isSetSequenceColIdx())
      hashCode = hashCode * 8191 + sequence_col_idx;

    hashCode = hashCode * 8191 + ((isSetSortType()) ? 131071 : 524287);
    if (isSetSortType())
      hashCode = hashCode * 8191 + sort_type.getValue();

    hashCode = hashCode * 8191 + ((isSetSortColNum()) ? 131071 : 524287);
    if (isSetSortColNum())
      hashCode = hashCode * 8191 + sort_col_num;

    hashCode = hashCode * 8191 + ((isSetDisableAutoCompaction()) ? 131071 : 524287);
    if (isSetDisableAutoCompaction())
      hashCode = hashCode * 8191 + ((disable_auto_compaction) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetVersionColIdx()) ? 131071 : 524287);
    if (isSetVersionColIdx())
      hashCode = hashCode * 8191 + version_col_idx;

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

    hashCode = hashCode * 8191 + ((isSetStoreRowColumn()) ? 131071 : 524287);
    if (isSetStoreRowColumn())
      hashCode = hashCode * 8191 + ((store_row_column) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetEnableSingleReplicaCompaction()) ? 131071 : 524287);
    if (isSetEnableSingleReplicaCompaction())
      hashCode = hashCode * 8191 + ((enable_single_replica_compaction) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetSkipWriteIndexOnLoad()) ? 131071 : 524287);
    if (isSetSkipWriteIndexOnLoad())
      hashCode = hashCode * 8191 + ((skip_write_index_on_load) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetClusterKeyUids()) ? 131071 : 524287);
    if (isSetClusterKeyUids())
      hashCode = hashCode * 8191 + cluster_key_uids.hashCode();

    hashCode = hashCode * 8191 + ((isSetRowStoreColCids()) ? 131071 : 524287);
    if (isSetRowStoreColCids())
      hashCode = hashCode * 8191 + row_store_col_cids.hashCode();

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

    hashCode = hashCode * 8191 + ((isSetVariantEnableFlattenNested()) ? 131071 : 524287);
    if (isSetVariantEnableFlattenNested())
      hashCode = hashCode * 8191 + ((variant_enable_flatten_nested) ? 131071 : 524287);

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

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

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetShortKeyColumnCount(), other.isSetShortKeyColumnCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetShortKeyColumnCount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.short_key_column_count, other.short_key_column_count);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSchemaHash(), other.isSetSchemaHash());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSchemaHash()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schema_hash, other.schema_hash);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetKeysType(), other.isSetKeysType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetKeysType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.keys_type, other.keys_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetStorageType(), other.isSetStorageType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStorageType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storage_type, other.storage_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetColumns(), other.isSetColumns());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetColumns()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.columns, other.columns);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetBloomFilterFpp(), other.isSetBloomFilterFpp());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBloomFilterFpp()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bloom_filter_fpp, other.bloom_filter_fpp);
      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(isSetIsInMemory(), other.isSetIsInMemory());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsInMemory()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_in_memory, other.is_in_memory);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDeleteSignIdx(), other.isSetDeleteSignIdx());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDeleteSignIdx()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.delete_sign_idx, other.delete_sign_idx);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSequenceColIdx(), other.isSetSequenceColIdx());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSequenceColIdx()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sequence_col_idx, other.sequence_col_idx);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSortType(), other.isSetSortType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSortType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sort_type, other.sort_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSortColNum(), other.isSetSortColNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSortColNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sort_col_num, other.sort_col_num);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDisableAutoCompaction(), other.isSetDisableAutoCompaction());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDisableAutoCompaction()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.disable_auto_compaction, other.disable_auto_compaction);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVersionColIdx(), other.isSetVersionColIdx());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVersionColIdx()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.version_col_idx, other.version_col_idx);
      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(isSetStoreRowColumn(), other.isSetStoreRowColumn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStoreRowColumn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.store_row_column, other.store_row_column);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEnableSingleReplicaCompaction(), other.isSetEnableSingleReplicaCompaction());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnableSingleReplicaCompaction()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enable_single_replica_compaction, other.enable_single_replica_compaction);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSkipWriteIndexOnLoad(), other.isSetSkipWriteIndexOnLoad());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSkipWriteIndexOnLoad()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.skip_write_index_on_load, other.skip_write_index_on_load);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetClusterKeyUids(), other.isSetClusterKeyUids());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetClusterKeyUids()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cluster_key_uids, other.cluster_key_uids);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRowStoreColCids(), other.isSetRowStoreColCids());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRowStoreColCids()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.row_store_col_cids, other.row_store_col_cids);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRowStorePageSize(), other.isSetRowStorePageSize());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRowStorePageSize()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.row_store_page_size, other.row_store_page_size);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantEnableFlattenNested(), other.isSetVariantEnableFlattenNested());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantEnableFlattenNested()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_enable_flatten_nested, other.variant_enable_flatten_nested);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetStoragePageSize(), other.isSetStoragePageSize());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStoragePageSize()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storage_page_size, other.storage_page_size);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetStorageDictPageSize(), other.isSetStorageDictPageSize());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStorageDictPageSize()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storage_dict_page_size, other.storage_dict_page_size);
      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("TTabletSchema(");
    boolean first = true;

    sb.append("short_key_column_count:");
    sb.append(this.short_key_column_count);
    first = false;
    if (!first) sb.append(", ");
    sb.append("schema_hash:");
    sb.append(this.schema_hash);
    first = false;
    if (!first) sb.append(", ");
    sb.append("keys_type:");
    if (this.keys_type == null) {
      sb.append("null");
    } else {
      sb.append(this.keys_type);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("storage_type:");
    if (this.storage_type == null) {
      sb.append("null");
    } else {
      sb.append(this.storage_type);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("columns:");
    if (this.columns == null) {
      sb.append("null");
    } else {
      sb.append(this.columns);
    }
    first = false;
    if (isSetBloomFilterFpp()) {
      if (!first) sb.append(", ");
      sb.append("bloom_filter_fpp:");
      sb.append(this.bloom_filter_fpp);
      first = false;
    }
    if (isSetIndexes()) {
      if (!first) sb.append(", ");
      sb.append("indexes:");
      if (this.indexes == null) {
        sb.append("null");
      } else {
        sb.append(this.indexes);
      }
      first = false;
    }
    if (isSetIsInMemory()) {
      if (!first) sb.append(", ");
      sb.append("is_in_memory:");
      sb.append(this.is_in_memory);
      first = false;
    }
    if (isSetDeleteSignIdx()) {
      if (!first) sb.append(", ");
      sb.append("delete_sign_idx:");
      sb.append(this.delete_sign_idx);
      first = false;
    }
    if (isSetSequenceColIdx()) {
      if (!first) sb.append(", ");
      sb.append("sequence_col_idx:");
      sb.append(this.sequence_col_idx);
      first = false;
    }
    if (isSetSortType()) {
      if (!first) sb.append(", ");
      sb.append("sort_type:");
      if (this.sort_type == null) {
        sb.append("null");
      } else {
        sb.append(this.sort_type);
      }
      first = false;
    }
    if (isSetSortColNum()) {
      if (!first) sb.append(", ");
      sb.append("sort_col_num:");
      sb.append(this.sort_col_num);
      first = false;
    }
    if (isSetDisableAutoCompaction()) {
      if (!first) sb.append(", ");
      sb.append("disable_auto_compaction:");
      sb.append(this.disable_auto_compaction);
      first = false;
    }
    if (isSetVersionColIdx()) {
      if (!first) sb.append(", ");
      sb.append("version_col_idx:");
      sb.append(this.version_col_idx);
      first = false;
    }
    if (isSetIsDynamicSchema()) {
      if (!first) sb.append(", ");
      sb.append("is_dynamic_schema:");
      sb.append(this.is_dynamic_schema);
      first = false;
    }
    if (isSetStoreRowColumn()) {
      if (!first) sb.append(", ");
      sb.append("store_row_column:");
      sb.append(this.store_row_column);
      first = false;
    }
    if (isSetEnableSingleReplicaCompaction()) {
      if (!first) sb.append(", ");
      sb.append("enable_single_replica_compaction:");
      sb.append(this.enable_single_replica_compaction);
      first = false;
    }
    if (isSetSkipWriteIndexOnLoad()) {
      if (!first) sb.append(", ");
      sb.append("skip_write_index_on_load:");
      sb.append(this.skip_write_index_on_load);
      first = false;
    }
    if (isSetClusterKeyUids()) {
      if (!first) sb.append(", ");
      sb.append("cluster_key_uids:");
      if (this.cluster_key_uids == null) {
        sb.append("null");
      } else {
        sb.append(this.cluster_key_uids);
      }
      first = false;
    }
    if (isSetRowStoreColCids()) {
      if (!first) sb.append(", ");
      sb.append("row_store_col_cids:");
      if (this.row_store_col_cids == null) {
        sb.append("null");
      } else {
        sb.append(this.row_store_col_cids);
      }
      first = false;
    }
    if (isSetRowStorePageSize()) {
      if (!first) sb.append(", ");
      sb.append("row_store_page_size:");
      sb.append(this.row_store_page_size);
      first = false;
    }
    if (isSetVariantEnableFlattenNested()) {
      if (!first) sb.append(", ");
      sb.append("variant_enable_flatten_nested:");
      sb.append(this.variant_enable_flatten_nested);
      first = false;
    }
    if (isSetStoragePageSize()) {
      if (!first) sb.append(", ");
      sb.append("storage_page_size:");
      sb.append(this.storage_page_size);
      first = false;
    }
    if (isSetStorageDictPageSize()) {
      if (!first) sb.append(", ");
      sb.append("storage_dict_page_size:");
      sb.append(this.storage_dict_page_size);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

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

  private static class TTabletSchemaStandardScheme extends org.apache.thrift.scheme.StandardScheme<TTabletSchema> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TTabletSchema 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: // SHORT_KEY_COLUMN_COUNT
            if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
              struct.short_key_column_count = iprot.readI16();
              struct.setShortKeyColumnCountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // SCHEMA_HASH
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.schema_hash = iprot.readI32();
              struct.setSchemaHashIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // KEYS_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.keys_type = org.apache.doris.thrift.TKeysType.findByValue(iprot.readI32());
              struct.setKeysTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // STORAGE_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.storage_type = org.apache.doris.thrift.TStorageType.findByValue(iprot.readI32());
              struct.setStorageTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // COLUMNS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
                struct.columns = new java.util.ArrayList<org.apache.doris.thrift.TColumn>(_list0.size);
                @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TColumn _elem1;
                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
                {
                  _elem1 = new org.apache.doris.thrift.TColumn();
                  _elem1.read(iprot);
                  struct.columns.add(_elem1);
                }
                iprot.readListEnd();
              }
              struct.setColumnsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // BLOOM_FILTER_FPP
            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
              struct.bloom_filter_fpp = iprot.readDouble();
              struct.setBloomFilterFppIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // INDEXES
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
                struct.indexes = new java.util.ArrayList<org.apache.doris.thrift.TOlapTableIndex>(_list3.size);
                @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TOlapTableIndex _elem4;
                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
                {
                  _elem4 = new org.apache.doris.thrift.TOlapTableIndex();
                  _elem4.read(iprot);
                  struct.indexes.add(_elem4);
                }
                iprot.readListEnd();
              }
              struct.setIndexesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // IS_IN_MEMORY
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_in_memory = iprot.readBool();
              struct.setIsInMemoryIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // DELETE_SIGN_IDX
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.delete_sign_idx = iprot.readI32();
              struct.setDeleteSignIdxIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // SEQUENCE_COL_IDX
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.sequence_col_idx = iprot.readI32();
              struct.setSequenceColIdxIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // SORT_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.sort_type = org.apache.doris.thrift.TSortType.findByValue(iprot.readI32());
              struct.setSortTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // SORT_COL_NUM
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.sort_col_num = iprot.readI32();
              struct.setSortColNumIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // DISABLE_AUTO_COMPACTION
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.disable_auto_compaction = iprot.readBool();
              struct.setDisableAutoCompactionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // VERSION_COL_IDX
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.version_col_idx = iprot.readI32();
              struct.setVersionColIdxIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // 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 16: // STORE_ROW_COLUMN
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.store_row_column = iprot.readBool();
              struct.setStoreRowColumnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // ENABLE_SINGLE_REPLICA_COMPACTION
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.enable_single_replica_compaction = iprot.readBool();
              struct.setEnableSingleReplicaCompactionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // SKIP_WRITE_INDEX_ON_LOAD
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.skip_write_index_on_load = iprot.readBool();
              struct.setSkipWriteIndexOnLoadIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 19: // CLUSTER_KEY_UIDS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
                struct.cluster_key_uids = new java.util.ArrayList<java.lang.Integer>(_list6.size);
                int _elem7;
                for (int _i8 = 0; _i8 < _list6.size; ++_i8)
                {
                  _elem7 = iprot.readI32();
                  struct.cluster_key_uids.add(_elem7);
                }
                iprot.readListEnd();
              }
              struct.setClusterKeyUidsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 20: // ROW_STORE_COL_CIDS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
                struct.row_store_col_cids = new java.util.ArrayList<java.lang.Integer>(_list9.size);
                int _elem10;
                for (int _i11 = 0; _i11 < _list9.size; ++_i11)
                {
                  _elem10 = iprot.readI32();
                  struct.row_store_col_cids.add(_elem10);
                }
                iprot.readListEnd();
              }
              struct.setRowStoreColCidsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 21: // ROW_STORE_PAGE_SIZE
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.row_store_page_size = iprot.readI64();
              struct.setRowStorePageSizeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 22: // VARIANT_ENABLE_FLATTEN_NESTED
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.variant_enable_flatten_nested = iprot.readBool();
              struct.setVariantEnableFlattenNestedIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 23: // STORAGE_PAGE_SIZE
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.storage_page_size = iprot.readI64();
              struct.setStoragePageSizeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 24: // STORAGE_DICT_PAGE_SIZE
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.storage_dict_page_size = iprot.readI64();
              struct.setStorageDictPageSizeIsSet(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.isSetShortKeyColumnCount()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'short_key_column_count' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetSchemaHash()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'schema_hash' was not found in serialized data! Struct: " + toString());
      }
      struct.validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(SHORT_KEY_COLUMN_COUNT_FIELD_DESC);
      oprot.writeI16(struct.short_key_column_count);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(SCHEMA_HASH_FIELD_DESC);
      oprot.writeI32(struct.schema_hash);
      oprot.writeFieldEnd();
      if (struct.keys_type != null) {
        oprot.writeFieldBegin(KEYS_TYPE_FIELD_DESC);
        oprot.writeI32(struct.keys_type.getValue());
        oprot.writeFieldEnd();
      }
      if (struct.storage_type != null) {
        oprot.writeFieldBegin(STORAGE_TYPE_FIELD_DESC);
        oprot.writeI32(struct.storage_type.getValue());
        oprot.writeFieldEnd();
      }
      if (struct.columns != null) {
        oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.columns.size()));
          for (org.apache.doris.thrift.TColumn _iter12 : struct.columns)
          {
            _iter12.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.isSetBloomFilterFpp()) {
        oprot.writeFieldBegin(BLOOM_FILTER_FPP_FIELD_DESC);
        oprot.writeDouble(struct.bloom_filter_fpp);
        oprot.writeFieldEnd();
      }
      if (struct.indexes != null) {
        if (struct.isSetIndexes()) {
          oprot.writeFieldBegin(INDEXES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.indexes.size()));
            for (org.apache.doris.thrift.TOlapTableIndex _iter13 : struct.indexes)
            {
              _iter13.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetIsInMemory()) {
        oprot.writeFieldBegin(IS_IN_MEMORY_FIELD_DESC);
        oprot.writeBool(struct.is_in_memory);
        oprot.writeFieldEnd();
      }
      if (struct.isSetDeleteSignIdx()) {
        oprot.writeFieldBegin(DELETE_SIGN_IDX_FIELD_DESC);
        oprot.writeI32(struct.delete_sign_idx);
        oprot.writeFieldEnd();
      }
      if (struct.isSetSequenceColIdx()) {
        oprot.writeFieldBegin(SEQUENCE_COL_IDX_FIELD_DESC);
        oprot.writeI32(struct.sequence_col_idx);
        oprot.writeFieldEnd();
      }
      if (struct.sort_type != null) {
        if (struct.isSetSortType()) {
          oprot.writeFieldBegin(SORT_TYPE_FIELD_DESC);
          oprot.writeI32(struct.sort_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetSortColNum()) {
        oprot.writeFieldBegin(SORT_COL_NUM_FIELD_DESC);
        oprot.writeI32(struct.sort_col_num);
        oprot.writeFieldEnd();
      }
      if (struct.isSetDisableAutoCompaction()) {
        oprot.writeFieldBegin(DISABLE_AUTO_COMPACTION_FIELD_DESC);
        oprot.writeBool(struct.disable_auto_compaction);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVersionColIdx()) {
        oprot.writeFieldBegin(VERSION_COL_IDX_FIELD_DESC);
        oprot.writeI32(struct.version_col_idx);
        oprot.writeFieldEnd();
      }
      if (struct.isSetIsDynamicSchema()) {
        oprot.writeFieldBegin(IS_DYNAMIC_SCHEMA_FIELD_DESC);
        oprot.writeBool(struct.is_dynamic_schema);
        oprot.writeFieldEnd();
      }
      if (struct.isSetStoreRowColumn()) {
        oprot.writeFieldBegin(STORE_ROW_COLUMN_FIELD_DESC);
        oprot.writeBool(struct.store_row_column);
        oprot.writeFieldEnd();
      }
      if (struct.isSetEnableSingleReplicaCompaction()) {
        oprot.writeFieldBegin(ENABLE_SINGLE_REPLICA_COMPACTION_FIELD_DESC);
        oprot.writeBool(struct.enable_single_replica_compaction);
        oprot.writeFieldEnd();
      }
      if (struct.isSetSkipWriteIndexOnLoad()) {
        oprot.writeFieldBegin(SKIP_WRITE_INDEX_ON_LOAD_FIELD_DESC);
        oprot.writeBool(struct.skip_write_index_on_load);
        oprot.writeFieldEnd();
      }
      if (struct.cluster_key_uids != null) {
        if (struct.isSetClusterKeyUids()) {
          oprot.writeFieldBegin(CLUSTER_KEY_UIDS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, struct.cluster_key_uids.size()));
            for (int _iter14 : struct.cluster_key_uids)
            {
              oprot.writeI32(_iter14);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.row_store_col_cids != null) {
        if (struct.isSetRowStoreColCids()) {
          oprot.writeFieldBegin(ROW_STORE_COL_CIDS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, struct.row_store_col_cids.size()));
            for (int _iter15 : struct.row_store_col_cids)
            {
              oprot.writeI32(_iter15);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetRowStorePageSize()) {
        oprot.writeFieldBegin(ROW_STORE_PAGE_SIZE_FIELD_DESC);
        oprot.writeI64(struct.row_store_page_size);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVariantEnableFlattenNested()) {
        oprot.writeFieldBegin(VARIANT_ENABLE_FLATTEN_NESTED_FIELD_DESC);
        oprot.writeBool(struct.variant_enable_flatten_nested);
        oprot.writeFieldEnd();
      }
      if (struct.isSetStoragePageSize()) {
        oprot.writeFieldBegin(STORAGE_PAGE_SIZE_FIELD_DESC);
        oprot.writeI64(struct.storage_page_size);
        oprot.writeFieldEnd();
      }
      if (struct.isSetStorageDictPageSize()) {
        oprot.writeFieldBegin(STORAGE_DICT_PAGE_SIZE_FIELD_DESC);
        oprot.writeI64(struct.storage_dict_page_size);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TTabletSchemaTupleScheme extends org.apache.thrift.scheme.TupleScheme<TTabletSchema> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TTabletSchema struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      oprot.writeI16(struct.short_key_column_count);
      oprot.writeI32(struct.schema_hash);
      oprot.writeI32(struct.keys_type.getValue());
      oprot.writeI32(struct.storage_type.getValue());
      {
        oprot.writeI32(struct.columns.size());
        for (org.apache.doris.thrift.TColumn _iter16 : struct.columns)
        {
          _iter16.write(oprot);
        }
      }
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetBloomFilterFpp()) {
        optionals.set(0);
      }
      if (struct.isSetIndexes()) {
        optionals.set(1);
      }
      if (struct.isSetIsInMemory()) {
        optionals.set(2);
      }
      if (struct.isSetDeleteSignIdx()) {
        optionals.set(3);
      }
      if (struct.isSetSequenceColIdx()) {
        optionals.set(4);
      }
      if (struct.isSetSortType()) {
        optionals.set(5);
      }
      if (struct.isSetSortColNum()) {
        optionals.set(6);
      }
      if (struct.isSetDisableAutoCompaction()) {
        optionals.set(7);
      }
      if (struct.isSetVersionColIdx()) {
        optionals.set(8);
      }
      if (struct.isSetIsDynamicSchema()) {
        optionals.set(9);
      }
      if (struct.isSetStoreRowColumn()) {
        optionals.set(10);
      }
      if (struct.isSetEnableSingleReplicaCompaction()) {
        optionals.set(11);
      }
      if (struct.isSetSkipWriteIndexOnLoad()) {
        optionals.set(12);
      }
      if (struct.isSetClusterKeyUids()) {
        optionals.set(13);
      }
      if (struct.isSetRowStoreColCids()) {
        optionals.set(14);
      }
      if (struct.isSetRowStorePageSize()) {
        optionals.set(15);
      }
      if (struct.isSetVariantEnableFlattenNested()) {
        optionals.set(16);
      }
      if (struct.isSetStoragePageSize()) {
        optionals.set(17);
      }
      if (struct.isSetStorageDictPageSize()) {
        optionals.set(18);
      }
      oprot.writeBitSet(optionals, 19);
      if (struct.isSetBloomFilterFpp()) {
        oprot.writeDouble(struct.bloom_filter_fpp);
      }
      if (struct.isSetIndexes()) {
        {
          oprot.writeI32(struct.indexes.size());
          for (org.apache.doris.thrift.TOlapTableIndex _iter17 : struct.indexes)
          {
            _iter17.write(oprot);
          }
        }
      }
      if (struct.isSetIsInMemory()) {
        oprot.writeBool(struct.is_in_memory);
      }
      if (struct.isSetDeleteSignIdx()) {
        oprot.writeI32(struct.delete_sign_idx);
      }
      if (struct.isSetSequenceColIdx()) {
        oprot.writeI32(struct.sequence_col_idx);
      }
      if (struct.isSetSortType()) {
        oprot.writeI32(struct.sort_type.getValue());
      }
      if (struct.isSetSortColNum()) {
        oprot.writeI32(struct.sort_col_num);
      }
      if (struct.isSetDisableAutoCompaction()) {
        oprot.writeBool(struct.disable_auto_compaction);
      }
      if (struct.isSetVersionColIdx()) {
        oprot.writeI32(struct.version_col_idx);
      }
      if (struct.isSetIsDynamicSchema()) {
        oprot.writeBool(struct.is_dynamic_schema);
      }
      if (struct.isSetStoreRowColumn()) {
        oprot.writeBool(struct.store_row_column);
      }
      if (struct.isSetEnableSingleReplicaCompaction()) {
        oprot.writeBool(struct.enable_single_replica_compaction);
      }
      if (struct.isSetSkipWriteIndexOnLoad()) {
        oprot.writeBool(struct.skip_write_index_on_load);
      }
      if (struct.isSetClusterKeyUids()) {
        {
          oprot.writeI32(struct.cluster_key_uids.size());
          for (int _iter18 : struct.cluster_key_uids)
          {
            oprot.writeI32(_iter18);
          }
        }
      }
      if (struct.isSetRowStoreColCids()) {
        {
          oprot.writeI32(struct.row_store_col_cids.size());
          for (int _iter19 : struct.row_store_col_cids)
          {
            oprot.writeI32(_iter19);
          }
        }
      }
      if (struct.isSetRowStorePageSize()) {
        oprot.writeI64(struct.row_store_page_size);
      }
      if (struct.isSetVariantEnableFlattenNested()) {
        oprot.writeBool(struct.variant_enable_flatten_nested);
      }
      if (struct.isSetStoragePageSize()) {
        oprot.writeI64(struct.storage_page_size);
      }
      if (struct.isSetStorageDictPageSize()) {
        oprot.writeI64(struct.storage_dict_page_size);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TTabletSchema struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      struct.short_key_column_count = iprot.readI16();
      struct.setShortKeyColumnCountIsSet(true);
      struct.schema_hash = iprot.readI32();
      struct.setSchemaHashIsSet(true);
      struct.keys_type = org.apache.doris.thrift.TKeysType.findByValue(iprot.readI32());
      struct.setKeysTypeIsSet(true);
      struct.storage_type = org.apache.doris.thrift.TStorageType.findByValue(iprot.readI32());
      struct.setStorageTypeIsSet(true);
      {
        org.apache.thrift.protocol.TList _list20 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
        struct.columns = new java.util.ArrayList<org.apache.doris.thrift.TColumn>(_list20.size);
        @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TColumn _elem21;
        for (int _i22 = 0; _i22 < _list20.size; ++_i22)
        {
          _elem21 = new org.apache.doris.thrift.TColumn();
          _elem21.read(iprot);
          struct.columns.add(_elem21);
        }
      }
      struct.setColumnsIsSet(true);
      java.util.BitSet incoming = iprot.readBitSet(19);
      if (incoming.get(0)) {
        struct.bloom_filter_fpp = iprot.readDouble();
        struct.setBloomFilterFppIsSet(true);
      }
      if (incoming.get(1)) {
        {
          org.apache.thrift.protocol.TList _list23 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
          struct.indexes = new java.util.ArrayList<org.apache.doris.thrift.TOlapTableIndex>(_list23.size);
          @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TOlapTableIndex _elem24;
          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
          {
            _elem24 = new org.apache.doris.thrift.TOlapTableIndex();
            _elem24.read(iprot);
            struct.indexes.add(_elem24);
          }
        }
        struct.setIndexesIsSet(true);
      }
      if (incoming.get(2)) {
        struct.is_in_memory = iprot.readBool();
        struct.setIsInMemoryIsSet(true);
      }
      if (incoming.get(3)) {
        struct.delete_sign_idx = iprot.readI32();
        struct.setDeleteSignIdxIsSet(true);
      }
      if (incoming.get(4)) {
        struct.sequence_col_idx = iprot.readI32();
        struct.setSequenceColIdxIsSet(true);
      }
      if (incoming.get(5)) {
        struct.sort_type = org.apache.doris.thrift.TSortType.findByValue(iprot.readI32());
        struct.setSortTypeIsSet(true);
      }
      if (incoming.get(6)) {
        struct.sort_col_num = iprot.readI32();
        struct.setSortColNumIsSet(true);
      }
      if (incoming.get(7)) {
        struct.disable_auto_compaction = iprot.readBool();
        struct.setDisableAutoCompactionIsSet(true);
      }
      if (incoming.get(8)) {
        struct.version_col_idx = iprot.readI32();
        struct.setVersionColIdxIsSet(true);
      }
      if (incoming.get(9)) {
        struct.is_dynamic_schema = iprot.readBool();
        struct.setIsDynamicSchemaIsSet(true);
      }
      if (incoming.get(10)) {
        struct.store_row_column = iprot.readBool();
        struct.setStoreRowColumnIsSet(true);
      }
      if (incoming.get(11)) {
        struct.enable_single_replica_compaction = iprot.readBool();
        struct.setEnableSingleReplicaCompactionIsSet(true);
      }
      if (incoming.get(12)) {
        struct.skip_write_index_on_load = iprot.readBool();
        struct.setSkipWriteIndexOnLoadIsSet(true);
      }
      if (incoming.get(13)) {
        {
          org.apache.thrift.protocol.TList _list26 = iprot.readListBegin(org.apache.thrift.protocol.TType.I32);
          struct.cluster_key_uids = new java.util.ArrayList<java.lang.Integer>(_list26.size);
          int _elem27;
          for (int _i28 = 0; _i28 < _list26.size; ++_i28)
          {
            _elem27 = iprot.readI32();
            struct.cluster_key_uids.add(_elem27);
          }
        }
        struct.setClusterKeyUidsIsSet(true);
      }
      if (incoming.get(14)) {
        {
          org.apache.thrift.protocol.TList _list29 = iprot.readListBegin(org.apache.thrift.protocol.TType.I32);
          struct.row_store_col_cids = new java.util.ArrayList<java.lang.Integer>(_list29.size);
          int _elem30;
          for (int _i31 = 0; _i31 < _list29.size; ++_i31)
          {
            _elem30 = iprot.readI32();
            struct.row_store_col_cids.add(_elem30);
          }
        }
        struct.setRowStoreColCidsIsSet(true);
      }
      if (incoming.get(15)) {
        struct.row_store_page_size = iprot.readI64();
        struct.setRowStorePageSizeIsSet(true);
      }
      if (incoming.get(16)) {
        struct.variant_enable_flatten_nested = iprot.readBool();
        struct.setVariantEnableFlattenNestedIsSet(true);
      }
      if (incoming.get(17)) {
        struct.storage_page_size = iprot.readI64();
        struct.setStoragePageSizeIsSet(true);
      }
      if (incoming.get(18)) {
        struct.storage_dict_page_size = iprot.readI64();
        struct.setStorageDictPageSizeIsSet(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();
  }
}