OlapCommon.java

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: olap_common.proto

package org.apache.doris.proto;

public final class OlapCommon {
  private OlapCommon() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code doris.CompressKind}
   */
  public enum CompressKind
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>COMPRESS_NONE = 0;</code>
     */
    COMPRESS_NONE(0),
    /**
     * <code>COMPRESS_LZO = 1;</code>
     */
    COMPRESS_LZO(1),
    /**
     * <code>COMPRESS_LZ4 = 2;</code>
     */
    COMPRESS_LZ4(2),
    ;

    /**
     * <code>COMPRESS_NONE = 0;</code>
     */
    public static final int COMPRESS_NONE_VALUE = 0;
    /**
     * <code>COMPRESS_LZO = 1;</code>
     */
    public static final int COMPRESS_LZO_VALUE = 1;
    /**
     * <code>COMPRESS_LZ4 = 2;</code>
     */
    public static final int COMPRESS_LZ4_VALUE = 2;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static CompressKind valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static CompressKind forNumber(int value) {
      switch (value) {
        case 0: return COMPRESS_NONE;
        case 1: return COMPRESS_LZO;
        case 2: return COMPRESS_LZ4;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<CompressKind>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        CompressKind> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<CompressKind>() {
            public CompressKind findValueByNumber(int number) {
              return CompressKind.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.apache.doris.proto.OlapCommon.getDescriptor().getEnumTypes().get(0);
    }

    private static final CompressKind[] VALUES = values();

    public static CompressKind valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private CompressKind(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:doris.CompressKind)
  }

  /**
   * Protobuf enum {@code doris.FileType}
   */
  public enum FileType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SEGMENT_FILE = 1;</code>
     */
    SEGMENT_FILE(1),
    /**
     * <code>INVERTED_INDEX_FILE = 2;</code>
     */
    INVERTED_INDEX_FILE(2),
    ;

    /**
     * <code>SEGMENT_FILE = 1;</code>
     */
    public static final int SEGMENT_FILE_VALUE = 1;
    /**
     * <code>INVERTED_INDEX_FILE = 2;</code>
     */
    public static final int INVERTED_INDEX_FILE_VALUE = 2;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static FileType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static FileType forNumber(int value) {
      switch (value) {
        case 1: return SEGMENT_FILE;
        case 2: return INVERTED_INDEX_FILE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<FileType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        FileType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<FileType>() {
            public FileType findValueByNumber(int number) {
              return FileType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.apache.doris.proto.OlapCommon.getDescriptor().getEnumTypes().get(1);
    }

    private static final FileType[] VALUES = values();

    public static FileType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private FileType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:doris.FileType)
  }

  public interface ColumnMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:doris.ColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * ColumnPB.name
     * </pre>
     *
     * <code>required string name = 1;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <pre>
     * ColumnPB.name
     * </pre>
     *
     * <code>required string name = 1;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <pre>
     * ColumnPB.name
     * </pre>
     *
     * <code>required string name = 1;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * ColumnPB.type
     * </pre>
     *
     * <code>required string type = 2;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <pre>
     * ColumnPB.type
     * </pre>
     *
     * <code>required string type = 2;</code>
     * @return The type.
     */
    java.lang.String getType();
    /**
     * <pre>
     * ColumnPB.type
     * </pre>
     *
     * <code>required string type = 2;</code>
     * @return The bytes for type.
     */
    com.google.protobuf.ByteString
        getTypeBytes();

    /**
     * <pre>
     * ColumnPB.aggregation
     * </pre>
     *
     * <code>required string aggregation = 3;</code>
     * @return Whether the aggregation field is set.
     */
    boolean hasAggregation();
    /**
     * <pre>
     * ColumnPB.aggregation
     * </pre>
     *
     * <code>required string aggregation = 3;</code>
     * @return The aggregation.
     */
    java.lang.String getAggregation();
    /**
     * <pre>
     * ColumnPB.aggregation
     * </pre>
     *
     * <code>required string aggregation = 3;</code>
     * @return The bytes for aggregation.
     */
    com.google.protobuf.ByteString
        getAggregationBytes();

    /**
     * <pre>
     * ColumnPB.length
     * </pre>
     *
     * <code>required uint32 length = 4;</code>
     * @return Whether the length field is set.
     */
    boolean hasLength();
    /**
     * <pre>
     * ColumnPB.length
     * </pre>
     *
     * <code>required uint32 length = 4;</code>
     * @return The length.
     */
    int getLength();

    /**
     * <pre>
     * ColumnPB.is_key
     * </pre>
     *
     * <code>required bool is_key = 5;</code>
     * @return Whether the isKey field is set.
     */
    boolean hasIsKey();
    /**
     * <pre>
     * ColumnPB.is_key
     * </pre>
     *
     * <code>required bool is_key = 5;</code>
     * @return The isKey.
     */
    boolean getIsKey();

    /**
     * <pre>
     * ColumnPB.default_value
     * </pre>
     *
     * <code>optional string default_value = 6;</code>
     * @return Whether the defaultValue field is set.
     */
    boolean hasDefaultValue();
    /**
     * <pre>
     * ColumnPB.default_value
     * </pre>
     *
     * <code>optional string default_value = 6;</code>
     * @return The defaultValue.
     */
    java.lang.String getDefaultValue();
    /**
     * <pre>
     * ColumnPB.default_value
     * </pre>
     *
     * <code>optional string default_value = 6;</code>
     * @return The bytes for defaultValue.
     */
    com.google.protobuf.ByteString
        getDefaultValueBytes();

    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 7;</code>
     * @return Whether the referencedColumn field is set.
     */
    boolean hasReferencedColumn();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 7;</code>
     * @return The referencedColumn.
     */
    java.lang.String getReferencedColumn();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 7;</code>
     * @return The bytes for referencedColumn.
     */
    com.google.protobuf.ByteString
        getReferencedColumnBytes();

    /**
     * <pre>
     * ColumnPB.index_length
     * </pre>
     *
     * <code>optional uint32 index_length = 8;</code>
     * @return Whether the indexLength field is set.
     */
    boolean hasIndexLength();
    /**
     * <pre>
     * ColumnPB.index_length
     * </pre>
     *
     * <code>optional uint32 index_length = 8;</code>
     * @return The indexLength.
     */
    int getIndexLength();

    /**
     * <pre>
     * ColumnPB.precision
     * </pre>
     *
     * <code>optional uint32 precision = 9 [default = 27];</code>
     * @return Whether the precision field is set.
     */
    boolean hasPrecision();
    /**
     * <pre>
     * ColumnPB.precision
     * </pre>
     *
     * <code>optional uint32 precision = 9 [default = 27];</code>
     * @return The precision.
     */
    int getPrecision();

    /**
     * <pre>
     * ColumnPB.frac
     * </pre>
     *
     * <code>optional uint32 frac = 10 [default = 9];</code>
     * @return Whether the frac field is set.
     */
    boolean hasFrac();
    /**
     * <pre>
     * ColumnPB.frac
     * </pre>
     *
     * <code>optional uint32 frac = 10 [default = 9];</code>
     * @return The frac.
     */
    int getFrac();

    /**
     * <pre>
     * ColumnPB.is_nullable
     * </pre>
     *
     * <code>optional bool is_allow_null = 11 [default = false];</code>
     * @return Whether the isAllowNull field is set.
     */
    boolean hasIsAllowNull();
    /**
     * <pre>
     * ColumnPB.is_nullable
     * </pre>
     *
     * <code>optional bool is_allow_null = 11 [default = false];</code>
     * @return The isAllowNull.
     */
    boolean getIsAllowNull();

    /**
     * <pre>
     * ColumnPB.unique_id
     * </pre>
     *
     * <code>optional uint32 unique_id = 12;</code>
     * @return Whether the uniqueId field is set.
     */
    boolean hasUniqueId();
    /**
     * <pre>
     * ColumnPB.unique_id
     * </pre>
     *
     * <code>optional uint32 unique_id = 12;</code>
     * @return The uniqueId.
     */
    int getUniqueId();

    /**
     * <pre>
     * not used 
     * </pre>
     *
     * <code>repeated uint32 sub_column = 13;</code>
     * @return A list containing the subColumn.
     */
    java.util.List<java.lang.Integer> getSubColumnList();
    /**
     * <pre>
     * not used 
     * </pre>
     *
     * <code>repeated uint32 sub_column = 13;</code>
     * @return The count of subColumn.
     */
    int getSubColumnCount();
    /**
     * <pre>
     * not used 
     * </pre>
     *
     * <code>repeated uint32 sub_column = 13;</code>
     * @param index The index of the element to return.
     * @return The subColumn at the given index.
     */
    int getSubColumn(int index);

    /**
     * <pre>
     * not used
     * </pre>
     *
     * <code>optional bool is_root_column = 14 [default = false];</code>
     * @return Whether the isRootColumn field is set.
     */
    boolean hasIsRootColumn();
    /**
     * <pre>
     * not used
     * </pre>
     *
     * <code>optional bool is_root_column = 14 [default = false];</code>
     * @return The isRootColumn.
     */
    boolean getIsRootColumn();

    /**
     * <pre>
     * is bloom filter column
     * </pre>
     *
     * <code>optional bool is_bf_column = 15 [default = false];</code>
     * @return Whether the isBfColumn field is set.
     */
    boolean hasIsBfColumn();
    /**
     * <pre>
     * is bloom filter column
     * </pre>
     *
     * <code>optional bool is_bf_column = 15 [default = false];</code>
     * @return The isBfColumn.
     */
    boolean getIsBfColumn();

    /**
     * <pre>
     * is bitmap index column
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 16 [default = false];</code>
     * @return Whether the hasBitmapIndex field is set.
     */
    boolean hasHasBitmapIndex();
    /**
     * <pre>
     * is bitmap index column
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 16 [default = false];</code>
     * @return The hasBitmapIndex.
     */
    boolean getHasBitmapIndex();
  }
  /**
   * Protobuf type {@code doris.ColumnMessage}
   */
  public static final class ColumnMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.ColumnMessage)
      ColumnMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ColumnMessage.newBuilder() to construct.
    private ColumnMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ColumnMessage() {
      name_ = "";
      type_ = "";
      aggregation_ = "";
      defaultValue_ = "";
      referencedColumn_ = "";
      precision_ = 27;
      frac_ = 9;
      subColumn_ = emptyIntList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ColumnMessage();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_ColumnMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_ColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.doris.proto.OlapCommon.ColumnMessage.class, org.apache.doris.proto.OlapCommon.ColumnMessage.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object name_ = "";
    /**
     * <pre>
     * ColumnPB.name
     * </pre>
     *
     * <code>required string name = 1;</code>
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * ColumnPB.name
     * </pre>
     *
     * <code>required string name = 1;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * ColumnPB.name
     * </pre>
     *
     * <code>required string name = 1;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object type_ = "";
    /**
     * <pre>
     * ColumnPB.type
     * </pre>
     *
     * <code>required string type = 2;</code>
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * ColumnPB.type
     * </pre>
     *
     * <code>required string type = 2;</code>
     * @return The type.
     */
    @java.lang.Override
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * ColumnPB.type
     * </pre>
     *
     * <code>required string type = 2;</code>
     * @return The bytes for type.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AGGREGATION_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object aggregation_ = "";
    /**
     * <pre>
     * ColumnPB.aggregation
     * </pre>
     *
     * <code>required string aggregation = 3;</code>
     * @return Whether the aggregation field is set.
     */
    @java.lang.Override
    public boolean hasAggregation() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * ColumnPB.aggregation
     * </pre>
     *
     * <code>required string aggregation = 3;</code>
     * @return The aggregation.
     */
    @java.lang.Override
    public java.lang.String getAggregation() {
      java.lang.Object ref = aggregation_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          aggregation_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * ColumnPB.aggregation
     * </pre>
     *
     * <code>required string aggregation = 3;</code>
     * @return The bytes for aggregation.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAggregationBytes() {
      java.lang.Object ref = aggregation_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        aggregation_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LENGTH_FIELD_NUMBER = 4;
    private int length_ = 0;
    /**
     * <pre>
     * ColumnPB.length
     * </pre>
     *
     * <code>required uint32 length = 4;</code>
     * @return Whether the length field is set.
     */
    @java.lang.Override
    public boolean hasLength() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * ColumnPB.length
     * </pre>
     *
     * <code>required uint32 length = 4;</code>
     * @return The length.
     */
    @java.lang.Override
    public int getLength() {
      return length_;
    }

    public static final int IS_KEY_FIELD_NUMBER = 5;
    private boolean isKey_ = false;
    /**
     * <pre>
     * ColumnPB.is_key
     * </pre>
     *
     * <code>required bool is_key = 5;</code>
     * @return Whether the isKey field is set.
     */
    @java.lang.Override
    public boolean hasIsKey() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * ColumnPB.is_key
     * </pre>
     *
     * <code>required bool is_key = 5;</code>
     * @return The isKey.
     */
    @java.lang.Override
    public boolean getIsKey() {
      return isKey_;
    }

    public static final int DEFAULT_VALUE_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object defaultValue_ = "";
    /**
     * <pre>
     * ColumnPB.default_value
     * </pre>
     *
     * <code>optional string default_value = 6;</code>
     * @return Whether the defaultValue field is set.
     */
    @java.lang.Override
    public boolean hasDefaultValue() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * ColumnPB.default_value
     * </pre>
     *
     * <code>optional string default_value = 6;</code>
     * @return The defaultValue.
     */
    @java.lang.Override
    public java.lang.String getDefaultValue() {
      java.lang.Object ref = defaultValue_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          defaultValue_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * ColumnPB.default_value
     * </pre>
     *
     * <code>optional string default_value = 6;</code>
     * @return The bytes for defaultValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDefaultValueBytes() {
      java.lang.Object ref = defaultValue_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        defaultValue_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REFERENCED_COLUMN_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object referencedColumn_ = "";
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 7;</code>
     * @return Whether the referencedColumn field is set.
     */
    @java.lang.Override
    public boolean hasReferencedColumn() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 7;</code>
     * @return The referencedColumn.
     */
    @java.lang.Override
    public java.lang.String getReferencedColumn() {
      java.lang.Object ref = referencedColumn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          referencedColumn_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 7;</code>
     * @return The bytes for referencedColumn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getReferencedColumnBytes() {
      java.lang.Object ref = referencedColumn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        referencedColumn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INDEX_LENGTH_FIELD_NUMBER = 8;
    private int indexLength_ = 0;
    /**
     * <pre>
     * ColumnPB.index_length
     * </pre>
     *
     * <code>optional uint32 index_length = 8;</code>
     * @return Whether the indexLength field is set.
     */
    @java.lang.Override
    public boolean hasIndexLength() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * ColumnPB.index_length
     * </pre>
     *
     * <code>optional uint32 index_length = 8;</code>
     * @return The indexLength.
     */
    @java.lang.Override
    public int getIndexLength() {
      return indexLength_;
    }

    public static final int PRECISION_FIELD_NUMBER = 9;
    private int precision_ = 27;
    /**
     * <pre>
     * ColumnPB.precision
     * </pre>
     *
     * <code>optional uint32 precision = 9 [default = 27];</code>
     * @return Whether the precision field is set.
     */
    @java.lang.Override
    public boolean hasPrecision() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * ColumnPB.precision
     * </pre>
     *
     * <code>optional uint32 precision = 9 [default = 27];</code>
     * @return The precision.
     */
    @java.lang.Override
    public int getPrecision() {
      return precision_;
    }

    public static final int FRAC_FIELD_NUMBER = 10;
    private int frac_ = 9;
    /**
     * <pre>
     * ColumnPB.frac
     * </pre>
     *
     * <code>optional uint32 frac = 10 [default = 9];</code>
     * @return Whether the frac field is set.
     */
    @java.lang.Override
    public boolean hasFrac() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * ColumnPB.frac
     * </pre>
     *
     * <code>optional uint32 frac = 10 [default = 9];</code>
     * @return The frac.
     */
    @java.lang.Override
    public int getFrac() {
      return frac_;
    }

    public static final int IS_ALLOW_NULL_FIELD_NUMBER = 11;
    private boolean isAllowNull_ = false;
    /**
     * <pre>
     * ColumnPB.is_nullable
     * </pre>
     *
     * <code>optional bool is_allow_null = 11 [default = false];</code>
     * @return Whether the isAllowNull field is set.
     */
    @java.lang.Override
    public boolean hasIsAllowNull() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * ColumnPB.is_nullable
     * </pre>
     *
     * <code>optional bool is_allow_null = 11 [default = false];</code>
     * @return The isAllowNull.
     */
    @java.lang.Override
    public boolean getIsAllowNull() {
      return isAllowNull_;
    }

    public static final int UNIQUE_ID_FIELD_NUMBER = 12;
    private int uniqueId_ = 0;
    /**
     * <pre>
     * ColumnPB.unique_id
     * </pre>
     *
     * <code>optional uint32 unique_id = 12;</code>
     * @return Whether the uniqueId field is set.
     */
    @java.lang.Override
    public boolean hasUniqueId() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * ColumnPB.unique_id
     * </pre>
     *
     * <code>optional uint32 unique_id = 12;</code>
     * @return The uniqueId.
     */
    @java.lang.Override
    public int getUniqueId() {
      return uniqueId_;
    }

    public static final int SUB_COLUMN_FIELD_NUMBER = 13;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList subColumn_ =
        emptyIntList();
    /**
     * <pre>
     * not used 
     * </pre>
     *
     * <code>repeated uint32 sub_column = 13;</code>
     * @return A list containing the subColumn.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getSubColumnList() {
      return subColumn_;
    }
    /**
     * <pre>
     * not used 
     * </pre>
     *
     * <code>repeated uint32 sub_column = 13;</code>
     * @return The count of subColumn.
     */
    public int getSubColumnCount() {
      return subColumn_.size();
    }
    /**
     * <pre>
     * not used 
     * </pre>
     *
     * <code>repeated uint32 sub_column = 13;</code>
     * @param index The index of the element to return.
     * @return The subColumn at the given index.
     */
    public int getSubColumn(int index) {
      return subColumn_.getInt(index);
    }

    public static final int IS_ROOT_COLUMN_FIELD_NUMBER = 14;
    private boolean isRootColumn_ = false;
    /**
     * <pre>
     * not used
     * </pre>
     *
     * <code>optional bool is_root_column = 14 [default = false];</code>
     * @return Whether the isRootColumn field is set.
     */
    @java.lang.Override
    public boolean hasIsRootColumn() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * not used
     * </pre>
     *
     * <code>optional bool is_root_column = 14 [default = false];</code>
     * @return The isRootColumn.
     */
    @java.lang.Override
    public boolean getIsRootColumn() {
      return isRootColumn_;
    }

    public static final int IS_BF_COLUMN_FIELD_NUMBER = 15;
    private boolean isBfColumn_ = false;
    /**
     * <pre>
     * is bloom filter column
     * </pre>
     *
     * <code>optional bool is_bf_column = 15 [default = false];</code>
     * @return Whether the isBfColumn field is set.
     */
    @java.lang.Override
    public boolean hasIsBfColumn() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * is bloom filter column
     * </pre>
     *
     * <code>optional bool is_bf_column = 15 [default = false];</code>
     * @return The isBfColumn.
     */
    @java.lang.Override
    public boolean getIsBfColumn() {
      return isBfColumn_;
    }

    public static final int HAS_BITMAP_INDEX_FIELD_NUMBER = 16;
    private boolean hasBitmapIndex_ = false;
    /**
     * <pre>
     * is bitmap index column
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 16 [default = false];</code>
     * @return Whether the hasBitmapIndex field is set.
     */
    @java.lang.Override
    public boolean hasHasBitmapIndex() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * is bitmap index column
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 16 [default = false];</code>
     * @return The hasBitmapIndex.
     */
    @java.lang.Override
    public boolean getHasBitmapIndex() {
      return hasBitmapIndex_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAggregation()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLength()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIsKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, type_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, aggregation_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, length_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeBool(5, isKey_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, defaultValue_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, referencedColumn_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, indexLength_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt32(9, precision_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt32(10, frac_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeBool(11, isAllowNull_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt32(12, uniqueId_);
      }
      for (int i = 0; i < subColumn_.size(); i++) {
        output.writeUInt32(13, subColumn_.getInt(i));
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeBool(14, isRootColumn_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeBool(15, isBfColumn_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeBool(16, hasBitmapIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, type_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, aggregation_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, length_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, isKey_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, defaultValue_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, referencedColumn_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, indexLength_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, precision_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, frac_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, isAllowNull_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, uniqueId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < subColumn_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(subColumn_.getInt(i));
        }
        size += dataSize;
        size += 1 * getSubColumnList().size();
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, isRootColumn_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(15, isBfColumn_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(16, hasBitmapIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.apache.doris.proto.OlapCommon.ColumnMessage)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapCommon.ColumnMessage other = (org.apache.doris.proto.OlapCommon.ColumnMessage) obj;

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (!getType()
            .equals(other.getType())) return false;
      }
      if (hasAggregation() != other.hasAggregation()) return false;
      if (hasAggregation()) {
        if (!getAggregation()
            .equals(other.getAggregation())) return false;
      }
      if (hasLength() != other.hasLength()) return false;
      if (hasLength()) {
        if (getLength()
            != other.getLength()) return false;
      }
      if (hasIsKey() != other.hasIsKey()) return false;
      if (hasIsKey()) {
        if (getIsKey()
            != other.getIsKey()) return false;
      }
      if (hasDefaultValue() != other.hasDefaultValue()) return false;
      if (hasDefaultValue()) {
        if (!getDefaultValue()
            .equals(other.getDefaultValue())) return false;
      }
      if (hasReferencedColumn() != other.hasReferencedColumn()) return false;
      if (hasReferencedColumn()) {
        if (!getReferencedColumn()
            .equals(other.getReferencedColumn())) return false;
      }
      if (hasIndexLength() != other.hasIndexLength()) return false;
      if (hasIndexLength()) {
        if (getIndexLength()
            != other.getIndexLength()) return false;
      }
      if (hasPrecision() != other.hasPrecision()) return false;
      if (hasPrecision()) {
        if (getPrecision()
            != other.getPrecision()) return false;
      }
      if (hasFrac() != other.hasFrac()) return false;
      if (hasFrac()) {
        if (getFrac()
            != other.getFrac()) return false;
      }
      if (hasIsAllowNull() != other.hasIsAllowNull()) return false;
      if (hasIsAllowNull()) {
        if (getIsAllowNull()
            != other.getIsAllowNull()) return false;
      }
      if (hasUniqueId() != other.hasUniqueId()) return false;
      if (hasUniqueId()) {
        if (getUniqueId()
            != other.getUniqueId()) return false;
      }
      if (!getSubColumnList()
          .equals(other.getSubColumnList())) return false;
      if (hasIsRootColumn() != other.hasIsRootColumn()) return false;
      if (hasIsRootColumn()) {
        if (getIsRootColumn()
            != other.getIsRootColumn()) return false;
      }
      if (hasIsBfColumn() != other.hasIsBfColumn()) return false;
      if (hasIsBfColumn()) {
        if (getIsBfColumn()
            != other.getIsBfColumn()) return false;
      }
      if (hasHasBitmapIndex() != other.hasHasBitmapIndex()) return false;
      if (hasHasBitmapIndex()) {
        if (getHasBitmapIndex()
            != other.getHasBitmapIndex()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasAggregation()) {
        hash = (37 * hash) + AGGREGATION_FIELD_NUMBER;
        hash = (53 * hash) + getAggregation().hashCode();
      }
      if (hasLength()) {
        hash = (37 * hash) + LENGTH_FIELD_NUMBER;
        hash = (53 * hash) + getLength();
      }
      if (hasIsKey()) {
        hash = (37 * hash) + IS_KEY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsKey());
      }
      if (hasDefaultValue()) {
        hash = (37 * hash) + DEFAULT_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultValue().hashCode();
      }
      if (hasReferencedColumn()) {
        hash = (37 * hash) + REFERENCED_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getReferencedColumn().hashCode();
      }
      if (hasIndexLength()) {
        hash = (37 * hash) + INDEX_LENGTH_FIELD_NUMBER;
        hash = (53 * hash) + getIndexLength();
      }
      if (hasPrecision()) {
        hash = (37 * hash) + PRECISION_FIELD_NUMBER;
        hash = (53 * hash) + getPrecision();
      }
      if (hasFrac()) {
        hash = (37 * hash) + FRAC_FIELD_NUMBER;
        hash = (53 * hash) + getFrac();
      }
      if (hasIsAllowNull()) {
        hash = (37 * hash) + IS_ALLOW_NULL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsAllowNull());
      }
      if (hasUniqueId()) {
        hash = (37 * hash) + UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getUniqueId();
      }
      if (getSubColumnCount() > 0) {
        hash = (37 * hash) + SUB_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getSubColumnList().hashCode();
      }
      if (hasIsRootColumn()) {
        hash = (37 * hash) + IS_ROOT_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsRootColumn());
      }
      if (hasIsBfColumn()) {
        hash = (37 * hash) + IS_BF_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsBfColumn());
      }
      if (hasHasBitmapIndex()) {
        hash = (37 * hash) + HAS_BITMAP_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getHasBitmapIndex());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.ColumnMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.apache.doris.proto.OlapCommon.ColumnMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code doris.ColumnMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.ColumnMessage)
        org.apache.doris.proto.OlapCommon.ColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_ColumnMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_ColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapCommon.ColumnMessage.class, org.apache.doris.proto.OlapCommon.ColumnMessage.Builder.class);
      }

      // Construct using org.apache.doris.proto.OlapCommon.ColumnMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        name_ = "";
        type_ = "";
        aggregation_ = "";
        length_ = 0;
        isKey_ = false;
        defaultValue_ = "";
        referencedColumn_ = "";
        indexLength_ = 0;
        precision_ = 27;
        frac_ = 9;
        isAllowNull_ = false;
        uniqueId_ = 0;
        subColumn_ = emptyIntList();
        isRootColumn_ = false;
        isBfColumn_ = false;
        hasBitmapIndex_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_ColumnMessage_descriptor;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.ColumnMessage getDefaultInstanceForType() {
        return org.apache.doris.proto.OlapCommon.ColumnMessage.getDefaultInstance();
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.ColumnMessage build() {
        org.apache.doris.proto.OlapCommon.ColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.ColumnMessage buildPartial() {
        org.apache.doris.proto.OlapCommon.ColumnMessage result = new org.apache.doris.proto.OlapCommon.ColumnMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(org.apache.doris.proto.OlapCommon.ColumnMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.name_ = name_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.type_ = type_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.aggregation_ = aggregation_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.length_ = length_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.isKey_ = isKey_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.defaultValue_ = defaultValue_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.referencedColumn_ = referencedColumn_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.indexLength_ = indexLength_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.precision_ = precision_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.frac_ = frac_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.isAllowNull_ = isAllowNull_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.uniqueId_ = uniqueId_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          subColumn_.makeImmutable();
          result.subColumn_ = subColumn_;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.isRootColumn_ = isRootColumn_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.isBfColumn_ = isBfColumn_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.hasBitmapIndex_ = hasBitmapIndex_;
          to_bitField0_ |= 0x00004000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.doris.proto.OlapCommon.ColumnMessage) {
          return mergeFrom((org.apache.doris.proto.OlapCommon.ColumnMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapCommon.ColumnMessage other) {
        if (other == org.apache.doris.proto.OlapCommon.ColumnMessage.getDefaultInstance()) return this;
        if (other.hasName()) {
          name_ = other.name_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasType()) {
          type_ = other.type_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasAggregation()) {
          aggregation_ = other.aggregation_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasLength()) {
          setLength(other.getLength());
        }
        if (other.hasIsKey()) {
          setIsKey(other.getIsKey());
        }
        if (other.hasDefaultValue()) {
          defaultValue_ = other.defaultValue_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasReferencedColumn()) {
          referencedColumn_ = other.referencedColumn_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (other.hasIndexLength()) {
          setIndexLength(other.getIndexLength());
        }
        if (other.hasPrecision()) {
          setPrecision(other.getPrecision());
        }
        if (other.hasFrac()) {
          setFrac(other.getFrac());
        }
        if (other.hasIsAllowNull()) {
          setIsAllowNull(other.getIsAllowNull());
        }
        if (other.hasUniqueId()) {
          setUniqueId(other.getUniqueId());
        }
        if (!other.subColumn_.isEmpty()) {
          if (subColumn_.isEmpty()) {
            subColumn_ = other.subColumn_;
            subColumn_.makeImmutable();
            bitField0_ |= 0x00001000;
          } else {
            ensureSubColumnIsMutable();
            subColumn_.addAll(other.subColumn_);
          }
          onChanged();
        }
        if (other.hasIsRootColumn()) {
          setIsRootColumn(other.getIsRootColumn());
        }
        if (other.hasIsBfColumn()) {
          setIsBfColumn(other.getIsBfColumn());
        }
        if (other.hasHasBitmapIndex()) {
          setHasBitmapIndex(other.getHasBitmapIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasName()) {
          return false;
        }
        if (!hasType()) {
          return false;
        }
        if (!hasAggregation()) {
          return false;
        }
        if (!hasLength()) {
          return false;
        }
        if (!hasIsKey()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                name_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                type_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                aggregation_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                length_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                isKey_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                defaultValue_ = input.readBytes();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                referencedColumn_ = input.readBytes();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 64: {
                indexLength_ = input.readUInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                precision_ = input.readUInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                frac_ = input.readUInt32();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                isAllowNull_ = input.readBool();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                uniqueId_ = input.readUInt32();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                int v = input.readUInt32();
                ensureSubColumnIsMutable();
                subColumn_.addInt(v);
                break;
              } // case 104
              case 106: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureSubColumnIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  subColumn_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 106
              case 112: {
                isRootColumn_ = input.readBool();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 120: {
                isBfColumn_ = input.readBool();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              case 128: {
                hasBitmapIndex_ = input.readBool();
                bitField0_ |= 0x00008000;
                break;
              } // case 128
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <pre>
       * ColumnPB.name
       * </pre>
       *
       * <code>required string name = 1;</code>
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * ColumnPB.name
       * </pre>
       *
       * <code>required string name = 1;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.name
       * </pre>
       *
       * <code>required string name = 1;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.name
       * </pre>
       *
       * <code>required string name = 1;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        name_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.name
       * </pre>
       *
       * <code>required string name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = getDefaultInstance().getName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.name
       * </pre>
       *
       * <code>required string name = 1;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        name_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       * <pre>
       * ColumnPB.type
       * </pre>
       *
       * <code>required string type = 2;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * ColumnPB.type
       * </pre>
       *
       * <code>required string type = 2;</code>
       * @return The type.
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.type
       * </pre>
       *
       * <code>required string type = 2;</code>
       * @return The bytes for type.
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.type
       * </pre>
       *
       * <code>required string type = 2;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        type_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.type
       * </pre>
       *
       * <code>required string type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        type_ = getDefaultInstance().getType();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.type
       * </pre>
       *
       * <code>required string type = 2;</code>
       * @param value The bytes for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        type_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object aggregation_ = "";
      /**
       * <pre>
       * ColumnPB.aggregation
       * </pre>
       *
       * <code>required string aggregation = 3;</code>
       * @return Whether the aggregation field is set.
       */
      public boolean hasAggregation() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * ColumnPB.aggregation
       * </pre>
       *
       * <code>required string aggregation = 3;</code>
       * @return The aggregation.
       */
      public java.lang.String getAggregation() {
        java.lang.Object ref = aggregation_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            aggregation_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.aggregation
       * </pre>
       *
       * <code>required string aggregation = 3;</code>
       * @return The bytes for aggregation.
       */
      public com.google.protobuf.ByteString
          getAggregationBytes() {
        java.lang.Object ref = aggregation_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          aggregation_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.aggregation
       * </pre>
       *
       * <code>required string aggregation = 3;</code>
       * @param value The aggregation to set.
       * @return This builder for chaining.
       */
      public Builder setAggregation(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        aggregation_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.aggregation
       * </pre>
       *
       * <code>required string aggregation = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAggregation() {
        aggregation_ = getDefaultInstance().getAggregation();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.aggregation
       * </pre>
       *
       * <code>required string aggregation = 3;</code>
       * @param value The bytes for aggregation to set.
       * @return This builder for chaining.
       */
      public Builder setAggregationBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        aggregation_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private int length_ ;
      /**
       * <pre>
       * ColumnPB.length
       * </pre>
       *
       * <code>required uint32 length = 4;</code>
       * @return Whether the length field is set.
       */
      @java.lang.Override
      public boolean hasLength() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * ColumnPB.length
       * </pre>
       *
       * <code>required uint32 length = 4;</code>
       * @return The length.
       */
      @java.lang.Override
      public int getLength() {
        return length_;
      }
      /**
       * <pre>
       * ColumnPB.length
       * </pre>
       *
       * <code>required uint32 length = 4;</code>
       * @param value The length to set.
       * @return This builder for chaining.
       */
      public Builder setLength(int value) {

        length_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.length
       * </pre>
       *
       * <code>required uint32 length = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLength() {
        bitField0_ = (bitField0_ & ~0x00000008);
        length_ = 0;
        onChanged();
        return this;
      }

      private boolean isKey_ ;
      /**
       * <pre>
       * ColumnPB.is_key
       * </pre>
       *
       * <code>required bool is_key = 5;</code>
       * @return Whether the isKey field is set.
       */
      @java.lang.Override
      public boolean hasIsKey() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * ColumnPB.is_key
       * </pre>
       *
       * <code>required bool is_key = 5;</code>
       * @return The isKey.
       */
      @java.lang.Override
      public boolean getIsKey() {
        return isKey_;
      }
      /**
       * <pre>
       * ColumnPB.is_key
       * </pre>
       *
       * <code>required bool is_key = 5;</code>
       * @param value The isKey to set.
       * @return This builder for chaining.
       */
      public Builder setIsKey(boolean value) {

        isKey_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.is_key
       * </pre>
       *
       * <code>required bool is_key = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsKey() {
        bitField0_ = (bitField0_ & ~0x00000010);
        isKey_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object defaultValue_ = "";
      /**
       * <pre>
       * ColumnPB.default_value
       * </pre>
       *
       * <code>optional string default_value = 6;</code>
       * @return Whether the defaultValue field is set.
       */
      public boolean hasDefaultValue() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * ColumnPB.default_value
       * </pre>
       *
       * <code>optional string default_value = 6;</code>
       * @return The defaultValue.
       */
      public java.lang.String getDefaultValue() {
        java.lang.Object ref = defaultValue_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            defaultValue_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.default_value
       * </pre>
       *
       * <code>optional string default_value = 6;</code>
       * @return The bytes for defaultValue.
       */
      public com.google.protobuf.ByteString
          getDefaultValueBytes() {
        java.lang.Object ref = defaultValue_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          defaultValue_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * ColumnPB.default_value
       * </pre>
       *
       * <code>optional string default_value = 6;</code>
       * @param value The defaultValue to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        defaultValue_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.default_value
       * </pre>
       *
       * <code>optional string default_value = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDefaultValue() {
        defaultValue_ = getDefaultInstance().getDefaultValue();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.default_value
       * </pre>
       *
       * <code>optional string default_value = 6;</code>
       * @param value The bytes for defaultValue to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        defaultValue_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private java.lang.Object referencedColumn_ = "";
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 7;</code>
       * @return Whether the referencedColumn field is set.
       */
      public boolean hasReferencedColumn() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 7;</code>
       * @return The referencedColumn.
       */
      public java.lang.String getReferencedColumn() {
        java.lang.Object ref = referencedColumn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            referencedColumn_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 7;</code>
       * @return The bytes for referencedColumn.
       */
      public com.google.protobuf.ByteString
          getReferencedColumnBytes() {
        java.lang.Object ref = referencedColumn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          referencedColumn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 7;</code>
       * @param value The referencedColumn to set.
       * @return This builder for chaining.
       */
      public Builder setReferencedColumn(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        referencedColumn_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearReferencedColumn() {
        referencedColumn_ = getDefaultInstance().getReferencedColumn();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 7;</code>
       * @param value The bytes for referencedColumn to set.
       * @return This builder for chaining.
       */
      public Builder setReferencedColumnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        referencedColumn_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private int indexLength_ ;
      /**
       * <pre>
       * ColumnPB.index_length
       * </pre>
       *
       * <code>optional uint32 index_length = 8;</code>
       * @return Whether the indexLength field is set.
       */
      @java.lang.Override
      public boolean hasIndexLength() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * ColumnPB.index_length
       * </pre>
       *
       * <code>optional uint32 index_length = 8;</code>
       * @return The indexLength.
       */
      @java.lang.Override
      public int getIndexLength() {
        return indexLength_;
      }
      /**
       * <pre>
       * ColumnPB.index_length
       * </pre>
       *
       * <code>optional uint32 index_length = 8;</code>
       * @param value The indexLength to set.
       * @return This builder for chaining.
       */
      public Builder setIndexLength(int value) {

        indexLength_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.index_length
       * </pre>
       *
       * <code>optional uint32 index_length = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexLength() {
        bitField0_ = (bitField0_ & ~0x00000080);
        indexLength_ = 0;
        onChanged();
        return this;
      }

      private int precision_ = 27;
      /**
       * <pre>
       * ColumnPB.precision
       * </pre>
       *
       * <code>optional uint32 precision = 9 [default = 27];</code>
       * @return Whether the precision field is set.
       */
      @java.lang.Override
      public boolean hasPrecision() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * ColumnPB.precision
       * </pre>
       *
       * <code>optional uint32 precision = 9 [default = 27];</code>
       * @return The precision.
       */
      @java.lang.Override
      public int getPrecision() {
        return precision_;
      }
      /**
       * <pre>
       * ColumnPB.precision
       * </pre>
       *
       * <code>optional uint32 precision = 9 [default = 27];</code>
       * @param value The precision to set.
       * @return This builder for chaining.
       */
      public Builder setPrecision(int value) {

        precision_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.precision
       * </pre>
       *
       * <code>optional uint32 precision = 9 [default = 27];</code>
       * @return This builder for chaining.
       */
      public Builder clearPrecision() {
        bitField0_ = (bitField0_ & ~0x00000100);
        precision_ = 27;
        onChanged();
        return this;
      }

      private int frac_ = 9;
      /**
       * <pre>
       * ColumnPB.frac
       * </pre>
       *
       * <code>optional uint32 frac = 10 [default = 9];</code>
       * @return Whether the frac field is set.
       */
      @java.lang.Override
      public boolean hasFrac() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * ColumnPB.frac
       * </pre>
       *
       * <code>optional uint32 frac = 10 [default = 9];</code>
       * @return The frac.
       */
      @java.lang.Override
      public int getFrac() {
        return frac_;
      }
      /**
       * <pre>
       * ColumnPB.frac
       * </pre>
       *
       * <code>optional uint32 frac = 10 [default = 9];</code>
       * @param value The frac to set.
       * @return This builder for chaining.
       */
      public Builder setFrac(int value) {

        frac_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.frac
       * </pre>
       *
       * <code>optional uint32 frac = 10 [default = 9];</code>
       * @return This builder for chaining.
       */
      public Builder clearFrac() {
        bitField0_ = (bitField0_ & ~0x00000200);
        frac_ = 9;
        onChanged();
        return this;
      }

      private boolean isAllowNull_ ;
      /**
       * <pre>
       * ColumnPB.is_nullable
       * </pre>
       *
       * <code>optional bool is_allow_null = 11 [default = false];</code>
       * @return Whether the isAllowNull field is set.
       */
      @java.lang.Override
      public boolean hasIsAllowNull() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * ColumnPB.is_nullable
       * </pre>
       *
       * <code>optional bool is_allow_null = 11 [default = false];</code>
       * @return The isAllowNull.
       */
      @java.lang.Override
      public boolean getIsAllowNull() {
        return isAllowNull_;
      }
      /**
       * <pre>
       * ColumnPB.is_nullable
       * </pre>
       *
       * <code>optional bool is_allow_null = 11 [default = false];</code>
       * @param value The isAllowNull to set.
       * @return This builder for chaining.
       */
      public Builder setIsAllowNull(boolean value) {

        isAllowNull_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.is_nullable
       * </pre>
       *
       * <code>optional bool is_allow_null = 11 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsAllowNull() {
        bitField0_ = (bitField0_ & ~0x00000400);
        isAllowNull_ = false;
        onChanged();
        return this;
      }

      private int uniqueId_ ;
      /**
       * <pre>
       * ColumnPB.unique_id
       * </pre>
       *
       * <code>optional uint32 unique_id = 12;</code>
       * @return Whether the uniqueId field is set.
       */
      @java.lang.Override
      public boolean hasUniqueId() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * ColumnPB.unique_id
       * </pre>
       *
       * <code>optional uint32 unique_id = 12;</code>
       * @return The uniqueId.
       */
      @java.lang.Override
      public int getUniqueId() {
        return uniqueId_;
      }
      /**
       * <pre>
       * ColumnPB.unique_id
       * </pre>
       *
       * <code>optional uint32 unique_id = 12;</code>
       * @param value The uniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setUniqueId(int value) {

        uniqueId_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnPB.unique_id
       * </pre>
       *
       * <code>optional uint32 unique_id = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearUniqueId() {
        bitField0_ = (bitField0_ & ~0x00000800);
        uniqueId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList subColumn_ = emptyIntList();
      private void ensureSubColumnIsMutable() {
        if (!subColumn_.isModifiable()) {
          subColumn_ = makeMutableCopy(subColumn_);
        }
        bitField0_ |= 0x00001000;
      }
      /**
       * <pre>
       * not used 
       * </pre>
       *
       * <code>repeated uint32 sub_column = 13;</code>
       * @return A list containing the subColumn.
       */
      public java.util.List<java.lang.Integer>
          getSubColumnList() {
        subColumn_.makeImmutable();
        return subColumn_;
      }
      /**
       * <pre>
       * not used 
       * </pre>
       *
       * <code>repeated uint32 sub_column = 13;</code>
       * @return The count of subColumn.
       */
      public int getSubColumnCount() {
        return subColumn_.size();
      }
      /**
       * <pre>
       * not used 
       * </pre>
       *
       * <code>repeated uint32 sub_column = 13;</code>
       * @param index The index of the element to return.
       * @return The subColumn at the given index.
       */
      public int getSubColumn(int index) {
        return subColumn_.getInt(index);
      }
      /**
       * <pre>
       * not used 
       * </pre>
       *
       * <code>repeated uint32 sub_column = 13;</code>
       * @param index The index to set the value at.
       * @param value The subColumn to set.
       * @return This builder for chaining.
       */
      public Builder setSubColumn(
          int index, int value) {

        ensureSubColumnIsMutable();
        subColumn_.setInt(index, value);
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * not used 
       * </pre>
       *
       * <code>repeated uint32 sub_column = 13;</code>
       * @param value The subColumn to add.
       * @return This builder for chaining.
       */
      public Builder addSubColumn(int value) {

        ensureSubColumnIsMutable();
        subColumn_.addInt(value);
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * not used 
       * </pre>
       *
       * <code>repeated uint32 sub_column = 13;</code>
       * @param values The subColumn to add.
       * @return This builder for chaining.
       */
      public Builder addAllSubColumn(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSubColumnIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, subColumn_);
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * not used 
       * </pre>
       *
       * <code>repeated uint32 sub_column = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubColumn() {
        subColumn_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00001000);
        onChanged();
        return this;
      }

      private boolean isRootColumn_ ;
      /**
       * <pre>
       * not used
       * </pre>
       *
       * <code>optional bool is_root_column = 14 [default = false];</code>
       * @return Whether the isRootColumn field is set.
       */
      @java.lang.Override
      public boolean hasIsRootColumn() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * not used
       * </pre>
       *
       * <code>optional bool is_root_column = 14 [default = false];</code>
       * @return The isRootColumn.
       */
      @java.lang.Override
      public boolean getIsRootColumn() {
        return isRootColumn_;
      }
      /**
       * <pre>
       * not used
       * </pre>
       *
       * <code>optional bool is_root_column = 14 [default = false];</code>
       * @param value The isRootColumn to set.
       * @return This builder for chaining.
       */
      public Builder setIsRootColumn(boolean value) {

        isRootColumn_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * not used
       * </pre>
       *
       * <code>optional bool is_root_column = 14 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsRootColumn() {
        bitField0_ = (bitField0_ & ~0x00002000);
        isRootColumn_ = false;
        onChanged();
        return this;
      }

      private boolean isBfColumn_ ;
      /**
       * <pre>
       * is bloom filter column
       * </pre>
       *
       * <code>optional bool is_bf_column = 15 [default = false];</code>
       * @return Whether the isBfColumn field is set.
       */
      @java.lang.Override
      public boolean hasIsBfColumn() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * is bloom filter column
       * </pre>
       *
       * <code>optional bool is_bf_column = 15 [default = false];</code>
       * @return The isBfColumn.
       */
      @java.lang.Override
      public boolean getIsBfColumn() {
        return isBfColumn_;
      }
      /**
       * <pre>
       * is bloom filter column
       * </pre>
       *
       * <code>optional bool is_bf_column = 15 [default = false];</code>
       * @param value The isBfColumn to set.
       * @return This builder for chaining.
       */
      public Builder setIsBfColumn(boolean value) {

        isBfColumn_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * is bloom filter column
       * </pre>
       *
       * <code>optional bool is_bf_column = 15 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsBfColumn() {
        bitField0_ = (bitField0_ & ~0x00004000);
        isBfColumn_ = false;
        onChanged();
        return this;
      }

      private boolean hasBitmapIndex_ ;
      /**
       * <pre>
       * is bitmap index column
       * </pre>
       *
       * <code>optional bool has_bitmap_index = 16 [default = false];</code>
       * @return Whether the hasBitmapIndex field is set.
       */
      @java.lang.Override
      public boolean hasHasBitmapIndex() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * is bitmap index column
       * </pre>
       *
       * <code>optional bool has_bitmap_index = 16 [default = false];</code>
       * @return The hasBitmapIndex.
       */
      @java.lang.Override
      public boolean getHasBitmapIndex() {
        return hasBitmapIndex_;
      }
      /**
       * <pre>
       * is bitmap index column
       * </pre>
       *
       * <code>optional bool has_bitmap_index = 16 [default = false];</code>
       * @param value The hasBitmapIndex to set.
       * @return This builder for chaining.
       */
      public Builder setHasBitmapIndex(boolean value) {

        hasBitmapIndex_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * is bitmap index column
       * </pre>
       *
       * <code>optional bool has_bitmap_index = 16 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearHasBitmapIndex() {
        bitField0_ = (bitField0_ & ~0x00008000);
        hasBitmapIndex_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:doris.ColumnMessage)
    }

    // @@protoc_insertion_point(class_scope:doris.ColumnMessage)
    private static final org.apache.doris.proto.OlapCommon.ColumnMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.apache.doris.proto.OlapCommon.ColumnMessage();
    }

    public static org.apache.doris.proto.OlapCommon.ColumnMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ColumnMessage>
        PARSER = new com.google.protobuf.AbstractParser<ColumnMessage>() {
      @java.lang.Override
      public ColumnMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ColumnMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ColumnMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.ColumnMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PCounterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:doris.PCounter)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required string item = 1;</code>
     * @return Whether the item field is set.
     */
    boolean hasItem();
    /**
     * <code>required string item = 1;</code>
     * @return The item.
     */
    java.lang.String getItem();
    /**
     * <code>required string item = 1;</code>
     * @return The bytes for item.
     */
    com.google.protobuf.ByteString
        getItemBytes();

    /**
     * <code>required uint64 count = 2;</code>
     * @return Whether the count field is set.
     */
    boolean hasCount();
    /**
     * <code>required uint64 count = 2;</code>
     * @return The count.
     */
    long getCount();
  }
  /**
   * Protobuf type {@code doris.PCounter}
   */
  public static final class PCounter extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PCounter)
      PCounterOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PCounter.newBuilder() to construct.
    private PCounter(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PCounter() {
      item_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PCounter();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_PCounter_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_PCounter_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.doris.proto.OlapCommon.PCounter.class, org.apache.doris.proto.OlapCommon.PCounter.Builder.class);
    }

    private int bitField0_;
    public static final int ITEM_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object item_ = "";
    /**
     * <code>required string item = 1;</code>
     * @return Whether the item field is set.
     */
    @java.lang.Override
    public boolean hasItem() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string item = 1;</code>
     * @return The item.
     */
    @java.lang.Override
    public java.lang.String getItem() {
      java.lang.Object ref = item_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          item_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string item = 1;</code>
     * @return The bytes for item.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getItemBytes() {
      java.lang.Object ref = item_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        item_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COUNT_FIELD_NUMBER = 2;
    private long count_ = 0L;
    /**
     * <code>required uint64 count = 2;</code>
     * @return Whether the count field is set.
     */
    @java.lang.Override
    public boolean hasCount() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint64 count = 2;</code>
     * @return The count.
     */
    @java.lang.Override
    public long getCount() {
      return count_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasItem()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, item_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, count_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, item_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, count_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.apache.doris.proto.OlapCommon.PCounter)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapCommon.PCounter other = (org.apache.doris.proto.OlapCommon.PCounter) obj;

      if (hasItem() != other.hasItem()) return false;
      if (hasItem()) {
        if (!getItem()
            .equals(other.getItem())) return false;
      }
      if (hasCount() != other.hasCount()) return false;
      if (hasCount()) {
        if (getCount()
            != other.getCount()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasItem()) {
        hash = (37 * hash) + ITEM_FIELD_NUMBER;
        hash = (53 * hash) + getItem().hashCode();
      }
      if (hasCount()) {
        hash = (37 * hash) + COUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCount());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static org.apache.doris.proto.OlapCommon.PCounter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapCommon.PCounter parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.PCounter parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.apache.doris.proto.OlapCommon.PCounter prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code doris.PCounter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.PCounter)
        org.apache.doris.proto.OlapCommon.PCounterOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_PCounter_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_PCounter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapCommon.PCounter.class, org.apache.doris.proto.OlapCommon.PCounter.Builder.class);
      }

      // Construct using org.apache.doris.proto.OlapCommon.PCounter.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        item_ = "";
        count_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_PCounter_descriptor;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.PCounter getDefaultInstanceForType() {
        return org.apache.doris.proto.OlapCommon.PCounter.getDefaultInstance();
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.PCounter build() {
        org.apache.doris.proto.OlapCommon.PCounter result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.PCounter buildPartial() {
        org.apache.doris.proto.OlapCommon.PCounter result = new org.apache.doris.proto.OlapCommon.PCounter(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(org.apache.doris.proto.OlapCommon.PCounter result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.item_ = item_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.count_ = count_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.doris.proto.OlapCommon.PCounter) {
          return mergeFrom((org.apache.doris.proto.OlapCommon.PCounter)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapCommon.PCounter other) {
        if (other == org.apache.doris.proto.OlapCommon.PCounter.getDefaultInstance()) return this;
        if (other.hasItem()) {
          item_ = other.item_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasCount()) {
          setCount(other.getCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasItem()) {
          return false;
        }
        if (!hasCount()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                item_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                count_ = input.readUInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object item_ = "";
      /**
       * <code>required string item = 1;</code>
       * @return Whether the item field is set.
       */
      public boolean hasItem() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string item = 1;</code>
       * @return The item.
       */
      public java.lang.String getItem() {
        java.lang.Object ref = item_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            item_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string item = 1;</code>
       * @return The bytes for item.
       */
      public com.google.protobuf.ByteString
          getItemBytes() {
        java.lang.Object ref = item_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          item_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string item = 1;</code>
       * @param value The item to set.
       * @return This builder for chaining.
       */
      public Builder setItem(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        item_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required string item = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItem() {
        item_ = getDefaultInstance().getItem();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>required string item = 1;</code>
       * @param value The bytes for item to set.
       * @return This builder for chaining.
       */
      public Builder setItemBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        item_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private long count_ ;
      /**
       * <code>required uint64 count = 2;</code>
       * @return Whether the count field is set.
       */
      @java.lang.Override
      public boolean hasCount() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint64 count = 2;</code>
       * @return The count.
       */
      @java.lang.Override
      public long getCount() {
        return count_;
      }
      /**
       * <code>required uint64 count = 2;</code>
       * @param value The count to set.
       * @return This builder for chaining.
       */
      public Builder setCount(long value) {

        count_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint64 count = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        count_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:doris.PCounter)
    }

    // @@protoc_insertion_point(class_scope:doris.PCounter)
    private static final org.apache.doris.proto.OlapCommon.PCounter DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.apache.doris.proto.OlapCommon.PCounter();
    }

    public static org.apache.doris.proto.OlapCommon.PCounter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PCounter>
        PARSER = new com.google.protobuf.AbstractParser<PCounter>() {
      @java.lang.Override
      public PCounter parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PCounter> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PCounter> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.PCounter getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PTopNCounterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:doris.PTopNCounter)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required uint32 top_num = 1;</code>
     * @return Whether the topNum field is set.
     */
    boolean hasTopNum();
    /**
     * <code>required uint32 top_num = 1;</code>
     * @return The topNum.
     */
    int getTopNum();

    /**
     * <code>required uint32 space_expand_rate = 2;</code>
     * @return Whether the spaceExpandRate field is set.
     */
    boolean hasSpaceExpandRate();
    /**
     * <code>required uint32 space_expand_rate = 2;</code>
     * @return The spaceExpandRate.
     */
    int getSpaceExpandRate();

    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    java.util.List<org.apache.doris.proto.OlapCommon.PCounter> 
        getCounterList();
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    org.apache.doris.proto.OlapCommon.PCounter getCounter(int index);
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    int getCounterCount();
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapCommon.PCounterOrBuilder> 
        getCounterOrBuilderList();
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    org.apache.doris.proto.OlapCommon.PCounterOrBuilder getCounterOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code doris.PTopNCounter}
   */
  public static final class PTopNCounter extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PTopNCounter)
      PTopNCounterOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PTopNCounter.newBuilder() to construct.
    private PTopNCounter(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PTopNCounter() {
      counter_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PTopNCounter();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_PTopNCounter_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_PTopNCounter_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.doris.proto.OlapCommon.PTopNCounter.class, org.apache.doris.proto.OlapCommon.PTopNCounter.Builder.class);
    }

    private int bitField0_;
    public static final int TOP_NUM_FIELD_NUMBER = 1;
    private int topNum_ = 0;
    /**
     * <code>required uint32 top_num = 1;</code>
     * @return Whether the topNum field is set.
     */
    @java.lang.Override
    public boolean hasTopNum() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 top_num = 1;</code>
     * @return The topNum.
     */
    @java.lang.Override
    public int getTopNum() {
      return topNum_;
    }

    public static final int SPACE_EXPAND_RATE_FIELD_NUMBER = 2;
    private int spaceExpandRate_ = 0;
    /**
     * <code>required uint32 space_expand_rate = 2;</code>
     * @return Whether the spaceExpandRate field is set.
     */
    @java.lang.Override
    public boolean hasSpaceExpandRate() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 space_expand_rate = 2;</code>
     * @return The spaceExpandRate.
     */
    @java.lang.Override
    public int getSpaceExpandRate() {
      return spaceExpandRate_;
    }

    public static final int COUNTER_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapCommon.PCounter> counter_;
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapCommon.PCounter> getCounterList() {
      return counter_;
    }
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapCommon.PCounterOrBuilder> 
        getCounterOrBuilderList() {
      return counter_;
    }
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    @java.lang.Override
    public int getCounterCount() {
      return counter_.size();
    }
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.PCounter getCounter(int index) {
      return counter_.get(index);
    }
    /**
     * <code>repeated .doris.PCounter counter = 3;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.PCounterOrBuilder getCounterOrBuilder(
        int index) {
      return counter_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasTopNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSpaceExpandRate()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getCounterCount(); i++) {
        if (!getCounter(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, topNum_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, spaceExpandRate_);
      }
      for (int i = 0; i < counter_.size(); i++) {
        output.writeMessage(3, counter_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, topNum_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, spaceExpandRate_);
      }
      for (int i = 0; i < counter_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, counter_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.apache.doris.proto.OlapCommon.PTopNCounter)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapCommon.PTopNCounter other = (org.apache.doris.proto.OlapCommon.PTopNCounter) obj;

      if (hasTopNum() != other.hasTopNum()) return false;
      if (hasTopNum()) {
        if (getTopNum()
            != other.getTopNum()) return false;
      }
      if (hasSpaceExpandRate() != other.hasSpaceExpandRate()) return false;
      if (hasSpaceExpandRate()) {
        if (getSpaceExpandRate()
            != other.getSpaceExpandRate()) return false;
      }
      if (!getCounterList()
          .equals(other.getCounterList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTopNum()) {
        hash = (37 * hash) + TOP_NUM_FIELD_NUMBER;
        hash = (53 * hash) + getTopNum();
      }
      if (hasSpaceExpandRate()) {
        hash = (37 * hash) + SPACE_EXPAND_RATE_FIELD_NUMBER;
        hash = (53 * hash) + getSpaceExpandRate();
      }
      if (getCounterCount() > 0) {
        hash = (37 * hash) + COUNTER_FIELD_NUMBER;
        hash = (53 * hash) + getCounterList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.PTopNCounter parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.apache.doris.proto.OlapCommon.PTopNCounter prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code doris.PTopNCounter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.PTopNCounter)
        org.apache.doris.proto.OlapCommon.PTopNCounterOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_PTopNCounter_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_PTopNCounter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapCommon.PTopNCounter.class, org.apache.doris.proto.OlapCommon.PTopNCounter.Builder.class);
      }

      // Construct using org.apache.doris.proto.OlapCommon.PTopNCounter.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        topNum_ = 0;
        spaceExpandRate_ = 0;
        if (counterBuilder_ == null) {
          counter_ = java.util.Collections.emptyList();
        } else {
          counter_ = null;
          counterBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_PTopNCounter_descriptor;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.PTopNCounter getDefaultInstanceForType() {
        return org.apache.doris.proto.OlapCommon.PTopNCounter.getDefaultInstance();
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.PTopNCounter build() {
        org.apache.doris.proto.OlapCommon.PTopNCounter result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.PTopNCounter buildPartial() {
        org.apache.doris.proto.OlapCommon.PTopNCounter result = new org.apache.doris.proto.OlapCommon.PTopNCounter(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapCommon.PTopNCounter result) {
        if (counterBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            counter_ = java.util.Collections.unmodifiableList(counter_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.counter_ = counter_;
        } else {
          result.counter_ = counterBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapCommon.PTopNCounter result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.topNum_ = topNum_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.spaceExpandRate_ = spaceExpandRate_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.doris.proto.OlapCommon.PTopNCounter) {
          return mergeFrom((org.apache.doris.proto.OlapCommon.PTopNCounter)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapCommon.PTopNCounter other) {
        if (other == org.apache.doris.proto.OlapCommon.PTopNCounter.getDefaultInstance()) return this;
        if (other.hasTopNum()) {
          setTopNum(other.getTopNum());
        }
        if (other.hasSpaceExpandRate()) {
          setSpaceExpandRate(other.getSpaceExpandRate());
        }
        if (counterBuilder_ == null) {
          if (!other.counter_.isEmpty()) {
            if (counter_.isEmpty()) {
              counter_ = other.counter_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureCounterIsMutable();
              counter_.addAll(other.counter_);
            }
            onChanged();
          }
        } else {
          if (!other.counter_.isEmpty()) {
            if (counterBuilder_.isEmpty()) {
              counterBuilder_.dispose();
              counterBuilder_ = null;
              counter_ = other.counter_;
              bitField0_ = (bitField0_ & ~0x00000004);
              counterBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCounterFieldBuilder() : null;
            } else {
              counterBuilder_.addAllMessages(other.counter_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasTopNum()) {
          return false;
        }
        if (!hasSpaceExpandRate()) {
          return false;
        }
        for (int i = 0; i < getCounterCount(); i++) {
          if (!getCounter(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                topNum_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                spaceExpandRate_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                org.apache.doris.proto.OlapCommon.PCounter m =
                    input.readMessage(
                        org.apache.doris.proto.OlapCommon.PCounter.PARSER,
                        extensionRegistry);
                if (counterBuilder_ == null) {
                  ensureCounterIsMutable();
                  counter_.add(m);
                } else {
                  counterBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int topNum_ ;
      /**
       * <code>required uint32 top_num = 1;</code>
       * @return Whether the topNum field is set.
       */
      @java.lang.Override
      public boolean hasTopNum() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 top_num = 1;</code>
       * @return The topNum.
       */
      @java.lang.Override
      public int getTopNum() {
        return topNum_;
      }
      /**
       * <code>required uint32 top_num = 1;</code>
       * @param value The topNum to set.
       * @return This builder for chaining.
       */
      public Builder setTopNum(int value) {

        topNum_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 top_num = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTopNum() {
        bitField0_ = (bitField0_ & ~0x00000001);
        topNum_ = 0;
        onChanged();
        return this;
      }

      private int spaceExpandRate_ ;
      /**
       * <code>required uint32 space_expand_rate = 2;</code>
       * @return Whether the spaceExpandRate field is set.
       */
      @java.lang.Override
      public boolean hasSpaceExpandRate() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 space_expand_rate = 2;</code>
       * @return The spaceExpandRate.
       */
      @java.lang.Override
      public int getSpaceExpandRate() {
        return spaceExpandRate_;
      }
      /**
       * <code>required uint32 space_expand_rate = 2;</code>
       * @param value The spaceExpandRate to set.
       * @return This builder for chaining.
       */
      public Builder setSpaceExpandRate(int value) {

        spaceExpandRate_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 space_expand_rate = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpaceExpandRate() {
        bitField0_ = (bitField0_ & ~0x00000002);
        spaceExpandRate_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapCommon.PCounter> counter_ =
        java.util.Collections.emptyList();
      private void ensureCounterIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          counter_ = new java.util.ArrayList<org.apache.doris.proto.OlapCommon.PCounter>(counter_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.PCounter, org.apache.doris.proto.OlapCommon.PCounter.Builder, org.apache.doris.proto.OlapCommon.PCounterOrBuilder> counterBuilder_;

      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.PCounter> getCounterList() {
        if (counterBuilder_ == null) {
          return java.util.Collections.unmodifiableList(counter_);
        } else {
          return counterBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public int getCounterCount() {
        if (counterBuilder_ == null) {
          return counter_.size();
        } else {
          return counterBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public org.apache.doris.proto.OlapCommon.PCounter getCounter(int index) {
        if (counterBuilder_ == null) {
          return counter_.get(index);
        } else {
          return counterBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder setCounter(
          int index, org.apache.doris.proto.OlapCommon.PCounter value) {
        if (counterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCounterIsMutable();
          counter_.set(index, value);
          onChanged();
        } else {
          counterBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder setCounter(
          int index, org.apache.doris.proto.OlapCommon.PCounter.Builder builderForValue) {
        if (counterBuilder_ == null) {
          ensureCounterIsMutable();
          counter_.set(index, builderForValue.build());
          onChanged();
        } else {
          counterBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder addCounter(org.apache.doris.proto.OlapCommon.PCounter value) {
        if (counterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCounterIsMutable();
          counter_.add(value);
          onChanged();
        } else {
          counterBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder addCounter(
          int index, org.apache.doris.proto.OlapCommon.PCounter value) {
        if (counterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCounterIsMutable();
          counter_.add(index, value);
          onChanged();
        } else {
          counterBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder addCounter(
          org.apache.doris.proto.OlapCommon.PCounter.Builder builderForValue) {
        if (counterBuilder_ == null) {
          ensureCounterIsMutable();
          counter_.add(builderForValue.build());
          onChanged();
        } else {
          counterBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder addCounter(
          int index, org.apache.doris.proto.OlapCommon.PCounter.Builder builderForValue) {
        if (counterBuilder_ == null) {
          ensureCounterIsMutable();
          counter_.add(index, builderForValue.build());
          onChanged();
        } else {
          counterBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder addAllCounter(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapCommon.PCounter> values) {
        if (counterBuilder_ == null) {
          ensureCounterIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, counter_);
          onChanged();
        } else {
          counterBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder clearCounter() {
        if (counterBuilder_ == null) {
          counter_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          counterBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public Builder removeCounter(int index) {
        if (counterBuilder_ == null) {
          ensureCounterIsMutable();
          counter_.remove(index);
          onChanged();
        } else {
          counterBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public org.apache.doris.proto.OlapCommon.PCounter.Builder getCounterBuilder(
          int index) {
        return getCounterFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public org.apache.doris.proto.OlapCommon.PCounterOrBuilder getCounterOrBuilder(
          int index) {
        if (counterBuilder_ == null) {
          return counter_.get(index);  } else {
          return counterBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapCommon.PCounterOrBuilder> 
           getCounterOrBuilderList() {
        if (counterBuilder_ != null) {
          return counterBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(counter_);
        }
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public org.apache.doris.proto.OlapCommon.PCounter.Builder addCounterBuilder() {
        return getCounterFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapCommon.PCounter.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public org.apache.doris.proto.OlapCommon.PCounter.Builder addCounterBuilder(
          int index) {
        return getCounterFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapCommon.PCounter.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PCounter counter = 3;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.PCounter.Builder> 
           getCounterBuilderList() {
        return getCounterFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.PCounter, org.apache.doris.proto.OlapCommon.PCounter.Builder, org.apache.doris.proto.OlapCommon.PCounterOrBuilder> 
          getCounterFieldBuilder() {
        if (counterBuilder_ == null) {
          counterBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapCommon.PCounter, org.apache.doris.proto.OlapCommon.PCounter.Builder, org.apache.doris.proto.OlapCommon.PCounterOrBuilder>(
                  counter_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          counter_ = null;
        }
        return counterBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:doris.PTopNCounter)
    }

    // @@protoc_insertion_point(class_scope:doris.PTopNCounter)
    private static final org.apache.doris.proto.OlapCommon.PTopNCounter DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.apache.doris.proto.OlapCommon.PTopNCounter();
    }

    public static org.apache.doris.proto.OlapCommon.PTopNCounter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PTopNCounter>
        PARSER = new com.google.protobuf.AbstractParser<PTopNCounter>() {
      @java.lang.Override
      public PTopNCounter parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PTopNCounter> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PTopNCounter> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.PTopNCounter getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface InvertedIndexFileInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:doris.InvertedIndexFileInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo> 
        getIndexInfoList();
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo getIndexInfo(int index);
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    int getIndexInfoCount();
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder> 
        getIndexInfoOrBuilderList();
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder getIndexInfoOrBuilder(
        int index);

    /**
     * <pre>
     * for inverted index v2
     * </pre>
     *
     * <code>optional int64 index_size = 2;</code>
     * @return Whether the indexSize field is set.
     */
    boolean hasIndexSize();
    /**
     * <pre>
     * for inverted index v2
     * </pre>
     *
     * <code>optional int64 index_size = 2;</code>
     * @return The indexSize.
     */
    long getIndexSize();
  }
  /**
   * Protobuf type {@code doris.InvertedIndexFileInfo}
   */
  public static final class InvertedIndexFileInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.InvertedIndexFileInfo)
      InvertedIndexFileInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InvertedIndexFileInfo.newBuilder() to construct.
    private InvertedIndexFileInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InvertedIndexFileInfo() {
      indexInfo_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new InvertedIndexFileInfo();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.class, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder.class);
    }

    public interface IndexInfoOrBuilder extends
        // @@protoc_insertion_point(interface_extends:doris.InvertedIndexFileInfo.IndexInfo)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>required int64 index_id = 1;</code>
       * @return Whether the indexId field is set.
       */
      boolean hasIndexId();
      /**
       * <code>required int64 index_id = 1;</code>
       * @return The indexId.
       */
      long getIndexId();

      /**
       * <code>required int64 index_file_size = 2 [default = -1];</code>
       * @return Whether the indexFileSize field is set.
       */
      boolean hasIndexFileSize();
      /**
       * <code>required int64 index_file_size = 2 [default = -1];</code>
       * @return The indexFileSize.
       */
      long getIndexFileSize();

      /**
       * <code>optional string index_suffix = 3;</code>
       * @return Whether the indexSuffix field is set.
       */
      boolean hasIndexSuffix();
      /**
       * <code>optional string index_suffix = 3;</code>
       * @return The indexSuffix.
       */
      java.lang.String getIndexSuffix();
      /**
       * <code>optional string index_suffix = 3;</code>
       * @return The bytes for indexSuffix.
       */
      com.google.protobuf.ByteString
          getIndexSuffixBytes();
    }
    /**
     * Protobuf type {@code doris.InvertedIndexFileInfo.IndexInfo}
     */
    public static final class IndexInfo extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:doris.InvertedIndexFileInfo.IndexInfo)
        IndexInfoOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use IndexInfo.newBuilder() to construct.
      private IndexInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private IndexInfo() {
        indexFileSize_ = -1L;
        indexSuffix_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new IndexInfo();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_IndexInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_IndexInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.class, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder.class);
      }

      private int bitField0_;
      public static final int INDEX_ID_FIELD_NUMBER = 1;
      private long indexId_ = 0L;
      /**
       * <code>required int64 index_id = 1;</code>
       * @return Whether the indexId field is set.
       */
      @java.lang.Override
      public boolean hasIndexId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 index_id = 1;</code>
       * @return The indexId.
       */
      @java.lang.Override
      public long getIndexId() {
        return indexId_;
      }

      public static final int INDEX_FILE_SIZE_FIELD_NUMBER = 2;
      private long indexFileSize_ = -1L;
      /**
       * <code>required int64 index_file_size = 2 [default = -1];</code>
       * @return Whether the indexFileSize field is set.
       */
      @java.lang.Override
      public boolean hasIndexFileSize() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 index_file_size = 2 [default = -1];</code>
       * @return The indexFileSize.
       */
      @java.lang.Override
      public long getIndexFileSize() {
        return indexFileSize_;
      }

      public static final int INDEX_SUFFIX_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private volatile java.lang.Object indexSuffix_ = "";
      /**
       * <code>optional string index_suffix = 3;</code>
       * @return Whether the indexSuffix field is set.
       */
      @java.lang.Override
      public boolean hasIndexSuffix() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string index_suffix = 3;</code>
       * @return The indexSuffix.
       */
      @java.lang.Override
      public java.lang.String getIndexSuffix() {
        java.lang.Object ref = indexSuffix_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            indexSuffix_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string index_suffix = 3;</code>
       * @return The bytes for indexSuffix.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIndexSuffixBytes() {
        java.lang.Object ref = indexSuffix_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexSuffix_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasIndexId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasIndexFileSize()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt64(1, indexId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeInt64(2, indexFileSize_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, indexSuffix_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, indexId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, indexFileSize_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, indexSuffix_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo)) {
          return super.equals(obj);
        }
        org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo other = (org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo) obj;

        if (hasIndexId() != other.hasIndexId()) return false;
        if (hasIndexId()) {
          if (getIndexId()
              != other.getIndexId()) return false;
        }
        if (hasIndexFileSize() != other.hasIndexFileSize()) return false;
        if (hasIndexFileSize()) {
          if (getIndexFileSize()
              != other.getIndexFileSize()) return false;
        }
        if (hasIndexSuffix() != other.hasIndexSuffix()) return false;
        if (hasIndexSuffix()) {
          if (!getIndexSuffix()
              .equals(other.getIndexSuffix())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasIndexId()) {
          hash = (37 * hash) + INDEX_ID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIndexId());
        }
        if (hasIndexFileSize()) {
          hash = (37 * hash) + INDEX_FILE_SIZE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIndexFileSize());
        }
        if (hasIndexSuffix()) {
          hash = (37 * hash) + INDEX_SUFFIX_FIELD_NUMBER;
          hash = (53 * hash) + getIndexSuffix().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code doris.InvertedIndexFileInfo.IndexInfo}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:doris.InvertedIndexFileInfo.IndexInfo)
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_IndexInfo_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_IndexInfo_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.class, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder.class);
        }

        // Construct using org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          indexId_ = 0L;
          indexFileSize_ = -1L;
          indexSuffix_ = "";
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_IndexInfo_descriptor;
        }

        @java.lang.Override
        public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo getDefaultInstanceForType() {
          return org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.getDefaultInstance();
        }

        @java.lang.Override
        public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo build() {
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo buildPartial() {
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo result = new org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.indexId_ = indexId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.indexFileSize_ = indexFileSize_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.indexSuffix_ = indexSuffix_;
            to_bitField0_ |= 0x00000004;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo) {
            return mergeFrom((org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo other) {
          if (other == org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.getDefaultInstance()) return this;
          if (other.hasIndexId()) {
            setIndexId(other.getIndexId());
          }
          if (other.hasIndexFileSize()) {
            setIndexFileSize(other.getIndexFileSize());
          }
          if (other.hasIndexSuffix()) {
            indexSuffix_ = other.indexSuffix_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasIndexId()) {
            return false;
          }
          if (!hasIndexFileSize()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  indexId_ = input.readInt64();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  indexFileSize_ = input.readInt64();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                case 26: {
                  indexSuffix_ = input.readBytes();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private long indexId_ ;
        /**
         * <code>required int64 index_id = 1;</code>
         * @return Whether the indexId field is set.
         */
        @java.lang.Override
        public boolean hasIndexId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required int64 index_id = 1;</code>
         * @return The indexId.
         */
        @java.lang.Override
        public long getIndexId() {
          return indexId_;
        }
        /**
         * <code>required int64 index_id = 1;</code>
         * @param value The indexId to set.
         * @return This builder for chaining.
         */
        public Builder setIndexId(long value) {

          indexId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 index_id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearIndexId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          indexId_ = 0L;
          onChanged();
          return this;
        }

        private long indexFileSize_ = -1L;
        /**
         * <code>required int64 index_file_size = 2 [default = -1];</code>
         * @return Whether the indexFileSize field is set.
         */
        @java.lang.Override
        public boolean hasIndexFileSize() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required int64 index_file_size = 2 [default = -1];</code>
         * @return The indexFileSize.
         */
        @java.lang.Override
        public long getIndexFileSize() {
          return indexFileSize_;
        }
        /**
         * <code>required int64 index_file_size = 2 [default = -1];</code>
         * @param value The indexFileSize to set.
         * @return This builder for chaining.
         */
        public Builder setIndexFileSize(long value) {

          indexFileSize_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 index_file_size = 2 [default = -1];</code>
         * @return This builder for chaining.
         */
        public Builder clearIndexFileSize() {
          bitField0_ = (bitField0_ & ~0x00000002);
          indexFileSize_ = -1L;
          onChanged();
          return this;
        }

        private java.lang.Object indexSuffix_ = "";
        /**
         * <code>optional string index_suffix = 3;</code>
         * @return Whether the indexSuffix field is set.
         */
        public boolean hasIndexSuffix() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional string index_suffix = 3;</code>
         * @return The indexSuffix.
         */
        public java.lang.String getIndexSuffix() {
          java.lang.Object ref = indexSuffix_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              indexSuffix_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string index_suffix = 3;</code>
         * @return The bytes for indexSuffix.
         */
        public com.google.protobuf.ByteString
            getIndexSuffixBytes() {
          java.lang.Object ref = indexSuffix_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            indexSuffix_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string index_suffix = 3;</code>
         * @param value The indexSuffix to set.
         * @return This builder for chaining.
         */
        public Builder setIndexSuffix(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          indexSuffix_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>optional string index_suffix = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearIndexSuffix() {
          indexSuffix_ = getDefaultInstance().getIndexSuffix();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * <code>optional string index_suffix = 3;</code>
         * @param value The bytes for indexSuffix to set.
         * @return This builder for chaining.
         */
        public Builder setIndexSuffixBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          indexSuffix_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:doris.InvertedIndexFileInfo.IndexInfo)
      }

      // @@protoc_insertion_point(class_scope:doris.InvertedIndexFileInfo.IndexInfo)
      private static final org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo();
      }

      public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<IndexInfo>
          PARSER = new com.google.protobuf.AbstractParser<IndexInfo>() {
        @java.lang.Override
        public IndexInfo parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<IndexInfo> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<IndexInfo> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int INDEX_INFO_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo> indexInfo_;
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo> getIndexInfoList() {
      return indexInfo_;
    }
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder> 
        getIndexInfoOrBuilderList() {
      return indexInfo_;
    }
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    @java.lang.Override
    public int getIndexInfoCount() {
      return indexInfo_.size();
    }
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo getIndexInfo(int index) {
      return indexInfo_.get(index);
    }
    /**
     * <pre>
     * for inverted index v1
     * </pre>
     *
     * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder getIndexInfoOrBuilder(
        int index) {
      return indexInfo_.get(index);
    }

    public static final int INDEX_SIZE_FIELD_NUMBER = 2;
    private long indexSize_ = 0L;
    /**
     * <pre>
     * for inverted index v2
     * </pre>
     *
     * <code>optional int64 index_size = 2;</code>
     * @return Whether the indexSize field is set.
     */
    @java.lang.Override
    public boolean hasIndexSize() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * for inverted index v2
     * </pre>
     *
     * <code>optional int64 index_size = 2;</code>
     * @return The indexSize.
     */
    @java.lang.Override
    public long getIndexSize() {
      return indexSize_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getIndexInfoCount(); i++) {
        if (!getIndexInfo(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < indexInfo_.size(); i++) {
        output.writeMessage(1, indexInfo_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(2, indexSize_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < indexInfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, indexInfo_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, indexSize_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo other = (org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo) obj;

      if (!getIndexInfoList()
          .equals(other.getIndexInfoList())) return false;
      if (hasIndexSize() != other.hasIndexSize()) return false;
      if (hasIndexSize()) {
        if (getIndexSize()
            != other.getIndexSize()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getIndexInfoCount() > 0) {
        hash = (37 * hash) + INDEX_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getIndexInfoList().hashCode();
      }
      if (hasIndexSize()) {
        hash = (37 * hash) + INDEX_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexSize());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code doris.InvertedIndexFileInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.InvertedIndexFileInfo)
        org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.class, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder.class);
      }

      // Construct using org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (indexInfoBuilder_ == null) {
          indexInfo_ = java.util.Collections.emptyList();
        } else {
          indexInfo_ = null;
          indexInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        indexSize_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.doris.proto.OlapCommon.internal_static_doris_InvertedIndexFileInfo_descriptor;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getDefaultInstanceForType() {
        return org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo build() {
        org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo buildPartial() {
        org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo result = new org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo result) {
        if (indexInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            indexInfo_ = java.util.Collections.unmodifiableList(indexInfo_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.indexInfo_ = indexInfo_;
        } else {
          result.indexInfo_ = indexInfoBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.indexSize_ = indexSize_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo) {
          return mergeFrom((org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo other) {
        if (other == org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.getDefaultInstance()) return this;
        if (indexInfoBuilder_ == null) {
          if (!other.indexInfo_.isEmpty()) {
            if (indexInfo_.isEmpty()) {
              indexInfo_ = other.indexInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureIndexInfoIsMutable();
              indexInfo_.addAll(other.indexInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.indexInfo_.isEmpty()) {
            if (indexInfoBuilder_.isEmpty()) {
              indexInfoBuilder_.dispose();
              indexInfoBuilder_ = null;
              indexInfo_ = other.indexInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
              indexInfoBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIndexInfoFieldBuilder() : null;
            } else {
              indexInfoBuilder_.addAllMessages(other.indexInfo_);
            }
          }
        }
        if (other.hasIndexSize()) {
          setIndexSize(other.getIndexSize());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getIndexInfoCount(); i++) {
          if (!getIndexInfo(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo m =
                    input.readMessage(
                        org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.PARSER,
                        extensionRegistry);
                if (indexInfoBuilder_ == null) {
                  ensureIndexInfoIsMutable();
                  indexInfo_.add(m);
                } else {
                  indexInfoBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 16: {
                indexSize_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo> indexInfo_ =
        java.util.Collections.emptyList();
      private void ensureIndexInfoIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          indexInfo_ = new java.util.ArrayList<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo>(indexInfo_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder> indexInfoBuilder_;

      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo> getIndexInfoList() {
        if (indexInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(indexInfo_);
        } else {
          return indexInfoBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public int getIndexInfoCount() {
        if (indexInfoBuilder_ == null) {
          return indexInfo_.size();
        } else {
          return indexInfoBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo getIndexInfo(int index) {
        if (indexInfoBuilder_ == null) {
          return indexInfo_.get(index);
        } else {
          return indexInfoBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder setIndexInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo value) {
        if (indexInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexInfoIsMutable();
          indexInfo_.set(index, value);
          onChanged();
        } else {
          indexInfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder setIndexInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder builderForValue) {
        if (indexInfoBuilder_ == null) {
          ensureIndexInfoIsMutable();
          indexInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          indexInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder addIndexInfo(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo value) {
        if (indexInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexInfoIsMutable();
          indexInfo_.add(value);
          onChanged();
        } else {
          indexInfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder addIndexInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo value) {
        if (indexInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexInfoIsMutable();
          indexInfo_.add(index, value);
          onChanged();
        } else {
          indexInfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder addIndexInfo(
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder builderForValue) {
        if (indexInfoBuilder_ == null) {
          ensureIndexInfoIsMutable();
          indexInfo_.add(builderForValue.build());
          onChanged();
        } else {
          indexInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder addIndexInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder builderForValue) {
        if (indexInfoBuilder_ == null) {
          ensureIndexInfoIsMutable();
          indexInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          indexInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder addAllIndexInfo(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo> values) {
        if (indexInfoBuilder_ == null) {
          ensureIndexInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, indexInfo_);
          onChanged();
        } else {
          indexInfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder clearIndexInfo() {
        if (indexInfoBuilder_ == null) {
          indexInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          indexInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public Builder removeIndexInfo(int index) {
        if (indexInfoBuilder_ == null) {
          ensureIndexInfoIsMutable();
          indexInfo_.remove(index);
          onChanged();
        } else {
          indexInfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder getIndexInfoBuilder(
          int index) {
        return getIndexInfoFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder getIndexInfoOrBuilder(
          int index) {
        if (indexInfoBuilder_ == null) {
          return indexInfo_.get(index);  } else {
          return indexInfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder> 
           getIndexInfoOrBuilderList() {
        if (indexInfoBuilder_ != null) {
          return indexInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(indexInfo_);
        }
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder addIndexInfoBuilder() {
        return getIndexInfoFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.getDefaultInstance());
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder addIndexInfoBuilder(
          int index) {
        return getIndexInfoFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.getDefaultInstance());
      }
      /**
       * <pre>
       * for inverted index v1
       * </pre>
       *
       * <code>repeated .doris.InvertedIndexFileInfo.IndexInfo index_info = 1;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder> 
           getIndexInfoBuilderList() {
        return getIndexInfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder> 
          getIndexInfoFieldBuilder() {
        if (indexInfoBuilder_ == null) {
          indexInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.IndexInfoOrBuilder>(
                  indexInfo_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          indexInfo_ = null;
        }
        return indexInfoBuilder_;
      }

      private long indexSize_ ;
      /**
       * <pre>
       * for inverted index v2
       * </pre>
       *
       * <code>optional int64 index_size = 2;</code>
       * @return Whether the indexSize field is set.
       */
      @java.lang.Override
      public boolean hasIndexSize() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * for inverted index v2
       * </pre>
       *
       * <code>optional int64 index_size = 2;</code>
       * @return The indexSize.
       */
      @java.lang.Override
      public long getIndexSize() {
        return indexSize_;
      }
      /**
       * <pre>
       * for inverted index v2
       * </pre>
       *
       * <code>optional int64 index_size = 2;</code>
       * @param value The indexSize to set.
       * @return This builder for chaining.
       */
      public Builder setIndexSize(long value) {

        indexSize_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * for inverted index v2
       * </pre>
       *
       * <code>optional int64 index_size = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexSize() {
        bitField0_ = (bitField0_ & ~0x00000002);
        indexSize_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:doris.InvertedIndexFileInfo)
    }

    // @@protoc_insertion_point(class_scope:doris.InvertedIndexFileInfo)
    private static final org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo();
    }

    public static org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<InvertedIndexFileInfo>
        PARSER = new com.google.protobuf.AbstractParser<InvertedIndexFileInfo>() {
      @java.lang.Override
      public InvertedIndexFileInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<InvertedIndexFileInfo> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<InvertedIndexFileInfo> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_ColumnMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_ColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PCounter_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PCounter_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PTopNCounter_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PTopNCounter_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_InvertedIndexFileInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_InvertedIndexFileInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_InvertedIndexFileInfo_IndexInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_InvertedIndexFileInfo_IndexInfo_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\021olap_common.proto\022\005doris\"\362\002\n\rColumnMes" +
      "sage\022\014\n\004name\030\001 \002(\t\022\014\n\004type\030\002 \002(\t\022\023\n\013aggr" +
      "egation\030\003 \002(\t\022\016\n\006length\030\004 \002(\r\022\016\n\006is_key\030" +
      "\005 \002(\010\022\025\n\rdefault_value\030\006 \001(\t\022\031\n\021referenc" +
      "ed_column\030\007 \001(\t\022\024\n\014index_length\030\010 \001(\r\022\025\n" +
      "\tprecision\030\t \001(\r:\00227\022\017\n\004frac\030\n \001(\r:\0019\022\034\n" +
      "\ris_allow_null\030\013 \001(\010:\005false\022\021\n\tunique_id" +
      "\030\014 \001(\r\022\022\n\nsub_column\030\r \003(\r\022\035\n\016is_root_co" +
      "lumn\030\016 \001(\010:\005false\022\033\n\014is_bf_column\030\017 \001(\010:" +
      "\005false\022\037\n\020has_bitmap_index\030\020 \001(\010:\005false\"" +
      "\'\n\010PCounter\022\014\n\004item\030\001 \002(\t\022\r\n\005count\030\002 \002(\004" +
      "\"\\\n\014PTopNCounter\022\017\n\007top_num\030\001 \002(\r\022\031\n\021spa" +
      "ce_expand_rate\030\002 \002(\r\022 \n\007counter\030\003 \003(\0132\017." +
      "doris.PCounter\"\271\001\n\025InvertedIndexFileInfo" +
      "\022:\n\nindex_info\030\001 \003(\0132&.doris.InvertedInd" +
      "exFileInfo.IndexInfo\022\022\n\nindex_size\030\002 \001(\003" +
      "\032P\n\tIndexInfo\022\020\n\010index_id\030\001 \002(\003\022\033\n\017index" +
      "_file_size\030\002 \002(\003:\002-1\022\024\n\014index_suffix\030\003 \001" +
      "(\t*E\n\014CompressKind\022\021\n\rCOMPRESS_NONE\020\000\022\020\n" +
      "\014COMPRESS_LZO\020\001\022\020\n\014COMPRESS_LZ4\020\002*5\n\010Fil" +
      "eType\022\020\n\014SEGMENT_FILE\020\001\022\027\n\023INVERTED_INDE" +
      "X_FILE\020\002B\030\n\026org.apache.doris.proto"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_doris_ColumnMessage_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_doris_ColumnMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_ColumnMessage_descriptor,
        new java.lang.String[] { "Name", "Type", "Aggregation", "Length", "IsKey", "DefaultValue", "ReferencedColumn", "IndexLength", "Precision", "Frac", "IsAllowNull", "UniqueId", "SubColumn", "IsRootColumn", "IsBfColumn", "HasBitmapIndex", });
    internal_static_doris_PCounter_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_doris_PCounter_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PCounter_descriptor,
        new java.lang.String[] { "Item", "Count", });
    internal_static_doris_PTopNCounter_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_doris_PTopNCounter_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PTopNCounter_descriptor,
        new java.lang.String[] { "TopNum", "SpaceExpandRate", "Counter", });
    internal_static_doris_InvertedIndexFileInfo_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_doris_InvertedIndexFileInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_InvertedIndexFileInfo_descriptor,
        new java.lang.String[] { "IndexInfo", "IndexSize", });
    internal_static_doris_InvertedIndexFileInfo_IndexInfo_descriptor =
      internal_static_doris_InvertedIndexFileInfo_descriptor.getNestedTypes().get(0);
    internal_static_doris_InvertedIndexFileInfo_IndexInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_InvertedIndexFileInfo_IndexInfo_descriptor,
        new java.lang.String[] { "IndexId", "IndexFileSize", "IndexSuffix", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}