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

  private static final org.apache.thrift.protocol.TField COLUMN_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("column_name", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField COLUMN_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("column_type", org.apache.thrift.protocol.TType.STRUCT, (short)2);
  private static final org.apache.thrift.protocol.TField AGGREGATION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("aggregation_type", org.apache.thrift.protocol.TType.I32, (short)3);
  private static final org.apache.thrift.protocol.TField IS_KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("is_key", org.apache.thrift.protocol.TType.BOOL, (short)4);
  private static final org.apache.thrift.protocol.TField IS_ALLOW_NULL_FIELD_DESC = new org.apache.thrift.protocol.TField("is_allow_null", org.apache.thrift.protocol.TType.BOOL, (short)5);
  private static final org.apache.thrift.protocol.TField DEFAULT_VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("default_value", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField IS_BLOOM_FILTER_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("is_bloom_filter_column", org.apache.thrift.protocol.TType.BOOL, (short)7);
  private static final org.apache.thrift.protocol.TField DEFINE_EXPR_FIELD_DESC = new org.apache.thrift.protocol.TField("define_expr", org.apache.thrift.protocol.TType.STRUCT, (short)8);
  private static final org.apache.thrift.protocol.TField VISIBLE_FIELD_DESC = new org.apache.thrift.protocol.TField("visible", org.apache.thrift.protocol.TType.BOOL, (short)9);
  private static final org.apache.thrift.protocol.TField CHILDREN_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("children_column", org.apache.thrift.protocol.TType.LIST, (short)10);
  private static final org.apache.thrift.protocol.TField COL_UNIQUE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("col_unique_id", org.apache.thrift.protocol.TType.I32, (short)11);
  private static final org.apache.thrift.protocol.TField HAS_BITMAP_INDEX_FIELD_DESC = new org.apache.thrift.protocol.TField("has_bitmap_index", org.apache.thrift.protocol.TType.BOOL, (short)12);
  private static final org.apache.thrift.protocol.TField HAS_NGRAM_BF_INDEX_FIELD_DESC = new org.apache.thrift.protocol.TField("has_ngram_bf_index", org.apache.thrift.protocol.TType.BOOL, (short)13);
  private static final org.apache.thrift.protocol.TField GRAM_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("gram_size", org.apache.thrift.protocol.TType.I32, (short)14);
  private static final org.apache.thrift.protocol.TField GRAM_BF_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("gram_bf_size", org.apache.thrift.protocol.TType.I32, (short)15);
  private static final org.apache.thrift.protocol.TField AGGREGATION_FIELD_DESC = new org.apache.thrift.protocol.TField("aggregation", org.apache.thrift.protocol.TType.STRING, (short)16);
  private static final org.apache.thrift.protocol.TField RESULT_IS_NULLABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("result_is_nullable", org.apache.thrift.protocol.TType.BOOL, (short)17);
  private static final org.apache.thrift.protocol.TField IS_AUTO_INCREMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("is_auto_increment", org.apache.thrift.protocol.TType.BOOL, (short)18);
  private static final org.apache.thrift.protocol.TField CLUSTER_KEY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("cluster_key_id", org.apache.thrift.protocol.TType.I32, (short)19);
  private static final org.apache.thrift.protocol.TField BE_EXEC_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("be_exec_version", org.apache.thrift.protocol.TType.I32, (short)20);
  private static final org.apache.thrift.protocol.TField PATTERN_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("pattern_type", org.apache.thrift.protocol.TType.I32, (short)21);
  private static final org.apache.thrift.protocol.TField VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_enable_typed_paths_to_sparse", org.apache.thrift.protocol.TType.BOOL, (short)22);
  private static final org.apache.thrift.protocol.TField IS_ON_UPDATE_CURRENT_TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("is_on_update_current_timestamp", org.apache.thrift.protocol.TType.BOOL, (short)23);
  private static final org.apache.thrift.protocol.TField VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_max_sparse_column_statistics_size", org.apache.thrift.protocol.TType.I32, (short)24);
  private static final org.apache.thrift.protocol.TField VARIANT_SPARSE_HASH_SHARD_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_sparse_hash_shard_count", org.apache.thrift.protocol.TType.I32, (short)25);
  private static final org.apache.thrift.protocol.TField VARIANT_ENABLE_DOC_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_enable_doc_mode", org.apache.thrift.protocol.TType.BOOL, (short)26);
  private static final org.apache.thrift.protocol.TField VARIANT_DOC_MATERIALIZATION_MIN_ROWS_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_doc_materialization_min_rows", org.apache.thrift.protocol.TType.I64, (short)27);
  private static final org.apache.thrift.protocol.TField VARIANT_DOC_HASH_SHARD_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_doc_hash_shard_count", org.apache.thrift.protocol.TType.I32, (short)28);
  private static final org.apache.thrift.protocol.TField VARIANT_ENABLE_NESTED_GROUP_FIELD_DESC = new org.apache.thrift.protocol.TField("variant_enable_nested_group", org.apache.thrift.protocol.TType.BOOL, (short)29);

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

  public @org.apache.thrift.annotation.Nullable java.lang.String column_name; // required
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TColumnType column_type; // required
  /**
   * 
   * @see org.apache.doris.thrift.TAggregationType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TAggregationType aggregation_type; // optional
  public boolean is_key; // optional
  public boolean is_allow_null; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String default_value; // optional
  public boolean is_bloom_filter_column; // optional
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TExpr define_expr; // optional
  public boolean visible; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<TColumn> children_column; // optional
  public int col_unique_id; // optional
  public boolean has_bitmap_index; // optional
  public boolean has_ngram_bf_index; // optional
  public int gram_size; // optional
  public int gram_bf_size; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String aggregation; // optional
  public boolean result_is_nullable; // optional
  public boolean is_auto_increment; // optional
  public int cluster_key_id; // optional
  public int be_exec_version; // optional
  /**
   * 
   * @see TPatternType
   */
  public @org.apache.thrift.annotation.Nullable TPatternType pattern_type; // optional
  public boolean variant_enable_typed_paths_to_sparse; // optional
  public boolean is_on_update_current_timestamp; // optional
  public int variant_max_sparse_column_statistics_size; // optional
  public int variant_sparse_hash_shard_count; // optional
  public boolean variant_enable_doc_mode; // optional
  public long variant_doc_materialization_min_rows; // optional
  public int variant_doc_hash_shard_count; // optional
  public boolean variant_enable_nested_group; // 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 {
    COLUMN_NAME((short)1, "column_name"),
    COLUMN_TYPE((short)2, "column_type"),
    /**
     * 
     * @see org.apache.doris.thrift.TAggregationType
     */
    AGGREGATION_TYPE((short)3, "aggregation_type"),
    IS_KEY((short)4, "is_key"),
    IS_ALLOW_NULL((short)5, "is_allow_null"),
    DEFAULT_VALUE((short)6, "default_value"),
    IS_BLOOM_FILTER_COLUMN((short)7, "is_bloom_filter_column"),
    DEFINE_EXPR((short)8, "define_expr"),
    VISIBLE((short)9, "visible"),
    CHILDREN_COLUMN((short)10, "children_column"),
    COL_UNIQUE_ID((short)11, "col_unique_id"),
    HAS_BITMAP_INDEX((short)12, "has_bitmap_index"),
    HAS_NGRAM_BF_INDEX((short)13, "has_ngram_bf_index"),
    GRAM_SIZE((short)14, "gram_size"),
    GRAM_BF_SIZE((short)15, "gram_bf_size"),
    AGGREGATION((short)16, "aggregation"),
    RESULT_IS_NULLABLE((short)17, "result_is_nullable"),
    IS_AUTO_INCREMENT((short)18, "is_auto_increment"),
    CLUSTER_KEY_ID((short)19, "cluster_key_id"),
    BE_EXEC_VERSION((short)20, "be_exec_version"),
    /**
     * 
     * @see TPatternType
     */
    PATTERN_TYPE((short)21, "pattern_type"),
    VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE((short)22, "variant_enable_typed_paths_to_sparse"),
    IS_ON_UPDATE_CURRENT_TIMESTAMP((short)23, "is_on_update_current_timestamp"),
    VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE((short)24, "variant_max_sparse_column_statistics_size"),
    VARIANT_SPARSE_HASH_SHARD_COUNT((short)25, "variant_sparse_hash_shard_count"),
    VARIANT_ENABLE_DOC_MODE((short)26, "variant_enable_doc_mode"),
    VARIANT_DOC_MATERIALIZATION_MIN_ROWS((short)27, "variant_doc_materialization_min_rows"),
    VARIANT_DOC_HASH_SHARD_COUNT((short)28, "variant_doc_hash_shard_count"),
    VARIANT_ENABLE_NESTED_GROUP((short)29, "variant_enable_nested_group");

    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: // COLUMN_NAME
          return COLUMN_NAME;
        case 2: // COLUMN_TYPE
          return COLUMN_TYPE;
        case 3: // AGGREGATION_TYPE
          return AGGREGATION_TYPE;
        case 4: // IS_KEY
          return IS_KEY;
        case 5: // IS_ALLOW_NULL
          return IS_ALLOW_NULL;
        case 6: // DEFAULT_VALUE
          return DEFAULT_VALUE;
        case 7: // IS_BLOOM_FILTER_COLUMN
          return IS_BLOOM_FILTER_COLUMN;
        case 8: // DEFINE_EXPR
          return DEFINE_EXPR;
        case 9: // VISIBLE
          return VISIBLE;
        case 10: // CHILDREN_COLUMN
          return CHILDREN_COLUMN;
        case 11: // COL_UNIQUE_ID
          return COL_UNIQUE_ID;
        case 12: // HAS_BITMAP_INDEX
          return HAS_BITMAP_INDEX;
        case 13: // HAS_NGRAM_BF_INDEX
          return HAS_NGRAM_BF_INDEX;
        case 14: // GRAM_SIZE
          return GRAM_SIZE;
        case 15: // GRAM_BF_SIZE
          return GRAM_BF_SIZE;
        case 16: // AGGREGATION
          return AGGREGATION;
        case 17: // RESULT_IS_NULLABLE
          return RESULT_IS_NULLABLE;
        case 18: // IS_AUTO_INCREMENT
          return IS_AUTO_INCREMENT;
        case 19: // CLUSTER_KEY_ID
          return CLUSTER_KEY_ID;
        case 20: // BE_EXEC_VERSION
          return BE_EXEC_VERSION;
        case 21: // PATTERN_TYPE
          return PATTERN_TYPE;
        case 22: // VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE
          return VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE;
        case 23: // IS_ON_UPDATE_CURRENT_TIMESTAMP
          return IS_ON_UPDATE_CURRENT_TIMESTAMP;
        case 24: // VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE
          return VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE;
        case 25: // VARIANT_SPARSE_HASH_SHARD_COUNT
          return VARIANT_SPARSE_HASH_SHARD_COUNT;
        case 26: // VARIANT_ENABLE_DOC_MODE
          return VARIANT_ENABLE_DOC_MODE;
        case 27: // VARIANT_DOC_MATERIALIZATION_MIN_ROWS
          return VARIANT_DOC_MATERIALIZATION_MIN_ROWS;
        case 28: // VARIANT_DOC_HASH_SHARD_COUNT
          return VARIANT_DOC_HASH_SHARD_COUNT;
        case 29: // VARIANT_ENABLE_NESTED_GROUP
          return VARIANT_ENABLE_NESTED_GROUP;
        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 __IS_KEY_ISSET_ID = 0;
  private static final int __IS_ALLOW_NULL_ISSET_ID = 1;
  private static final int __IS_BLOOM_FILTER_COLUMN_ISSET_ID = 2;
  private static final int __VISIBLE_ISSET_ID = 3;
  private static final int __COL_UNIQUE_ID_ISSET_ID = 4;
  private static final int __HAS_BITMAP_INDEX_ISSET_ID = 5;
  private static final int __HAS_NGRAM_BF_INDEX_ISSET_ID = 6;
  private static final int __GRAM_SIZE_ISSET_ID = 7;
  private static final int __GRAM_BF_SIZE_ISSET_ID = 8;
  private static final int __RESULT_IS_NULLABLE_ISSET_ID = 9;
  private static final int __IS_AUTO_INCREMENT_ISSET_ID = 10;
  private static final int __CLUSTER_KEY_ID_ISSET_ID = 11;
  private static final int __BE_EXEC_VERSION_ISSET_ID = 12;
  private static final int __VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE_ISSET_ID = 13;
  private static final int __IS_ON_UPDATE_CURRENT_TIMESTAMP_ISSET_ID = 14;
  private static final int __VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE_ISSET_ID = 15;
  private static final int __VARIANT_SPARSE_HASH_SHARD_COUNT_ISSET_ID = 16;
  private static final int __VARIANT_ENABLE_DOC_MODE_ISSET_ID = 17;
  private static final int __VARIANT_DOC_MATERIALIZATION_MIN_ROWS_ISSET_ID = 18;
  private static final int __VARIANT_DOC_HASH_SHARD_COUNT_ISSET_ID = 19;
  private static final int __VARIANT_ENABLE_NESTED_GROUP_ISSET_ID = 20;
  private int __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.AGGREGATION_TYPE,_Fields.IS_KEY,_Fields.IS_ALLOW_NULL,_Fields.DEFAULT_VALUE,_Fields.IS_BLOOM_FILTER_COLUMN,_Fields.DEFINE_EXPR,_Fields.VISIBLE,_Fields.CHILDREN_COLUMN,_Fields.COL_UNIQUE_ID,_Fields.HAS_BITMAP_INDEX,_Fields.HAS_NGRAM_BF_INDEX,_Fields.GRAM_SIZE,_Fields.GRAM_BF_SIZE,_Fields.AGGREGATION,_Fields.RESULT_IS_NULLABLE,_Fields.IS_AUTO_INCREMENT,_Fields.CLUSTER_KEY_ID,_Fields.BE_EXEC_VERSION,_Fields.PATTERN_TYPE,_Fields.VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE,_Fields.IS_ON_UPDATE_CURRENT_TIMESTAMP,_Fields.VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE,_Fields.VARIANT_SPARSE_HASH_SHARD_COUNT,_Fields.VARIANT_ENABLE_DOC_MODE,_Fields.VARIANT_DOC_MATERIALIZATION_MIN_ROWS,_Fields.VARIANT_DOC_HASH_SHARD_COUNT,_Fields.VARIANT_ENABLE_NESTED_GROUP};
  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.COLUMN_NAME, new org.apache.thrift.meta_data.FieldMetaData("column_name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.COLUMN_TYPE, new org.apache.thrift.meta_data.FieldMetaData("column_type", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.doris.thrift.TColumnType.class)));
    tmpMap.put(_Fields.AGGREGATION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("aggregation_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TAggregationType.class)));
    tmpMap.put(_Fields.IS_KEY, new org.apache.thrift.meta_data.FieldMetaData("is_key", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.IS_ALLOW_NULL, new org.apache.thrift.meta_data.FieldMetaData("is_allow_null", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.DEFAULT_VALUE, new org.apache.thrift.meta_data.FieldMetaData("default_value", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.IS_BLOOM_FILTER_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("is_bloom_filter_column", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.DEFINE_EXPR, new org.apache.thrift.meta_data.FieldMetaData("define_expr", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.doris.thrift.TExpr.class)));
    tmpMap.put(_Fields.VISIBLE, new org.apache.thrift.meta_data.FieldMetaData("visible", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.CHILDREN_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("children_column", 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.STRUCT            , "TColumn"))));
    tmpMap.put(_Fields.COL_UNIQUE_ID, new org.apache.thrift.meta_data.FieldMetaData("col_unique_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.HAS_BITMAP_INDEX, new org.apache.thrift.meta_data.FieldMetaData("has_bitmap_index", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.HAS_NGRAM_BF_INDEX, new org.apache.thrift.meta_data.FieldMetaData("has_ngram_bf_index", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.GRAM_SIZE, new org.apache.thrift.meta_data.FieldMetaData("gram_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.GRAM_BF_SIZE, new org.apache.thrift.meta_data.FieldMetaData("gram_bf_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.AGGREGATION, new org.apache.thrift.meta_data.FieldMetaData("aggregation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.RESULT_IS_NULLABLE, new org.apache.thrift.meta_data.FieldMetaData("result_is_nullable", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.IS_AUTO_INCREMENT, new org.apache.thrift.meta_data.FieldMetaData("is_auto_increment", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.CLUSTER_KEY_ID, new org.apache.thrift.meta_data.FieldMetaData("cluster_key_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.BE_EXEC_VERSION, new org.apache.thrift.meta_data.FieldMetaData("be_exec_version", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.PATTERN_TYPE, new org.apache.thrift.meta_data.FieldMetaData("pattern_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TPatternType.class)));
    tmpMap.put(_Fields.VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE, new org.apache.thrift.meta_data.FieldMetaData("variant_enable_typed_paths_to_sparse", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.IS_ON_UPDATE_CURRENT_TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("is_on_update_current_timestamp", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE, new org.apache.thrift.meta_data.FieldMetaData("variant_max_sparse_column_statistics_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.VARIANT_SPARSE_HASH_SHARD_COUNT, new org.apache.thrift.meta_data.FieldMetaData("variant_sparse_hash_shard_count", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.VARIANT_ENABLE_DOC_MODE, new org.apache.thrift.meta_data.FieldMetaData("variant_enable_doc_mode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.VARIANT_DOC_MATERIALIZATION_MIN_ROWS, new org.apache.thrift.meta_data.FieldMetaData("variant_doc_materialization_min_rows", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.VARIANT_DOC_HASH_SHARD_COUNT, new org.apache.thrift.meta_data.FieldMetaData("variant_doc_hash_shard_count", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.VARIANT_ENABLE_NESTED_GROUP, new org.apache.thrift.meta_data.FieldMetaData("variant_enable_nested_group", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TColumn.class, metaDataMap);
  }

  public TColumn() {
    this.visible = true;

    this.col_unique_id = -1;

    this.has_bitmap_index = false;

    this.has_ngram_bf_index = false;

    this.is_auto_increment = false;

    this.cluster_key_id = -1;

    this.be_exec_version = -1;

    this.variant_enable_typed_paths_to_sparse = false;

    this.is_on_update_current_timestamp = false;

    this.variant_max_sparse_column_statistics_size = 10000;

  }

  public TColumn(
    java.lang.String column_name,
    org.apache.doris.thrift.TColumnType column_type)
  {
    this();
    this.column_name = column_name;
    this.column_type = column_type;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TColumn(TColumn other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetColumnName()) {
      this.column_name = other.column_name;
    }
    if (other.isSetColumnType()) {
      this.column_type = new org.apache.doris.thrift.TColumnType(other.column_type);
    }
    if (other.isSetAggregationType()) {
      this.aggregation_type = other.aggregation_type;
    }
    this.is_key = other.is_key;
    this.is_allow_null = other.is_allow_null;
    if (other.isSetDefaultValue()) {
      this.default_value = other.default_value;
    }
    this.is_bloom_filter_column = other.is_bloom_filter_column;
    if (other.isSetDefineExpr()) {
      this.define_expr = new org.apache.doris.thrift.TExpr(other.define_expr);
    }
    this.visible = other.visible;
    if (other.isSetChildrenColumn()) {
      java.util.List<TColumn> __this__children_column = new java.util.ArrayList<TColumn>(other.children_column.size());
      for (TColumn other_element : other.children_column) {
        __this__children_column.add(new TColumn(other_element));
      }
      this.children_column = __this__children_column;
    }
    this.col_unique_id = other.col_unique_id;
    this.has_bitmap_index = other.has_bitmap_index;
    this.has_ngram_bf_index = other.has_ngram_bf_index;
    this.gram_size = other.gram_size;
    this.gram_bf_size = other.gram_bf_size;
    if (other.isSetAggregation()) {
      this.aggregation = other.aggregation;
    }
    this.result_is_nullable = other.result_is_nullable;
    this.is_auto_increment = other.is_auto_increment;
    this.cluster_key_id = other.cluster_key_id;
    this.be_exec_version = other.be_exec_version;
    if (other.isSetPatternType()) {
      this.pattern_type = other.pattern_type;
    }
    this.variant_enable_typed_paths_to_sparse = other.variant_enable_typed_paths_to_sparse;
    this.is_on_update_current_timestamp = other.is_on_update_current_timestamp;
    this.variant_max_sparse_column_statistics_size = other.variant_max_sparse_column_statistics_size;
    this.variant_sparse_hash_shard_count = other.variant_sparse_hash_shard_count;
    this.variant_enable_doc_mode = other.variant_enable_doc_mode;
    this.variant_doc_materialization_min_rows = other.variant_doc_materialization_min_rows;
    this.variant_doc_hash_shard_count = other.variant_doc_hash_shard_count;
    this.variant_enable_nested_group = other.variant_enable_nested_group;
  }

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

  @Override
  public void clear() {
    this.column_name = null;
    this.column_type = null;
    this.aggregation_type = null;
    setIsKeyIsSet(false);
    this.is_key = false;
    setIsAllowNullIsSet(false);
    this.is_allow_null = false;
    this.default_value = null;
    setIsBloomFilterColumnIsSet(false);
    this.is_bloom_filter_column = false;
    this.define_expr = null;
    this.visible = true;

    this.children_column = null;
    this.col_unique_id = -1;

    this.has_bitmap_index = false;

    this.has_ngram_bf_index = false;

    setGramSizeIsSet(false);
    this.gram_size = 0;
    setGramBfSizeIsSet(false);
    this.gram_bf_size = 0;
    this.aggregation = null;
    setResultIsNullableIsSet(false);
    this.result_is_nullable = false;
    this.is_auto_increment = false;

    this.cluster_key_id = -1;

    this.be_exec_version = -1;

    this.pattern_type = null;
    this.variant_enable_typed_paths_to_sparse = false;

    this.is_on_update_current_timestamp = false;

    this.variant_max_sparse_column_statistics_size = 10000;

    setVariantSparseHashShardCountIsSet(false);
    this.variant_sparse_hash_shard_count = 0;
    setVariantEnableDocModeIsSet(false);
    this.variant_enable_doc_mode = false;
    setVariantDocMaterializationMinRowsIsSet(false);
    this.variant_doc_materialization_min_rows = 0;
    setVariantDocHashShardCountIsSet(false);
    this.variant_doc_hash_shard_count = 0;
    setVariantEnableNestedGroupIsSet(false);
    this.variant_enable_nested_group = false;
  }

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

  public TColumn setColumnName(@org.apache.thrift.annotation.Nullable java.lang.String column_name) {
    this.column_name = column_name;
    return this;
  }

  public void unsetColumnName() {
    this.column_name = null;
  }

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

  public void setColumnNameIsSet(boolean value) {
    if (!value) {
      this.column_name = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TColumnType getColumnType() {
    return this.column_type;
  }

  public TColumn setColumnType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TColumnType column_type) {
    this.column_type = column_type;
    return this;
  }

  public void unsetColumnType() {
    this.column_type = null;
  }

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

  public void setColumnTypeIsSet(boolean value) {
    if (!value) {
      this.column_type = null;
    }
  }

  /**
   * 
   * @see org.apache.doris.thrift.TAggregationType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TAggregationType getAggregationType() {
    return this.aggregation_type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TAggregationType
   */
  public TColumn setAggregationType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TAggregationType aggregation_type) {
    this.aggregation_type = aggregation_type;
    return this;
  }

  public void unsetAggregationType() {
    this.aggregation_type = null;
  }

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

  public void setAggregationTypeIsSet(boolean value) {
    if (!value) {
      this.aggregation_type = null;
    }
  }

  public boolean isIsKey() {
    return this.is_key;
  }

  public TColumn setIsKey(boolean is_key) {
    this.is_key = is_key;
    setIsKeyIsSet(true);
    return this;
  }

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

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

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

  public boolean isIsAllowNull() {
    return this.is_allow_null;
  }

  public TColumn setIsAllowNull(boolean is_allow_null) {
    this.is_allow_null = is_allow_null;
    setIsAllowNullIsSet(true);
    return this;
  }

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

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

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

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

  public TColumn setDefaultValue(@org.apache.thrift.annotation.Nullable java.lang.String default_value) {
    this.default_value = default_value;
    return this;
  }

  public void unsetDefaultValue() {
    this.default_value = null;
  }

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

  public void setDefaultValueIsSet(boolean value) {
    if (!value) {
      this.default_value = null;
    }
  }

  public boolean isIsBloomFilterColumn() {
    return this.is_bloom_filter_column;
  }

  public TColumn setIsBloomFilterColumn(boolean is_bloom_filter_column) {
    this.is_bloom_filter_column = is_bloom_filter_column;
    setIsBloomFilterColumnIsSet(true);
    return this;
  }

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

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

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

  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TExpr getDefineExpr() {
    return this.define_expr;
  }

  public TColumn setDefineExpr(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TExpr define_expr) {
    this.define_expr = define_expr;
    return this;
  }

  public void unsetDefineExpr() {
    this.define_expr = null;
  }

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

  public void setDefineExprIsSet(boolean value) {
    if (!value) {
      this.define_expr = null;
    }
  }

  public boolean isVisible() {
    return this.visible;
  }

  public TColumn setVisible(boolean visible) {
    this.visible = visible;
    setVisibleIsSet(true);
    return this;
  }

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

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

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

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

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

  public void addToChildrenColumn(TColumn elem) {
    if (this.children_column == null) {
      this.children_column = new java.util.ArrayList<TColumn>();
    }
    this.children_column.add(elem);
  }

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

  public TColumn setChildrenColumn(@org.apache.thrift.annotation.Nullable java.util.List<TColumn> children_column) {
    this.children_column = children_column;
    return this;
  }

  public void unsetChildrenColumn() {
    this.children_column = null;
  }

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

  public void setChildrenColumnIsSet(boolean value) {
    if (!value) {
      this.children_column = null;
    }
  }

  public int getColUniqueId() {
    return this.col_unique_id;
  }

  public TColumn setColUniqueId(int col_unique_id) {
    this.col_unique_id = col_unique_id;
    setColUniqueIdIsSet(true);
    return this;
  }

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

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

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

  public boolean isHasBitmapIndex() {
    return this.has_bitmap_index;
  }

  public TColumn setHasBitmapIndex(boolean has_bitmap_index) {
    this.has_bitmap_index = has_bitmap_index;
    setHasBitmapIndexIsSet(true);
    return this;
  }

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

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

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

  public boolean isHasNgramBfIndex() {
    return this.has_ngram_bf_index;
  }

  public TColumn setHasNgramBfIndex(boolean has_ngram_bf_index) {
    this.has_ngram_bf_index = has_ngram_bf_index;
    setHasNgramBfIndexIsSet(true);
    return this;
  }

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

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

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

  public int getGramSize() {
    return this.gram_size;
  }

  public TColumn setGramSize(int gram_size) {
    this.gram_size = gram_size;
    setGramSizeIsSet(true);
    return this;
  }

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

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

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

  public int getGramBfSize() {
    return this.gram_bf_size;
  }

  public TColumn setGramBfSize(int gram_bf_size) {
    this.gram_bf_size = gram_bf_size;
    setGramBfSizeIsSet(true);
    return this;
  }

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

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

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

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

  public TColumn setAggregation(@org.apache.thrift.annotation.Nullable java.lang.String aggregation) {
    this.aggregation = aggregation;
    return this;
  }

  public void unsetAggregation() {
    this.aggregation = null;
  }

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

  public void setAggregationIsSet(boolean value) {
    if (!value) {
      this.aggregation = null;
    }
  }

  public boolean isResultIsNullable() {
    return this.result_is_nullable;
  }

  public TColumn setResultIsNullable(boolean result_is_nullable) {
    this.result_is_nullable = result_is_nullable;
    setResultIsNullableIsSet(true);
    return this;
  }

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

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

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

  public boolean isIsAutoIncrement() {
    return this.is_auto_increment;
  }

  public TColumn setIsAutoIncrement(boolean is_auto_increment) {
    this.is_auto_increment = is_auto_increment;
    setIsAutoIncrementIsSet(true);
    return this;
  }

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

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

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

  public int getClusterKeyId() {
    return this.cluster_key_id;
  }

  public TColumn setClusterKeyId(int cluster_key_id) {
    this.cluster_key_id = cluster_key_id;
    setClusterKeyIdIsSet(true);
    return this;
  }

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

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

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

  public int getBeExecVersion() {
    return this.be_exec_version;
  }

  public TColumn setBeExecVersion(int be_exec_version) {
    this.be_exec_version = be_exec_version;
    setBeExecVersionIsSet(true);
    return this;
  }

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

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

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

  /**
   * 
   * @see TPatternType
   */
  @org.apache.thrift.annotation.Nullable
  public TPatternType getPatternType() {
    return this.pattern_type;
  }

  /**
   * 
   * @see TPatternType
   */
  public TColumn setPatternType(@org.apache.thrift.annotation.Nullable TPatternType pattern_type) {
    this.pattern_type = pattern_type;
    return this;
  }

  public void unsetPatternType() {
    this.pattern_type = null;
  }

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

  public void setPatternTypeIsSet(boolean value) {
    if (!value) {
      this.pattern_type = null;
    }
  }

  public boolean isVariantEnableTypedPathsToSparse() {
    return this.variant_enable_typed_paths_to_sparse;
  }

  public TColumn setVariantEnableTypedPathsToSparse(boolean variant_enable_typed_paths_to_sparse) {
    this.variant_enable_typed_paths_to_sparse = variant_enable_typed_paths_to_sparse;
    setVariantEnableTypedPathsToSparseIsSet(true);
    return this;
  }

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

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

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

  public boolean isIsOnUpdateCurrentTimestamp() {
    return this.is_on_update_current_timestamp;
  }

  public TColumn setIsOnUpdateCurrentTimestamp(boolean is_on_update_current_timestamp) {
    this.is_on_update_current_timestamp = is_on_update_current_timestamp;
    setIsOnUpdateCurrentTimestampIsSet(true);
    return this;
  }

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

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

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

  public int getVariantMaxSparseColumnStatisticsSize() {
    return this.variant_max_sparse_column_statistics_size;
  }

  public TColumn setVariantMaxSparseColumnStatisticsSize(int variant_max_sparse_column_statistics_size) {
    this.variant_max_sparse_column_statistics_size = variant_max_sparse_column_statistics_size;
    setVariantMaxSparseColumnStatisticsSizeIsSet(true);
    return this;
  }

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

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

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

  public int getVariantSparseHashShardCount() {
    return this.variant_sparse_hash_shard_count;
  }

  public TColumn setVariantSparseHashShardCount(int variant_sparse_hash_shard_count) {
    this.variant_sparse_hash_shard_count = variant_sparse_hash_shard_count;
    setVariantSparseHashShardCountIsSet(true);
    return this;
  }

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

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

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

  public boolean isVariantEnableDocMode() {
    return this.variant_enable_doc_mode;
  }

  public TColumn setVariantEnableDocMode(boolean variant_enable_doc_mode) {
    this.variant_enable_doc_mode = variant_enable_doc_mode;
    setVariantEnableDocModeIsSet(true);
    return this;
  }

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

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

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

  public long getVariantDocMaterializationMinRows() {
    return this.variant_doc_materialization_min_rows;
  }

  public TColumn setVariantDocMaterializationMinRows(long variant_doc_materialization_min_rows) {
    this.variant_doc_materialization_min_rows = variant_doc_materialization_min_rows;
    setVariantDocMaterializationMinRowsIsSet(true);
    return this;
  }

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

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

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

  public int getVariantDocHashShardCount() {
    return this.variant_doc_hash_shard_count;
  }

  public TColumn setVariantDocHashShardCount(int variant_doc_hash_shard_count) {
    this.variant_doc_hash_shard_count = variant_doc_hash_shard_count;
    setVariantDocHashShardCountIsSet(true);
    return this;
  }

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

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

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

  public boolean isVariantEnableNestedGroup() {
    return this.variant_enable_nested_group;
  }

  public TColumn setVariantEnableNestedGroup(boolean variant_enable_nested_group) {
    this.variant_enable_nested_group = variant_enable_nested_group;
    setVariantEnableNestedGroupIsSet(true);
    return this;
  }

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

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

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

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

    case COLUMN_TYPE:
      if (value == null) {
        unsetColumnType();
      } else {
        setColumnType((org.apache.doris.thrift.TColumnType)value);
      }
      break;

    case AGGREGATION_TYPE:
      if (value == null) {
        unsetAggregationType();
      } else {
        setAggregationType((org.apache.doris.thrift.TAggregationType)value);
      }
      break;

    case IS_KEY:
      if (value == null) {
        unsetIsKey();
      } else {
        setIsKey((java.lang.Boolean)value);
      }
      break;

    case IS_ALLOW_NULL:
      if (value == null) {
        unsetIsAllowNull();
      } else {
        setIsAllowNull((java.lang.Boolean)value);
      }
      break;

    case DEFAULT_VALUE:
      if (value == null) {
        unsetDefaultValue();
      } else {
        setDefaultValue((java.lang.String)value);
      }
      break;

    case IS_BLOOM_FILTER_COLUMN:
      if (value == null) {
        unsetIsBloomFilterColumn();
      } else {
        setIsBloomFilterColumn((java.lang.Boolean)value);
      }
      break;

    case DEFINE_EXPR:
      if (value == null) {
        unsetDefineExpr();
      } else {
        setDefineExpr((org.apache.doris.thrift.TExpr)value);
      }
      break;

    case VISIBLE:
      if (value == null) {
        unsetVisible();
      } else {
        setVisible((java.lang.Boolean)value);
      }
      break;

    case CHILDREN_COLUMN:
      if (value == null) {
        unsetChildrenColumn();
      } else {
        setChildrenColumn((java.util.List<TColumn>)value);
      }
      break;

    case COL_UNIQUE_ID:
      if (value == null) {
        unsetColUniqueId();
      } else {
        setColUniqueId((java.lang.Integer)value);
      }
      break;

    case HAS_BITMAP_INDEX:
      if (value == null) {
        unsetHasBitmapIndex();
      } else {
        setHasBitmapIndex((java.lang.Boolean)value);
      }
      break;

    case HAS_NGRAM_BF_INDEX:
      if (value == null) {
        unsetHasNgramBfIndex();
      } else {
        setHasNgramBfIndex((java.lang.Boolean)value);
      }
      break;

    case GRAM_SIZE:
      if (value == null) {
        unsetGramSize();
      } else {
        setGramSize((java.lang.Integer)value);
      }
      break;

    case GRAM_BF_SIZE:
      if (value == null) {
        unsetGramBfSize();
      } else {
        setGramBfSize((java.lang.Integer)value);
      }
      break;

    case AGGREGATION:
      if (value == null) {
        unsetAggregation();
      } else {
        setAggregation((java.lang.String)value);
      }
      break;

    case RESULT_IS_NULLABLE:
      if (value == null) {
        unsetResultIsNullable();
      } else {
        setResultIsNullable((java.lang.Boolean)value);
      }
      break;

    case IS_AUTO_INCREMENT:
      if (value == null) {
        unsetIsAutoIncrement();
      } else {
        setIsAutoIncrement((java.lang.Boolean)value);
      }
      break;

    case CLUSTER_KEY_ID:
      if (value == null) {
        unsetClusterKeyId();
      } else {
        setClusterKeyId((java.lang.Integer)value);
      }
      break;

    case BE_EXEC_VERSION:
      if (value == null) {
        unsetBeExecVersion();
      } else {
        setBeExecVersion((java.lang.Integer)value);
      }
      break;

    case PATTERN_TYPE:
      if (value == null) {
        unsetPatternType();
      } else {
        setPatternType((TPatternType)value);
      }
      break;

    case VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE:
      if (value == null) {
        unsetVariantEnableTypedPathsToSparse();
      } else {
        setVariantEnableTypedPathsToSparse((java.lang.Boolean)value);
      }
      break;

    case IS_ON_UPDATE_CURRENT_TIMESTAMP:
      if (value == null) {
        unsetIsOnUpdateCurrentTimestamp();
      } else {
        setIsOnUpdateCurrentTimestamp((java.lang.Boolean)value);
      }
      break;

    case VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE:
      if (value == null) {
        unsetVariantMaxSparseColumnStatisticsSize();
      } else {
        setVariantMaxSparseColumnStatisticsSize((java.lang.Integer)value);
      }
      break;

    case VARIANT_SPARSE_HASH_SHARD_COUNT:
      if (value == null) {
        unsetVariantSparseHashShardCount();
      } else {
        setVariantSparseHashShardCount((java.lang.Integer)value);
      }
      break;

    case VARIANT_ENABLE_DOC_MODE:
      if (value == null) {
        unsetVariantEnableDocMode();
      } else {
        setVariantEnableDocMode((java.lang.Boolean)value);
      }
      break;

    case VARIANT_DOC_MATERIALIZATION_MIN_ROWS:
      if (value == null) {
        unsetVariantDocMaterializationMinRows();
      } else {
        setVariantDocMaterializationMinRows((java.lang.Long)value);
      }
      break;

    case VARIANT_DOC_HASH_SHARD_COUNT:
      if (value == null) {
        unsetVariantDocHashShardCount();
      } else {
        setVariantDocHashShardCount((java.lang.Integer)value);
      }
      break;

    case VARIANT_ENABLE_NESTED_GROUP:
      if (value == null) {
        unsetVariantEnableNestedGroup();
      } else {
        setVariantEnableNestedGroup((java.lang.Boolean)value);
      }
      break;

    }
  }

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

    case COLUMN_TYPE:
      return getColumnType();

    case AGGREGATION_TYPE:
      return getAggregationType();

    case IS_KEY:
      return isIsKey();

    case IS_ALLOW_NULL:
      return isIsAllowNull();

    case DEFAULT_VALUE:
      return getDefaultValue();

    case IS_BLOOM_FILTER_COLUMN:
      return isIsBloomFilterColumn();

    case DEFINE_EXPR:
      return getDefineExpr();

    case VISIBLE:
      return isVisible();

    case CHILDREN_COLUMN:
      return getChildrenColumn();

    case COL_UNIQUE_ID:
      return getColUniqueId();

    case HAS_BITMAP_INDEX:
      return isHasBitmapIndex();

    case HAS_NGRAM_BF_INDEX:
      return isHasNgramBfIndex();

    case GRAM_SIZE:
      return getGramSize();

    case GRAM_BF_SIZE:
      return getGramBfSize();

    case AGGREGATION:
      return getAggregation();

    case RESULT_IS_NULLABLE:
      return isResultIsNullable();

    case IS_AUTO_INCREMENT:
      return isIsAutoIncrement();

    case CLUSTER_KEY_ID:
      return getClusterKeyId();

    case BE_EXEC_VERSION:
      return getBeExecVersion();

    case PATTERN_TYPE:
      return getPatternType();

    case VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE:
      return isVariantEnableTypedPathsToSparse();

    case IS_ON_UPDATE_CURRENT_TIMESTAMP:
      return isIsOnUpdateCurrentTimestamp();

    case VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE:
      return getVariantMaxSparseColumnStatisticsSize();

    case VARIANT_SPARSE_HASH_SHARD_COUNT:
      return getVariantSparseHashShardCount();

    case VARIANT_ENABLE_DOC_MODE:
      return isVariantEnableDocMode();

    case VARIANT_DOC_MATERIALIZATION_MIN_ROWS:
      return getVariantDocMaterializationMinRows();

    case VARIANT_DOC_HASH_SHARD_COUNT:
      return getVariantDocHashShardCount();

    case VARIANT_ENABLE_NESTED_GROUP:
      return isVariantEnableNestedGroup();

    }
    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 COLUMN_NAME:
      return isSetColumnName();
    case COLUMN_TYPE:
      return isSetColumnType();
    case AGGREGATION_TYPE:
      return isSetAggregationType();
    case IS_KEY:
      return isSetIsKey();
    case IS_ALLOW_NULL:
      return isSetIsAllowNull();
    case DEFAULT_VALUE:
      return isSetDefaultValue();
    case IS_BLOOM_FILTER_COLUMN:
      return isSetIsBloomFilterColumn();
    case DEFINE_EXPR:
      return isSetDefineExpr();
    case VISIBLE:
      return isSetVisible();
    case CHILDREN_COLUMN:
      return isSetChildrenColumn();
    case COL_UNIQUE_ID:
      return isSetColUniqueId();
    case HAS_BITMAP_INDEX:
      return isSetHasBitmapIndex();
    case HAS_NGRAM_BF_INDEX:
      return isSetHasNgramBfIndex();
    case GRAM_SIZE:
      return isSetGramSize();
    case GRAM_BF_SIZE:
      return isSetGramBfSize();
    case AGGREGATION:
      return isSetAggregation();
    case RESULT_IS_NULLABLE:
      return isSetResultIsNullable();
    case IS_AUTO_INCREMENT:
      return isSetIsAutoIncrement();
    case CLUSTER_KEY_ID:
      return isSetClusterKeyId();
    case BE_EXEC_VERSION:
      return isSetBeExecVersion();
    case PATTERN_TYPE:
      return isSetPatternType();
    case VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE:
      return isSetVariantEnableTypedPathsToSparse();
    case IS_ON_UPDATE_CURRENT_TIMESTAMP:
      return isSetIsOnUpdateCurrentTimestamp();
    case VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE:
      return isSetVariantMaxSparseColumnStatisticsSize();
    case VARIANT_SPARSE_HASH_SHARD_COUNT:
      return isSetVariantSparseHashShardCount();
    case VARIANT_ENABLE_DOC_MODE:
      return isSetVariantEnableDocMode();
    case VARIANT_DOC_MATERIALIZATION_MIN_ROWS:
      return isSetVariantDocMaterializationMinRows();
    case VARIANT_DOC_HASH_SHARD_COUNT:
      return isSetVariantDocHashShardCount();
    case VARIANT_ENABLE_NESTED_GROUP:
      return isSetVariantEnableNestedGroup();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    boolean this_present_column_name = true && this.isSetColumnName();
    boolean that_present_column_name = true && that.isSetColumnName();
    if (this_present_column_name || that_present_column_name) {
      if (!(this_present_column_name && that_present_column_name))
        return false;
      if (!this.column_name.equals(that.column_name))
        return false;
    }

    boolean this_present_column_type = true && this.isSetColumnType();
    boolean that_present_column_type = true && that.isSetColumnType();
    if (this_present_column_type || that_present_column_type) {
      if (!(this_present_column_type && that_present_column_type))
        return false;
      if (!this.column_type.equals(that.column_type))
        return false;
    }

    boolean this_present_aggregation_type = true && this.isSetAggregationType();
    boolean that_present_aggregation_type = true && that.isSetAggregationType();
    if (this_present_aggregation_type || that_present_aggregation_type) {
      if (!(this_present_aggregation_type && that_present_aggregation_type))
        return false;
      if (!this.aggregation_type.equals(that.aggregation_type))
        return false;
    }

    boolean this_present_is_key = true && this.isSetIsKey();
    boolean that_present_is_key = true && that.isSetIsKey();
    if (this_present_is_key || that_present_is_key) {
      if (!(this_present_is_key && that_present_is_key))
        return false;
      if (this.is_key != that.is_key)
        return false;
    }

    boolean this_present_is_allow_null = true && this.isSetIsAllowNull();
    boolean that_present_is_allow_null = true && that.isSetIsAllowNull();
    if (this_present_is_allow_null || that_present_is_allow_null) {
      if (!(this_present_is_allow_null && that_present_is_allow_null))
        return false;
      if (this.is_allow_null != that.is_allow_null)
        return false;
    }

    boolean this_present_default_value = true && this.isSetDefaultValue();
    boolean that_present_default_value = true && that.isSetDefaultValue();
    if (this_present_default_value || that_present_default_value) {
      if (!(this_present_default_value && that_present_default_value))
        return false;
      if (!this.default_value.equals(that.default_value))
        return false;
    }

    boolean this_present_is_bloom_filter_column = true && this.isSetIsBloomFilterColumn();
    boolean that_present_is_bloom_filter_column = true && that.isSetIsBloomFilterColumn();
    if (this_present_is_bloom_filter_column || that_present_is_bloom_filter_column) {
      if (!(this_present_is_bloom_filter_column && that_present_is_bloom_filter_column))
        return false;
      if (this.is_bloom_filter_column != that.is_bloom_filter_column)
        return false;
    }

    boolean this_present_define_expr = true && this.isSetDefineExpr();
    boolean that_present_define_expr = true && that.isSetDefineExpr();
    if (this_present_define_expr || that_present_define_expr) {
      if (!(this_present_define_expr && that_present_define_expr))
        return false;
      if (!this.define_expr.equals(that.define_expr))
        return false;
    }

    boolean this_present_visible = true && this.isSetVisible();
    boolean that_present_visible = true && that.isSetVisible();
    if (this_present_visible || that_present_visible) {
      if (!(this_present_visible && that_present_visible))
        return false;
      if (this.visible != that.visible)
        return false;
    }

    boolean this_present_children_column = true && this.isSetChildrenColumn();
    boolean that_present_children_column = true && that.isSetChildrenColumn();
    if (this_present_children_column || that_present_children_column) {
      if (!(this_present_children_column && that_present_children_column))
        return false;
      if (!this.children_column.equals(that.children_column))
        return false;
    }

    boolean this_present_col_unique_id = true && this.isSetColUniqueId();
    boolean that_present_col_unique_id = true && that.isSetColUniqueId();
    if (this_present_col_unique_id || that_present_col_unique_id) {
      if (!(this_present_col_unique_id && that_present_col_unique_id))
        return false;
      if (this.col_unique_id != that.col_unique_id)
        return false;
    }

    boolean this_present_has_bitmap_index = true && this.isSetHasBitmapIndex();
    boolean that_present_has_bitmap_index = true && that.isSetHasBitmapIndex();
    if (this_present_has_bitmap_index || that_present_has_bitmap_index) {
      if (!(this_present_has_bitmap_index && that_present_has_bitmap_index))
        return false;
      if (this.has_bitmap_index != that.has_bitmap_index)
        return false;
    }

    boolean this_present_has_ngram_bf_index = true && this.isSetHasNgramBfIndex();
    boolean that_present_has_ngram_bf_index = true && that.isSetHasNgramBfIndex();
    if (this_present_has_ngram_bf_index || that_present_has_ngram_bf_index) {
      if (!(this_present_has_ngram_bf_index && that_present_has_ngram_bf_index))
        return false;
      if (this.has_ngram_bf_index != that.has_ngram_bf_index)
        return false;
    }

    boolean this_present_gram_size = true && this.isSetGramSize();
    boolean that_present_gram_size = true && that.isSetGramSize();
    if (this_present_gram_size || that_present_gram_size) {
      if (!(this_present_gram_size && that_present_gram_size))
        return false;
      if (this.gram_size != that.gram_size)
        return false;
    }

    boolean this_present_gram_bf_size = true && this.isSetGramBfSize();
    boolean that_present_gram_bf_size = true && that.isSetGramBfSize();
    if (this_present_gram_bf_size || that_present_gram_bf_size) {
      if (!(this_present_gram_bf_size && that_present_gram_bf_size))
        return false;
      if (this.gram_bf_size != that.gram_bf_size)
        return false;
    }

    boolean this_present_aggregation = true && this.isSetAggregation();
    boolean that_present_aggregation = true && that.isSetAggregation();
    if (this_present_aggregation || that_present_aggregation) {
      if (!(this_present_aggregation && that_present_aggregation))
        return false;
      if (!this.aggregation.equals(that.aggregation))
        return false;
    }

    boolean this_present_result_is_nullable = true && this.isSetResultIsNullable();
    boolean that_present_result_is_nullable = true && that.isSetResultIsNullable();
    if (this_present_result_is_nullable || that_present_result_is_nullable) {
      if (!(this_present_result_is_nullable && that_present_result_is_nullable))
        return false;
      if (this.result_is_nullable != that.result_is_nullable)
        return false;
    }

    boolean this_present_is_auto_increment = true && this.isSetIsAutoIncrement();
    boolean that_present_is_auto_increment = true && that.isSetIsAutoIncrement();
    if (this_present_is_auto_increment || that_present_is_auto_increment) {
      if (!(this_present_is_auto_increment && that_present_is_auto_increment))
        return false;
      if (this.is_auto_increment != that.is_auto_increment)
        return false;
    }

    boolean this_present_cluster_key_id = true && this.isSetClusterKeyId();
    boolean that_present_cluster_key_id = true && that.isSetClusterKeyId();
    if (this_present_cluster_key_id || that_present_cluster_key_id) {
      if (!(this_present_cluster_key_id && that_present_cluster_key_id))
        return false;
      if (this.cluster_key_id != that.cluster_key_id)
        return false;
    }

    boolean this_present_be_exec_version = true && this.isSetBeExecVersion();
    boolean that_present_be_exec_version = true && that.isSetBeExecVersion();
    if (this_present_be_exec_version || that_present_be_exec_version) {
      if (!(this_present_be_exec_version && that_present_be_exec_version))
        return false;
      if (this.be_exec_version != that.be_exec_version)
        return false;
    }

    boolean this_present_pattern_type = true && this.isSetPatternType();
    boolean that_present_pattern_type = true && that.isSetPatternType();
    if (this_present_pattern_type || that_present_pattern_type) {
      if (!(this_present_pattern_type && that_present_pattern_type))
        return false;
      if (!this.pattern_type.equals(that.pattern_type))
        return false;
    }

    boolean this_present_variant_enable_typed_paths_to_sparse = true && this.isSetVariantEnableTypedPathsToSparse();
    boolean that_present_variant_enable_typed_paths_to_sparse = true && that.isSetVariantEnableTypedPathsToSparse();
    if (this_present_variant_enable_typed_paths_to_sparse || that_present_variant_enable_typed_paths_to_sparse) {
      if (!(this_present_variant_enable_typed_paths_to_sparse && that_present_variant_enable_typed_paths_to_sparse))
        return false;
      if (this.variant_enable_typed_paths_to_sparse != that.variant_enable_typed_paths_to_sparse)
        return false;
    }

    boolean this_present_is_on_update_current_timestamp = true && this.isSetIsOnUpdateCurrentTimestamp();
    boolean that_present_is_on_update_current_timestamp = true && that.isSetIsOnUpdateCurrentTimestamp();
    if (this_present_is_on_update_current_timestamp || that_present_is_on_update_current_timestamp) {
      if (!(this_present_is_on_update_current_timestamp && that_present_is_on_update_current_timestamp))
        return false;
      if (this.is_on_update_current_timestamp != that.is_on_update_current_timestamp)
        return false;
    }

    boolean this_present_variant_max_sparse_column_statistics_size = true && this.isSetVariantMaxSparseColumnStatisticsSize();
    boolean that_present_variant_max_sparse_column_statistics_size = true && that.isSetVariantMaxSparseColumnStatisticsSize();
    if (this_present_variant_max_sparse_column_statistics_size || that_present_variant_max_sparse_column_statistics_size) {
      if (!(this_present_variant_max_sparse_column_statistics_size && that_present_variant_max_sparse_column_statistics_size))
        return false;
      if (this.variant_max_sparse_column_statistics_size != that.variant_max_sparse_column_statistics_size)
        return false;
    }

    boolean this_present_variant_sparse_hash_shard_count = true && this.isSetVariantSparseHashShardCount();
    boolean that_present_variant_sparse_hash_shard_count = true && that.isSetVariantSparseHashShardCount();
    if (this_present_variant_sparse_hash_shard_count || that_present_variant_sparse_hash_shard_count) {
      if (!(this_present_variant_sparse_hash_shard_count && that_present_variant_sparse_hash_shard_count))
        return false;
      if (this.variant_sparse_hash_shard_count != that.variant_sparse_hash_shard_count)
        return false;
    }

    boolean this_present_variant_enable_doc_mode = true && this.isSetVariantEnableDocMode();
    boolean that_present_variant_enable_doc_mode = true && that.isSetVariantEnableDocMode();
    if (this_present_variant_enable_doc_mode || that_present_variant_enable_doc_mode) {
      if (!(this_present_variant_enable_doc_mode && that_present_variant_enable_doc_mode))
        return false;
      if (this.variant_enable_doc_mode != that.variant_enable_doc_mode)
        return false;
    }

    boolean this_present_variant_doc_materialization_min_rows = true && this.isSetVariantDocMaterializationMinRows();
    boolean that_present_variant_doc_materialization_min_rows = true && that.isSetVariantDocMaterializationMinRows();
    if (this_present_variant_doc_materialization_min_rows || that_present_variant_doc_materialization_min_rows) {
      if (!(this_present_variant_doc_materialization_min_rows && that_present_variant_doc_materialization_min_rows))
        return false;
      if (this.variant_doc_materialization_min_rows != that.variant_doc_materialization_min_rows)
        return false;
    }

    boolean this_present_variant_doc_hash_shard_count = true && this.isSetVariantDocHashShardCount();
    boolean that_present_variant_doc_hash_shard_count = true && that.isSetVariantDocHashShardCount();
    if (this_present_variant_doc_hash_shard_count || that_present_variant_doc_hash_shard_count) {
      if (!(this_present_variant_doc_hash_shard_count && that_present_variant_doc_hash_shard_count))
        return false;
      if (this.variant_doc_hash_shard_count != that.variant_doc_hash_shard_count)
        return false;
    }

    boolean this_present_variant_enable_nested_group = true && this.isSetVariantEnableNestedGroup();
    boolean that_present_variant_enable_nested_group = true && that.isSetVariantEnableNestedGroup();
    if (this_present_variant_enable_nested_group || that_present_variant_enable_nested_group) {
      if (!(this_present_variant_enable_nested_group && that_present_variant_enable_nested_group))
        return false;
      if (this.variant_enable_nested_group != that.variant_enable_nested_group)
        return false;
    }

    return true;
  }

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

    hashCode = hashCode * 8191 + ((isSetColumnName()) ? 131071 : 524287);
    if (isSetColumnName())
      hashCode = hashCode * 8191 + column_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetColumnType()) ? 131071 : 524287);
    if (isSetColumnType())
      hashCode = hashCode * 8191 + column_type.hashCode();

    hashCode = hashCode * 8191 + ((isSetAggregationType()) ? 131071 : 524287);
    if (isSetAggregationType())
      hashCode = hashCode * 8191 + aggregation_type.getValue();

    hashCode = hashCode * 8191 + ((isSetIsKey()) ? 131071 : 524287);
    if (isSetIsKey())
      hashCode = hashCode * 8191 + ((is_key) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetIsAllowNull()) ? 131071 : 524287);
    if (isSetIsAllowNull())
      hashCode = hashCode * 8191 + ((is_allow_null) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetDefaultValue()) ? 131071 : 524287);
    if (isSetDefaultValue())
      hashCode = hashCode * 8191 + default_value.hashCode();

    hashCode = hashCode * 8191 + ((isSetIsBloomFilterColumn()) ? 131071 : 524287);
    if (isSetIsBloomFilterColumn())
      hashCode = hashCode * 8191 + ((is_bloom_filter_column) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetDefineExpr()) ? 131071 : 524287);
    if (isSetDefineExpr())
      hashCode = hashCode * 8191 + define_expr.hashCode();

    hashCode = hashCode * 8191 + ((isSetVisible()) ? 131071 : 524287);
    if (isSetVisible())
      hashCode = hashCode * 8191 + ((visible) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetChildrenColumn()) ? 131071 : 524287);
    if (isSetChildrenColumn())
      hashCode = hashCode * 8191 + children_column.hashCode();

    hashCode = hashCode * 8191 + ((isSetColUniqueId()) ? 131071 : 524287);
    if (isSetColUniqueId())
      hashCode = hashCode * 8191 + col_unique_id;

    hashCode = hashCode * 8191 + ((isSetHasBitmapIndex()) ? 131071 : 524287);
    if (isSetHasBitmapIndex())
      hashCode = hashCode * 8191 + ((has_bitmap_index) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetHasNgramBfIndex()) ? 131071 : 524287);
    if (isSetHasNgramBfIndex())
      hashCode = hashCode * 8191 + ((has_ngram_bf_index) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetGramSize()) ? 131071 : 524287);
    if (isSetGramSize())
      hashCode = hashCode * 8191 + gram_size;

    hashCode = hashCode * 8191 + ((isSetGramBfSize()) ? 131071 : 524287);
    if (isSetGramBfSize())
      hashCode = hashCode * 8191 + gram_bf_size;

    hashCode = hashCode * 8191 + ((isSetAggregation()) ? 131071 : 524287);
    if (isSetAggregation())
      hashCode = hashCode * 8191 + aggregation.hashCode();

    hashCode = hashCode * 8191 + ((isSetResultIsNullable()) ? 131071 : 524287);
    if (isSetResultIsNullable())
      hashCode = hashCode * 8191 + ((result_is_nullable) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetIsAutoIncrement()) ? 131071 : 524287);
    if (isSetIsAutoIncrement())
      hashCode = hashCode * 8191 + ((is_auto_increment) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetClusterKeyId()) ? 131071 : 524287);
    if (isSetClusterKeyId())
      hashCode = hashCode * 8191 + cluster_key_id;

    hashCode = hashCode * 8191 + ((isSetBeExecVersion()) ? 131071 : 524287);
    if (isSetBeExecVersion())
      hashCode = hashCode * 8191 + be_exec_version;

    hashCode = hashCode * 8191 + ((isSetPatternType()) ? 131071 : 524287);
    if (isSetPatternType())
      hashCode = hashCode * 8191 + pattern_type.getValue();

    hashCode = hashCode * 8191 + ((isSetVariantEnableTypedPathsToSparse()) ? 131071 : 524287);
    if (isSetVariantEnableTypedPathsToSparse())
      hashCode = hashCode * 8191 + ((variant_enable_typed_paths_to_sparse) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetIsOnUpdateCurrentTimestamp()) ? 131071 : 524287);
    if (isSetIsOnUpdateCurrentTimestamp())
      hashCode = hashCode * 8191 + ((is_on_update_current_timestamp) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetVariantMaxSparseColumnStatisticsSize()) ? 131071 : 524287);
    if (isSetVariantMaxSparseColumnStatisticsSize())
      hashCode = hashCode * 8191 + variant_max_sparse_column_statistics_size;

    hashCode = hashCode * 8191 + ((isSetVariantSparseHashShardCount()) ? 131071 : 524287);
    if (isSetVariantSparseHashShardCount())
      hashCode = hashCode * 8191 + variant_sparse_hash_shard_count;

    hashCode = hashCode * 8191 + ((isSetVariantEnableDocMode()) ? 131071 : 524287);
    if (isSetVariantEnableDocMode())
      hashCode = hashCode * 8191 + ((variant_enable_doc_mode) ? 131071 : 524287);

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

    hashCode = hashCode * 8191 + ((isSetVariantDocHashShardCount()) ? 131071 : 524287);
    if (isSetVariantDocHashShardCount())
      hashCode = hashCode * 8191 + variant_doc_hash_shard_count;

    hashCode = hashCode * 8191 + ((isSetVariantEnableNestedGroup()) ? 131071 : 524287);
    if (isSetVariantEnableNestedGroup())
      hashCode = hashCode * 8191 + ((variant_enable_nested_group) ? 131071 : 524287);

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetColumnName(), other.isSetColumnName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetColumnName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.column_name, other.column_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetColumnType(), other.isSetColumnType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetColumnType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.column_type, other.column_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetAggregationType(), other.isSetAggregationType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAggregationType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.aggregation_type, other.aggregation_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsKey(), other.isSetIsKey());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsKey()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_key, other.is_key);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsAllowNull(), other.isSetIsAllowNull());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsAllowNull()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_allow_null, other.is_allow_null);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDefaultValue(), other.isSetDefaultValue());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDefaultValue()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.default_value, other.default_value);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsBloomFilterColumn(), other.isSetIsBloomFilterColumn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsBloomFilterColumn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_bloom_filter_column, other.is_bloom_filter_column);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDefineExpr(), other.isSetDefineExpr());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDefineExpr()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.define_expr, other.define_expr);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVisible(), other.isSetVisible());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVisible()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.visible, other.visible);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetChildrenColumn(), other.isSetChildrenColumn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetChildrenColumn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.children_column, other.children_column);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetColUniqueId(), other.isSetColUniqueId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetColUniqueId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.col_unique_id, other.col_unique_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetHasBitmapIndex(), other.isSetHasBitmapIndex());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHasBitmapIndex()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.has_bitmap_index, other.has_bitmap_index);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetHasNgramBfIndex(), other.isSetHasNgramBfIndex());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetHasNgramBfIndex()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.has_ngram_bf_index, other.has_ngram_bf_index);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetGramSize(), other.isSetGramSize());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetGramSize()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gram_size, other.gram_size);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetGramBfSize(), other.isSetGramBfSize());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetGramBfSize()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gram_bf_size, other.gram_bf_size);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetAggregation(), other.isSetAggregation());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAggregation()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.aggregation, other.aggregation);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetResultIsNullable(), other.isSetResultIsNullable());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetResultIsNullable()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.result_is_nullable, other.result_is_nullable);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsAutoIncrement(), other.isSetIsAutoIncrement());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsAutoIncrement()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_auto_increment, other.is_auto_increment);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetClusterKeyId(), other.isSetClusterKeyId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetClusterKeyId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cluster_key_id, other.cluster_key_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetBeExecVersion(), other.isSetBeExecVersion());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBeExecVersion()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.be_exec_version, other.be_exec_version);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPatternType(), other.isSetPatternType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPatternType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pattern_type, other.pattern_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantEnableTypedPathsToSparse(), other.isSetVariantEnableTypedPathsToSparse());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantEnableTypedPathsToSparse()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_enable_typed_paths_to_sparse, other.variant_enable_typed_paths_to_sparse);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsOnUpdateCurrentTimestamp(), other.isSetIsOnUpdateCurrentTimestamp());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsOnUpdateCurrentTimestamp()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_on_update_current_timestamp, other.is_on_update_current_timestamp);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantMaxSparseColumnStatisticsSize(), other.isSetVariantMaxSparseColumnStatisticsSize());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantMaxSparseColumnStatisticsSize()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_max_sparse_column_statistics_size, other.variant_max_sparse_column_statistics_size);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantSparseHashShardCount(), other.isSetVariantSparseHashShardCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantSparseHashShardCount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_sparse_hash_shard_count, other.variant_sparse_hash_shard_count);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantEnableDocMode(), other.isSetVariantEnableDocMode());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantEnableDocMode()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_enable_doc_mode, other.variant_enable_doc_mode);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantDocMaterializationMinRows(), other.isSetVariantDocMaterializationMinRows());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantDocMaterializationMinRows()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_doc_materialization_min_rows, other.variant_doc_materialization_min_rows);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantDocHashShardCount(), other.isSetVariantDocHashShardCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantDocHashShardCount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_doc_hash_shard_count, other.variant_doc_hash_shard_count);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVariantEnableNestedGroup(), other.isSetVariantEnableNestedGroup());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVariantEnableNestedGroup()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.variant_enable_nested_group, other.variant_enable_nested_group);
      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("TColumn(");
    boolean first = true;

    sb.append("column_name:");
    if (this.column_name == null) {
      sb.append("null");
    } else {
      sb.append(this.column_name);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("column_type:");
    if (this.column_type == null) {
      sb.append("null");
    } else {
      sb.append(this.column_type);
    }
    first = false;
    if (isSetAggregationType()) {
      if (!first) sb.append(", ");
      sb.append("aggregation_type:");
      if (this.aggregation_type == null) {
        sb.append("null");
      } else {
        sb.append(this.aggregation_type);
      }
      first = false;
    }
    if (isSetIsKey()) {
      if (!first) sb.append(", ");
      sb.append("is_key:");
      sb.append(this.is_key);
      first = false;
    }
    if (isSetIsAllowNull()) {
      if (!first) sb.append(", ");
      sb.append("is_allow_null:");
      sb.append(this.is_allow_null);
      first = false;
    }
    if (isSetDefaultValue()) {
      if (!first) sb.append(", ");
      sb.append("default_value:");
      if (this.default_value == null) {
        sb.append("null");
      } else {
        sb.append(this.default_value);
      }
      first = false;
    }
    if (isSetIsBloomFilterColumn()) {
      if (!first) sb.append(", ");
      sb.append("is_bloom_filter_column:");
      sb.append(this.is_bloom_filter_column);
      first = false;
    }
    if (isSetDefineExpr()) {
      if (!first) sb.append(", ");
      sb.append("define_expr:");
      if (this.define_expr == null) {
        sb.append("null");
      } else {
        sb.append(this.define_expr);
      }
      first = false;
    }
    if (isSetVisible()) {
      if (!first) sb.append(", ");
      sb.append("visible:");
      sb.append(this.visible);
      first = false;
    }
    if (isSetChildrenColumn()) {
      if (!first) sb.append(", ");
      sb.append("children_column:");
      if (this.children_column == null) {
        sb.append("null");
      } else {
        sb.append(this.children_column);
      }
      first = false;
    }
    if (isSetColUniqueId()) {
      if (!first) sb.append(", ");
      sb.append("col_unique_id:");
      sb.append(this.col_unique_id);
      first = false;
    }
    if (isSetHasBitmapIndex()) {
      if (!first) sb.append(", ");
      sb.append("has_bitmap_index:");
      sb.append(this.has_bitmap_index);
      first = false;
    }
    if (isSetHasNgramBfIndex()) {
      if (!first) sb.append(", ");
      sb.append("has_ngram_bf_index:");
      sb.append(this.has_ngram_bf_index);
      first = false;
    }
    if (isSetGramSize()) {
      if (!first) sb.append(", ");
      sb.append("gram_size:");
      sb.append(this.gram_size);
      first = false;
    }
    if (isSetGramBfSize()) {
      if (!first) sb.append(", ");
      sb.append("gram_bf_size:");
      sb.append(this.gram_bf_size);
      first = false;
    }
    if (isSetAggregation()) {
      if (!first) sb.append(", ");
      sb.append("aggregation:");
      if (this.aggregation == null) {
        sb.append("null");
      } else {
        sb.append(this.aggregation);
      }
      first = false;
    }
    if (isSetResultIsNullable()) {
      if (!first) sb.append(", ");
      sb.append("result_is_nullable:");
      sb.append(this.result_is_nullable);
      first = false;
    }
    if (isSetIsAutoIncrement()) {
      if (!first) sb.append(", ");
      sb.append("is_auto_increment:");
      sb.append(this.is_auto_increment);
      first = false;
    }
    if (isSetClusterKeyId()) {
      if (!first) sb.append(", ");
      sb.append("cluster_key_id:");
      sb.append(this.cluster_key_id);
      first = false;
    }
    if (isSetBeExecVersion()) {
      if (!first) sb.append(", ");
      sb.append("be_exec_version:");
      sb.append(this.be_exec_version);
      first = false;
    }
    if (isSetPatternType()) {
      if (!first) sb.append(", ");
      sb.append("pattern_type:");
      if (this.pattern_type == null) {
        sb.append("null");
      } else {
        sb.append(this.pattern_type);
      }
      first = false;
    }
    if (isSetVariantEnableTypedPathsToSparse()) {
      if (!first) sb.append(", ");
      sb.append("variant_enable_typed_paths_to_sparse:");
      sb.append(this.variant_enable_typed_paths_to_sparse);
      first = false;
    }
    if (isSetIsOnUpdateCurrentTimestamp()) {
      if (!first) sb.append(", ");
      sb.append("is_on_update_current_timestamp:");
      sb.append(this.is_on_update_current_timestamp);
      first = false;
    }
    if (isSetVariantMaxSparseColumnStatisticsSize()) {
      if (!first) sb.append(", ");
      sb.append("variant_max_sparse_column_statistics_size:");
      sb.append(this.variant_max_sparse_column_statistics_size);
      first = false;
    }
    if (isSetVariantSparseHashShardCount()) {
      if (!first) sb.append(", ");
      sb.append("variant_sparse_hash_shard_count:");
      sb.append(this.variant_sparse_hash_shard_count);
      first = false;
    }
    if (isSetVariantEnableDocMode()) {
      if (!first) sb.append(", ");
      sb.append("variant_enable_doc_mode:");
      sb.append(this.variant_enable_doc_mode);
      first = false;
    }
    if (isSetVariantDocMaterializationMinRows()) {
      if (!first) sb.append(", ");
      sb.append("variant_doc_materialization_min_rows:");
      sb.append(this.variant_doc_materialization_min_rows);
      first = false;
    }
    if (isSetVariantDocHashShardCount()) {
      if (!first) sb.append(", ");
      sb.append("variant_doc_hash_shard_count:");
      sb.append(this.variant_doc_hash_shard_count);
      first = false;
    }
    if (isSetVariantEnableNestedGroup()) {
      if (!first) sb.append(", ");
      sb.append("variant_enable_nested_group:");
      sb.append(this.variant_enable_nested_group);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.thrift.TException {
    // check for required fields
    if (column_name == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'column_name' was not present! Struct: " + toString());
    }
    if (column_type == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'column_type' was not present! Struct: " + toString());
    }
    // check for sub-struct validity
    if (column_type != null) {
      column_type.validate();
    }
    if (define_expr != null) {
      define_expr.validate();
    }
  }

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

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

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

  private static class TColumnStandardScheme extends org.apache.thrift.scheme.StandardScheme<TColumn> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TColumn 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: // COLUMN_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.column_name = iprot.readString();
              struct.setColumnNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // COLUMN_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.column_type = new org.apache.doris.thrift.TColumnType();
              struct.column_type.read(iprot);
              struct.setColumnTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // AGGREGATION_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.aggregation_type = org.apache.doris.thrift.TAggregationType.findByValue(iprot.readI32());
              struct.setAggregationTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // IS_KEY
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_key = iprot.readBool();
              struct.setIsKeyIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // IS_ALLOW_NULL
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_allow_null = iprot.readBool();
              struct.setIsAllowNullIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // DEFAULT_VALUE
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.default_value = iprot.readString();
              struct.setDefaultValueIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // IS_BLOOM_FILTER_COLUMN
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_bloom_filter_column = iprot.readBool();
              struct.setIsBloomFilterColumnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // DEFINE_EXPR
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.define_expr = new org.apache.doris.thrift.TExpr();
              struct.define_expr.read(iprot);
              struct.setDefineExprIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // VISIBLE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.visible = iprot.readBool();
              struct.setVisibleIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // CHILDREN_COLUMN
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
                struct.children_column = new java.util.ArrayList<TColumn>(_list16.size);
                @org.apache.thrift.annotation.Nullable TColumn _elem17;
                for (int _i18 = 0; _i18 < _list16.size; ++_i18)
                {
                  _elem17 = new TColumn();
                  _elem17.read(iprot);
                  struct.children_column.add(_elem17);
                }
                iprot.readListEnd();
              }
              struct.setChildrenColumnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // COL_UNIQUE_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.col_unique_id = iprot.readI32();
              struct.setColUniqueIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // HAS_BITMAP_INDEX
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.has_bitmap_index = iprot.readBool();
              struct.setHasBitmapIndexIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // HAS_NGRAM_BF_INDEX
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.has_ngram_bf_index = iprot.readBool();
              struct.setHasNgramBfIndexIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // GRAM_SIZE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.gram_size = iprot.readI32();
              struct.setGramSizeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // GRAM_BF_SIZE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.gram_bf_size = iprot.readI32();
              struct.setGramBfSizeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // AGGREGATION
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.aggregation = iprot.readString();
              struct.setAggregationIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // RESULT_IS_NULLABLE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.result_is_nullable = iprot.readBool();
              struct.setResultIsNullableIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // IS_AUTO_INCREMENT
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_auto_increment = iprot.readBool();
              struct.setIsAutoIncrementIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 19: // CLUSTER_KEY_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.cluster_key_id = iprot.readI32();
              struct.setClusterKeyIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 20: // BE_EXEC_VERSION
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.be_exec_version = iprot.readI32();
              struct.setBeExecVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 21: // PATTERN_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.pattern_type = org.apache.doris.thrift.TPatternType.findByValue(iprot.readI32());
              struct.setPatternTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 22: // VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.variant_enable_typed_paths_to_sparse = iprot.readBool();
              struct.setVariantEnableTypedPathsToSparseIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 23: // IS_ON_UPDATE_CURRENT_TIMESTAMP
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_on_update_current_timestamp = iprot.readBool();
              struct.setIsOnUpdateCurrentTimestampIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 24: // VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.variant_max_sparse_column_statistics_size = iprot.readI32();
              struct.setVariantMaxSparseColumnStatisticsSizeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 25: // VARIANT_SPARSE_HASH_SHARD_COUNT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.variant_sparse_hash_shard_count = iprot.readI32();
              struct.setVariantSparseHashShardCountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 26: // VARIANT_ENABLE_DOC_MODE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.variant_enable_doc_mode = iprot.readBool();
              struct.setVariantEnableDocModeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 27: // VARIANT_DOC_MATERIALIZATION_MIN_ROWS
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.variant_doc_materialization_min_rows = iprot.readI64();
              struct.setVariantDocMaterializationMinRowsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 28: // VARIANT_DOC_HASH_SHARD_COUNT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.variant_doc_hash_shard_count = iprot.readI32();
              struct.setVariantDocHashShardCountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 29: // VARIANT_ENABLE_NESTED_GROUP
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.variant_enable_nested_group = iprot.readBool();
              struct.setVariantEnableNestedGroupIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

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

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.column_name != null) {
        oprot.writeFieldBegin(COLUMN_NAME_FIELD_DESC);
        oprot.writeString(struct.column_name);
        oprot.writeFieldEnd();
      }
      if (struct.column_type != null) {
        oprot.writeFieldBegin(COLUMN_TYPE_FIELD_DESC);
        struct.column_type.write(oprot);
        oprot.writeFieldEnd();
      }
      if (struct.aggregation_type != null) {
        if (struct.isSetAggregationType()) {
          oprot.writeFieldBegin(AGGREGATION_TYPE_FIELD_DESC);
          oprot.writeI32(struct.aggregation_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetIsKey()) {
        oprot.writeFieldBegin(IS_KEY_FIELD_DESC);
        oprot.writeBool(struct.is_key);
        oprot.writeFieldEnd();
      }
      if (struct.isSetIsAllowNull()) {
        oprot.writeFieldBegin(IS_ALLOW_NULL_FIELD_DESC);
        oprot.writeBool(struct.is_allow_null);
        oprot.writeFieldEnd();
      }
      if (struct.default_value != null) {
        if (struct.isSetDefaultValue()) {
          oprot.writeFieldBegin(DEFAULT_VALUE_FIELD_DESC);
          oprot.writeString(struct.default_value);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetIsBloomFilterColumn()) {
        oprot.writeFieldBegin(IS_BLOOM_FILTER_COLUMN_FIELD_DESC);
        oprot.writeBool(struct.is_bloom_filter_column);
        oprot.writeFieldEnd();
      }
      if (struct.define_expr != null) {
        if (struct.isSetDefineExpr()) {
          oprot.writeFieldBegin(DEFINE_EXPR_FIELD_DESC);
          struct.define_expr.write(oprot);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetVisible()) {
        oprot.writeFieldBegin(VISIBLE_FIELD_DESC);
        oprot.writeBool(struct.visible);
        oprot.writeFieldEnd();
      }
      if (struct.children_column != null) {
        if (struct.isSetChildrenColumn()) {
          oprot.writeFieldBegin(CHILDREN_COLUMN_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.children_column.size()));
            for (TColumn _iter19 : struct.children_column)
            {
              _iter19.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetColUniqueId()) {
        oprot.writeFieldBegin(COL_UNIQUE_ID_FIELD_DESC);
        oprot.writeI32(struct.col_unique_id);
        oprot.writeFieldEnd();
      }
      if (struct.isSetHasBitmapIndex()) {
        oprot.writeFieldBegin(HAS_BITMAP_INDEX_FIELD_DESC);
        oprot.writeBool(struct.has_bitmap_index);
        oprot.writeFieldEnd();
      }
      if (struct.isSetHasNgramBfIndex()) {
        oprot.writeFieldBegin(HAS_NGRAM_BF_INDEX_FIELD_DESC);
        oprot.writeBool(struct.has_ngram_bf_index);
        oprot.writeFieldEnd();
      }
      if (struct.isSetGramSize()) {
        oprot.writeFieldBegin(GRAM_SIZE_FIELD_DESC);
        oprot.writeI32(struct.gram_size);
        oprot.writeFieldEnd();
      }
      if (struct.isSetGramBfSize()) {
        oprot.writeFieldBegin(GRAM_BF_SIZE_FIELD_DESC);
        oprot.writeI32(struct.gram_bf_size);
        oprot.writeFieldEnd();
      }
      if (struct.aggregation != null) {
        if (struct.isSetAggregation()) {
          oprot.writeFieldBegin(AGGREGATION_FIELD_DESC);
          oprot.writeString(struct.aggregation);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetResultIsNullable()) {
        oprot.writeFieldBegin(RESULT_IS_NULLABLE_FIELD_DESC);
        oprot.writeBool(struct.result_is_nullable);
        oprot.writeFieldEnd();
      }
      if (struct.isSetIsAutoIncrement()) {
        oprot.writeFieldBegin(IS_AUTO_INCREMENT_FIELD_DESC);
        oprot.writeBool(struct.is_auto_increment);
        oprot.writeFieldEnd();
      }
      if (struct.isSetClusterKeyId()) {
        oprot.writeFieldBegin(CLUSTER_KEY_ID_FIELD_DESC);
        oprot.writeI32(struct.cluster_key_id);
        oprot.writeFieldEnd();
      }
      if (struct.isSetBeExecVersion()) {
        oprot.writeFieldBegin(BE_EXEC_VERSION_FIELD_DESC);
        oprot.writeI32(struct.be_exec_version);
        oprot.writeFieldEnd();
      }
      if (struct.pattern_type != null) {
        if (struct.isSetPatternType()) {
          oprot.writeFieldBegin(PATTERN_TYPE_FIELD_DESC);
          oprot.writeI32(struct.pattern_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetVariantEnableTypedPathsToSparse()) {
        oprot.writeFieldBegin(VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE_FIELD_DESC);
        oprot.writeBool(struct.variant_enable_typed_paths_to_sparse);
        oprot.writeFieldEnd();
      }
      if (struct.isSetIsOnUpdateCurrentTimestamp()) {
        oprot.writeFieldBegin(IS_ON_UPDATE_CURRENT_TIMESTAMP_FIELD_DESC);
        oprot.writeBool(struct.is_on_update_current_timestamp);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVariantMaxSparseColumnStatisticsSize()) {
        oprot.writeFieldBegin(VARIANT_MAX_SPARSE_COLUMN_STATISTICS_SIZE_FIELD_DESC);
        oprot.writeI32(struct.variant_max_sparse_column_statistics_size);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVariantSparseHashShardCount()) {
        oprot.writeFieldBegin(VARIANT_SPARSE_HASH_SHARD_COUNT_FIELD_DESC);
        oprot.writeI32(struct.variant_sparse_hash_shard_count);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVariantEnableDocMode()) {
        oprot.writeFieldBegin(VARIANT_ENABLE_DOC_MODE_FIELD_DESC);
        oprot.writeBool(struct.variant_enable_doc_mode);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVariantDocMaterializationMinRows()) {
        oprot.writeFieldBegin(VARIANT_DOC_MATERIALIZATION_MIN_ROWS_FIELD_DESC);
        oprot.writeI64(struct.variant_doc_materialization_min_rows);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVariantDocHashShardCount()) {
        oprot.writeFieldBegin(VARIANT_DOC_HASH_SHARD_COUNT_FIELD_DESC);
        oprot.writeI32(struct.variant_doc_hash_shard_count);
        oprot.writeFieldEnd();
      }
      if (struct.isSetVariantEnableNestedGroup()) {
        oprot.writeFieldBegin(VARIANT_ENABLE_NESTED_GROUP_FIELD_DESC);
        oprot.writeBool(struct.variant_enable_nested_group);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TColumnTupleScheme extends org.apache.thrift.scheme.TupleScheme<TColumn> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TColumn struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      oprot.writeString(struct.column_name);
      struct.column_type.write(oprot);
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetAggregationType()) {
        optionals.set(0);
      }
      if (struct.isSetIsKey()) {
        optionals.set(1);
      }
      if (struct.isSetIsAllowNull()) {
        optionals.set(2);
      }
      if (struct.isSetDefaultValue()) {
        optionals.set(3);
      }
      if (struct.isSetIsBloomFilterColumn()) {
        optionals.set(4);
      }
      if (struct.isSetDefineExpr()) {
        optionals.set(5);
      }
      if (struct.isSetVisible()) {
        optionals.set(6);
      }
      if (struct.isSetChildrenColumn()) {
        optionals.set(7);
      }
      if (struct.isSetColUniqueId()) {
        optionals.set(8);
      }
      if (struct.isSetHasBitmapIndex()) {
        optionals.set(9);
      }
      if (struct.isSetHasNgramBfIndex()) {
        optionals.set(10);
      }
      if (struct.isSetGramSize()) {
        optionals.set(11);
      }
      if (struct.isSetGramBfSize()) {
        optionals.set(12);
      }
      if (struct.isSetAggregation()) {
        optionals.set(13);
      }
      if (struct.isSetResultIsNullable()) {
        optionals.set(14);
      }
      if (struct.isSetIsAutoIncrement()) {
        optionals.set(15);
      }
      if (struct.isSetClusterKeyId()) {
        optionals.set(16);
      }
      if (struct.isSetBeExecVersion()) {
        optionals.set(17);
      }
      if (struct.isSetPatternType()) {
        optionals.set(18);
      }
      if (struct.isSetVariantEnableTypedPathsToSparse()) {
        optionals.set(19);
      }
      if (struct.isSetIsOnUpdateCurrentTimestamp()) {
        optionals.set(20);
      }
      if (struct.isSetVariantMaxSparseColumnStatisticsSize()) {
        optionals.set(21);
      }
      if (struct.isSetVariantSparseHashShardCount()) {
        optionals.set(22);
      }
      if (struct.isSetVariantEnableDocMode()) {
        optionals.set(23);
      }
      if (struct.isSetVariantDocMaterializationMinRows()) {
        optionals.set(24);
      }
      if (struct.isSetVariantDocHashShardCount()) {
        optionals.set(25);
      }
      if (struct.isSetVariantEnableNestedGroup()) {
        optionals.set(26);
      }
      oprot.writeBitSet(optionals, 27);
      if (struct.isSetAggregationType()) {
        oprot.writeI32(struct.aggregation_type.getValue());
      }
      if (struct.isSetIsKey()) {
        oprot.writeBool(struct.is_key);
      }
      if (struct.isSetIsAllowNull()) {
        oprot.writeBool(struct.is_allow_null);
      }
      if (struct.isSetDefaultValue()) {
        oprot.writeString(struct.default_value);
      }
      if (struct.isSetIsBloomFilterColumn()) {
        oprot.writeBool(struct.is_bloom_filter_column);
      }
      if (struct.isSetDefineExpr()) {
        struct.define_expr.write(oprot);
      }
      if (struct.isSetVisible()) {
        oprot.writeBool(struct.visible);
      }
      if (struct.isSetChildrenColumn()) {
        {
          oprot.writeI32(struct.children_column.size());
          for (TColumn _iter20 : struct.children_column)
          {
            _iter20.write(oprot);
          }
        }
      }
      if (struct.isSetColUniqueId()) {
        oprot.writeI32(struct.col_unique_id);
      }
      if (struct.isSetHasBitmapIndex()) {
        oprot.writeBool(struct.has_bitmap_index);
      }
      if (struct.isSetHasNgramBfIndex()) {
        oprot.writeBool(struct.has_ngram_bf_index);
      }
      if (struct.isSetGramSize()) {
        oprot.writeI32(struct.gram_size);
      }
      if (struct.isSetGramBfSize()) {
        oprot.writeI32(struct.gram_bf_size);
      }
      if (struct.isSetAggregation()) {
        oprot.writeString(struct.aggregation);
      }
      if (struct.isSetResultIsNullable()) {
        oprot.writeBool(struct.result_is_nullable);
      }
      if (struct.isSetIsAutoIncrement()) {
        oprot.writeBool(struct.is_auto_increment);
      }
      if (struct.isSetClusterKeyId()) {
        oprot.writeI32(struct.cluster_key_id);
      }
      if (struct.isSetBeExecVersion()) {
        oprot.writeI32(struct.be_exec_version);
      }
      if (struct.isSetPatternType()) {
        oprot.writeI32(struct.pattern_type.getValue());
      }
      if (struct.isSetVariantEnableTypedPathsToSparse()) {
        oprot.writeBool(struct.variant_enable_typed_paths_to_sparse);
      }
      if (struct.isSetIsOnUpdateCurrentTimestamp()) {
        oprot.writeBool(struct.is_on_update_current_timestamp);
      }
      if (struct.isSetVariantMaxSparseColumnStatisticsSize()) {
        oprot.writeI32(struct.variant_max_sparse_column_statistics_size);
      }
      if (struct.isSetVariantSparseHashShardCount()) {
        oprot.writeI32(struct.variant_sparse_hash_shard_count);
      }
      if (struct.isSetVariantEnableDocMode()) {
        oprot.writeBool(struct.variant_enable_doc_mode);
      }
      if (struct.isSetVariantDocMaterializationMinRows()) {
        oprot.writeI64(struct.variant_doc_materialization_min_rows);
      }
      if (struct.isSetVariantDocHashShardCount()) {
        oprot.writeI32(struct.variant_doc_hash_shard_count);
      }
      if (struct.isSetVariantEnableNestedGroup()) {
        oprot.writeBool(struct.variant_enable_nested_group);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TColumn struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      struct.column_name = iprot.readString();
      struct.setColumnNameIsSet(true);
      struct.column_type = new org.apache.doris.thrift.TColumnType();
      struct.column_type.read(iprot);
      struct.setColumnTypeIsSet(true);
      java.util.BitSet incoming = iprot.readBitSet(27);
      if (incoming.get(0)) {
        struct.aggregation_type = org.apache.doris.thrift.TAggregationType.findByValue(iprot.readI32());
        struct.setAggregationTypeIsSet(true);
      }
      if (incoming.get(1)) {
        struct.is_key = iprot.readBool();
        struct.setIsKeyIsSet(true);
      }
      if (incoming.get(2)) {
        struct.is_allow_null = iprot.readBool();
        struct.setIsAllowNullIsSet(true);
      }
      if (incoming.get(3)) {
        struct.default_value = iprot.readString();
        struct.setDefaultValueIsSet(true);
      }
      if (incoming.get(4)) {
        struct.is_bloom_filter_column = iprot.readBool();
        struct.setIsBloomFilterColumnIsSet(true);
      }
      if (incoming.get(5)) {
        struct.define_expr = new org.apache.doris.thrift.TExpr();
        struct.define_expr.read(iprot);
        struct.setDefineExprIsSet(true);
      }
      if (incoming.get(6)) {
        struct.visible = iprot.readBool();
        struct.setVisibleIsSet(true);
      }
      if (incoming.get(7)) {
        {
          org.apache.thrift.protocol.TList _list21 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
          struct.children_column = new java.util.ArrayList<TColumn>(_list21.size);
          @org.apache.thrift.annotation.Nullable TColumn _elem22;
          for (int _i23 = 0; _i23 < _list21.size; ++_i23)
          {
            _elem22 = new TColumn();
            _elem22.read(iprot);
            struct.children_column.add(_elem22);
          }
        }
        struct.setChildrenColumnIsSet(true);
      }
      if (incoming.get(8)) {
        struct.col_unique_id = iprot.readI32();
        struct.setColUniqueIdIsSet(true);
      }
      if (incoming.get(9)) {
        struct.has_bitmap_index = iprot.readBool();
        struct.setHasBitmapIndexIsSet(true);
      }
      if (incoming.get(10)) {
        struct.has_ngram_bf_index = iprot.readBool();
        struct.setHasNgramBfIndexIsSet(true);
      }
      if (incoming.get(11)) {
        struct.gram_size = iprot.readI32();
        struct.setGramSizeIsSet(true);
      }
      if (incoming.get(12)) {
        struct.gram_bf_size = iprot.readI32();
        struct.setGramBfSizeIsSet(true);
      }
      if (incoming.get(13)) {
        struct.aggregation = iprot.readString();
        struct.setAggregationIsSet(true);
      }
      if (incoming.get(14)) {
        struct.result_is_nullable = iprot.readBool();
        struct.setResultIsNullableIsSet(true);
      }
      if (incoming.get(15)) {
        struct.is_auto_increment = iprot.readBool();
        struct.setIsAutoIncrementIsSet(true);
      }
      if (incoming.get(16)) {
        struct.cluster_key_id = iprot.readI32();
        struct.setClusterKeyIdIsSet(true);
      }
      if (incoming.get(17)) {
        struct.be_exec_version = iprot.readI32();
        struct.setBeExecVersionIsSet(true);
      }
      if (incoming.get(18)) {
        struct.pattern_type = org.apache.doris.thrift.TPatternType.findByValue(iprot.readI32());
        struct.setPatternTypeIsSet(true);
      }
      if (incoming.get(19)) {
        struct.variant_enable_typed_paths_to_sparse = iprot.readBool();
        struct.setVariantEnableTypedPathsToSparseIsSet(true);
      }
      if (incoming.get(20)) {
        struct.is_on_update_current_timestamp = iprot.readBool();
        struct.setIsOnUpdateCurrentTimestampIsSet(true);
      }
      if (incoming.get(21)) {
        struct.variant_max_sparse_column_statistics_size = iprot.readI32();
        struct.setVariantMaxSparseColumnStatisticsSizeIsSet(true);
      }
      if (incoming.get(22)) {
        struct.variant_sparse_hash_shard_count = iprot.readI32();
        struct.setVariantSparseHashShardCountIsSet(true);
      }
      if (incoming.get(23)) {
        struct.variant_enable_doc_mode = iprot.readBool();
        struct.setVariantEnableDocModeIsSet(true);
      }
      if (incoming.get(24)) {
        struct.variant_doc_materialization_min_rows = iprot.readI64();
        struct.setVariantDocMaterializationMinRowsIsSet(true);
      }
      if (incoming.get(25)) {
        struct.variant_doc_hash_shard_count = iprot.readI32();
        struct.setVariantDocHashShardCountIsSet(true);
      }
      if (incoming.get(26)) {
        struct.variant_enable_nested_group = iprot.readBool();
        struct.setVariantEnableNestedGroupIsSet(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();
  }
}