OlapFile.java

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

package org.apache.doris.proto;

public final class OlapFile {
  private OlapFile() {}
  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.RowsetTypePB}
   */
  public enum RowsetTypePB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     * doris original column storage format
     * </pre>
     *
     * <code>ALPHA_ROWSET = 0;</code>
     */
    ALPHA_ROWSET(0),
    /**
     * <pre>
     * new column storage format
     * </pre>
     *
     * <code>BETA_ROWSET = 1;</code>
     */
    BETA_ROWSET(1),
    ;

    /**
     * <pre>
     * doris original column storage format
     * </pre>
     *
     * <code>ALPHA_ROWSET = 0;</code>
     */
    public static final int ALPHA_ROWSET_VALUE = 0;
    /**
     * <pre>
     * new column storage format
     * </pre>
     *
     * <code>BETA_ROWSET = 1;</code>
     */
    public static final int BETA_ROWSET_VALUE = 1;


    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 RowsetTypePB 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 RowsetTypePB forNumber(int value) {
      switch (value) {
        case 0: return ALPHA_ROWSET;
        case 1: return BETA_ROWSET;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<RowsetTypePB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        RowsetTypePB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<RowsetTypePB>() {
            public RowsetTypePB findValueByNumber(int number) {
              return RowsetTypePB.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.OlapFile.getDescriptor().getEnumTypes().get(0);
    }

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

    public static RowsetTypePB 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 RowsetTypePB(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.RowsetStatePB}
   */
  public enum RowsetStatePB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     * Rowset is being written
     * </pre>
     *
     * <code>PREPARED = 0;</code>
     */
    PREPARED(0),
    /**
     * <pre>
     * Rowset writting is completed, but the user is not yet visible
     * For rowset in this state, BE cannot determine whether to delete it by itself, it must be instructed by FE
     * </pre>
     *
     * <code>COMMITTED = 1;</code>
     */
    COMMITTED(1),
    /**
     * <pre>
     * Rowset is already visible to the user
     * </pre>
     *
     * <code>VISIBLE = 2;</code>
     */
    VISIBLE(2),
    /**
     * <pre>
     * Rowset is partial updated, the recycler should use list+delete to recycle segments.
     * </pre>
     *
     * <code>BEGIN_PARTIAL_UPDATE = 10000;</code>
     */
    BEGIN_PARTIAL_UPDATE(10000),
    ;

    /**
     * <pre>
     * Rowset is being written
     * </pre>
     *
     * <code>PREPARED = 0;</code>
     */
    public static final int PREPARED_VALUE = 0;
    /**
     * <pre>
     * Rowset writting is completed, but the user is not yet visible
     * For rowset in this state, BE cannot determine whether to delete it by itself, it must be instructed by FE
     * </pre>
     *
     * <code>COMMITTED = 1;</code>
     */
    public static final int COMMITTED_VALUE = 1;
    /**
     * <pre>
     * Rowset is already visible to the user
     * </pre>
     *
     * <code>VISIBLE = 2;</code>
     */
    public static final int VISIBLE_VALUE = 2;
    /**
     * <pre>
     * Rowset is partial updated, the recycler should use list+delete to recycle segments.
     * </pre>
     *
     * <code>BEGIN_PARTIAL_UPDATE = 10000;</code>
     */
    public static final int BEGIN_PARTIAL_UPDATE_VALUE = 10000;


    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 RowsetStatePB 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 RowsetStatePB forNumber(int value) {
      switch (value) {
        case 0: return PREPARED;
        case 1: return COMMITTED;
        case 2: return VISIBLE;
        case 10000: return BEGIN_PARTIAL_UPDATE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<RowsetStatePB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        RowsetStatePB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<RowsetStatePB>() {
            public RowsetStatePB findValueByNumber(int number) {
              return RowsetStatePB.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.OlapFile.getDescriptor().getEnumTypes().get(1);
    }

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

    public static RowsetStatePB 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 RowsetStatePB(int value) {
      this.value = value;
    }

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

  /**
   * <pre>
   * indicate whether date between segments of a rowset is overlappinng
   * </pre>
   *
   * Protobuf enum {@code doris.SegmentsOverlapPB}
   */
  public enum SegmentsOverlapPB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     * this enum is added since Doris v0.11, so previous rowset's segment is unknown
     * </pre>
     *
     * <code>OVERLAP_UNKNOWN = 0;</code>
     */
    OVERLAP_UNKNOWN(0),
    /**
     * <code>OVERLAPPING = 1;</code>
     */
    OVERLAPPING(1),
    /**
     * <code>NONOVERLAPPING = 2;</code>
     */
    NONOVERLAPPING(2),
    ;

    /**
     * <pre>
     * this enum is added since Doris v0.11, so previous rowset's segment is unknown
     * </pre>
     *
     * <code>OVERLAP_UNKNOWN = 0;</code>
     */
    public static final int OVERLAP_UNKNOWN_VALUE = 0;
    /**
     * <code>OVERLAPPING = 1;</code>
     */
    public static final int OVERLAPPING_VALUE = 1;
    /**
     * <code>NONOVERLAPPING = 2;</code>
     */
    public static final int NONOVERLAPPING_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 SegmentsOverlapPB 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 SegmentsOverlapPB forNumber(int value) {
      switch (value) {
        case 0: return OVERLAP_UNKNOWN;
        case 1: return OVERLAPPING;
        case 2: return NONOVERLAPPING;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SegmentsOverlapPB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SegmentsOverlapPB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SegmentsOverlapPB>() {
            public SegmentsOverlapPB findValueByNumber(int number) {
              return SegmentsOverlapPB.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.OlapFile.getDescriptor().getEnumTypes().get(2);
    }

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

    public static SegmentsOverlapPB 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 SegmentsOverlapPB(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.DataFileType}
   */
  public enum DataFileType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     *Deprecated. Only columnar-wise format is supported.
     * </pre>
     *
     * <code>OLAP_DATA_FILE = 0;</code>
     */
    OLAP_DATA_FILE(0),
    /**
     * <code>COLUMN_ORIENTED_FILE = 1;</code>
     */
    COLUMN_ORIENTED_FILE(1),
    ;

    /**
     * <pre>
     *Deprecated. Only columnar-wise format is supported.
     * </pre>
     *
     * <code>OLAP_DATA_FILE = 0;</code>
     */
    public static final int OLAP_DATA_FILE_VALUE = 0;
    /**
     * <code>COLUMN_ORIENTED_FILE = 1;</code>
     */
    public static final int COLUMN_ORIENTED_FILE_VALUE = 1;


    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 DataFileType 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 DataFileType forNumber(int value) {
      switch (value) {
        case 0: return OLAP_DATA_FILE;
        case 1: return COLUMN_ORIENTED_FILE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DataFileType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        DataFileType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<DataFileType>() {
            public DataFileType findValueByNumber(int number) {
              return DataFileType.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.OlapFile.getDescriptor().getEnumTypes().get(3);
    }

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

    public static DataFileType 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 DataFileType(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.KeysType}
   */
  public enum KeysType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>DUP_KEYS = 0;</code>
     */
    DUP_KEYS(0),
    /**
     * <code>UNIQUE_KEYS = 1;</code>
     */
    UNIQUE_KEYS(1),
    /**
     * <code>AGG_KEYS = 2;</code>
     */
    AGG_KEYS(2),
    ;

    /**
     * <code>DUP_KEYS = 0;</code>
     */
    public static final int DUP_KEYS_VALUE = 0;
    /**
     * <code>UNIQUE_KEYS = 1;</code>
     */
    public static final int UNIQUE_KEYS_VALUE = 1;
    /**
     * <code>AGG_KEYS = 2;</code>
     */
    public static final int AGG_KEYS_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 KeysType 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 KeysType forNumber(int value) {
      switch (value) {
        case 0: return DUP_KEYS;
        case 1: return UNIQUE_KEYS;
        case 2: return AGG_KEYS;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<KeysType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        KeysType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<KeysType>() {
            public KeysType findValueByNumber(int number) {
              return KeysType.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.OlapFile.getDescriptor().getEnumTypes().get(4);
    }

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

    public static KeysType 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 KeysType(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.AlterTabletState}
   */
  public enum AlterTabletState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ALTER_PREPARED = 0;</code>
     */
    ALTER_PREPARED(0),
    /**
     * <code>ALTER_RUNNING = 1;</code>
     */
    ALTER_RUNNING(1),
    /**
     * <code>ALTER_FINISHED = 2;</code>
     */
    ALTER_FINISHED(2),
    /**
     * <code>ALTER_FAILED = 3;</code>
     */
    ALTER_FAILED(3),
    ;

    /**
     * <code>ALTER_PREPARED = 0;</code>
     */
    public static final int ALTER_PREPARED_VALUE = 0;
    /**
     * <code>ALTER_RUNNING = 1;</code>
     */
    public static final int ALTER_RUNNING_VALUE = 1;
    /**
     * <code>ALTER_FINISHED = 2;</code>
     */
    public static final int ALTER_FINISHED_VALUE = 2;
    /**
     * <code>ALTER_FAILED = 3;</code>
     */
    public static final int ALTER_FAILED_VALUE = 3;


    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 AlterTabletState 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 AlterTabletState forNumber(int value) {
      switch (value) {
        case 0: return ALTER_PREPARED;
        case 1: return ALTER_RUNNING;
        case 2: return ALTER_FINISHED;
        case 3: return ALTER_FAILED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<AlterTabletState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        AlterTabletState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<AlterTabletState>() {
            public AlterTabletState findValueByNumber(int number) {
              return AlterTabletState.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.OlapFile.getDescriptor().getEnumTypes().get(5);
    }

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

    public static AlterTabletState 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 AlterTabletState(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.AlterTabletType}
   */
  public enum AlterTabletType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SCHEMA_CHANGE = 1;</code>
     */
    SCHEMA_CHANGE(1),
    /**
     * <code>ROLLUP = 2;</code>
     */
    ROLLUP(2),
    /**
     * <code>MIGRATION = 3;</code>
     */
    MIGRATION(3),
    ;

    /**
     * <code>SCHEMA_CHANGE = 1;</code>
     */
    public static final int SCHEMA_CHANGE_VALUE = 1;
    /**
     * <code>ROLLUP = 2;</code>
     */
    public static final int ROLLUP_VALUE = 2;
    /**
     * <code>MIGRATION = 3;</code>
     */
    public static final int MIGRATION_VALUE = 3;


    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 AlterTabletType 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 AlterTabletType forNumber(int value) {
      switch (value) {
        case 1: return SCHEMA_CHANGE;
        case 2: return ROLLUP;
        case 3: return MIGRATION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<AlterTabletType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        AlterTabletType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<AlterTabletType>() {
            public AlterTabletType findValueByNumber(int number) {
              return AlterTabletType.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.OlapFile.getDescriptor().getEnumTypes().get(6);
    }

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

    public static AlterTabletType 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 AlterTabletType(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.IndexType}
   */
  public enum IndexType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>BITMAP = 0;</code>
     */
    BITMAP(0),
    /**
     * <code>INVERTED = 1;</code>
     */
    INVERTED(1),
    /**
     * <code>BLOOMFILTER = 2;</code>
     */
    BLOOMFILTER(2),
    /**
     * <code>NGRAM_BF = 3;</code>
     */
    NGRAM_BF(3),
    ;

    /**
     * <code>BITMAP = 0;</code>
     */
    public static final int BITMAP_VALUE = 0;
    /**
     * <code>INVERTED = 1;</code>
     */
    public static final int INVERTED_VALUE = 1;
    /**
     * <code>BLOOMFILTER = 2;</code>
     */
    public static final int BLOOMFILTER_VALUE = 2;
    /**
     * <code>NGRAM_BF = 3;</code>
     */
    public static final int NGRAM_BF_VALUE = 3;


    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 IndexType 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 IndexType forNumber(int value) {
      switch (value) {
        case 0: return BITMAP;
        case 1: return INVERTED;
        case 2: return BLOOMFILTER;
        case 3: return NGRAM_BF;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<IndexType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        IndexType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<IndexType>() {
            public IndexType findValueByNumber(int number) {
              return IndexType.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.OlapFile.getDescriptor().getEnumTypes().get(7);
    }

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

    public static IndexType 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 IndexType(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.InvertedIndexStorageFormatPB}
   */
  public enum InvertedIndexStorageFormatPB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>V1 = 0;</code>
     */
    V1(0),
    /**
     * <code>V2 = 1;</code>
     */
    V2(1),
    /**
     * <code>V3 = 2;</code>
     */
    V3(2),
    ;

    /**
     * <code>V1 = 0;</code>
     */
    public static final int V1_VALUE = 0;
    /**
     * <code>V2 = 1;</code>
     */
    public static final int V2_VALUE = 1;
    /**
     * <code>V3 = 2;</code>
     */
    public static final int V3_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 InvertedIndexStorageFormatPB 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 InvertedIndexStorageFormatPB forNumber(int value) {
      switch (value) {
        case 0: return V1;
        case 1: return V2;
        case 2: return V3;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<InvertedIndexStorageFormatPB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        InvertedIndexStorageFormatPB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<InvertedIndexStorageFormatPB>() {
            public InvertedIndexStorageFormatPB findValueByNumber(int number) {
              return InvertedIndexStorageFormatPB.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.OlapFile.getDescriptor().getEnumTypes().get(8);
    }

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

    public static InvertedIndexStorageFormatPB 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 InvertedIndexStorageFormatPB(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.SortType}
   */
  public enum SortType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>LEXICAL = 0;</code>
     */
    LEXICAL(0),
    /**
     * <code>ZORDER = 1;</code>
     */
    ZORDER(1),
    ;

    /**
     * <code>LEXICAL = 0;</code>
     */
    public static final int LEXICAL_VALUE = 0;
    /**
     * <code>ZORDER = 1;</code>
     */
    public static final int ZORDER_VALUE = 1;


    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 SortType 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 SortType forNumber(int value) {
      switch (value) {
        case 0: return LEXICAL;
        case 1: return ZORDER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SortType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SortType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SortType>() {
            public SortType findValueByNumber(int number) {
              return SortType.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.OlapFile.getDescriptor().getEnumTypes().get(9);
    }

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

    public static SortType 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 SortType(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.UniqueKeyUpdateModePB}
   */
  public enum UniqueKeyUpdateModePB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>UPSERT = 0;</code>
     */
    UPSERT(0),
    /**
     * <code>UPDATE_FIXED_COLUMNS = 1;</code>
     */
    UPDATE_FIXED_COLUMNS(1),
    /**
     * <code>UPDATE_FLEXIBLE_COLUMNS = 2;</code>
     */
    UPDATE_FLEXIBLE_COLUMNS(2),
    ;

    /**
     * <code>UPSERT = 0;</code>
     */
    public static final int UPSERT_VALUE = 0;
    /**
     * <code>UPDATE_FIXED_COLUMNS = 1;</code>
     */
    public static final int UPDATE_FIXED_COLUMNS_VALUE = 1;
    /**
     * <code>UPDATE_FLEXIBLE_COLUMNS = 2;</code>
     */
    public static final int UPDATE_FLEXIBLE_COLUMNS_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 UniqueKeyUpdateModePB 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 UniqueKeyUpdateModePB forNumber(int value) {
      switch (value) {
        case 0: return UPSERT;
        case 1: return UPDATE_FIXED_COLUMNS;
        case 2: return UPDATE_FLEXIBLE_COLUMNS;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<UniqueKeyUpdateModePB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        UniqueKeyUpdateModePB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<UniqueKeyUpdateModePB>() {
            public UniqueKeyUpdateModePB findValueByNumber(int number) {
              return UniqueKeyUpdateModePB.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.OlapFile.getDescriptor().getEnumTypes().get(10);
    }

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

    public static UniqueKeyUpdateModePB 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 UniqueKeyUpdateModePB(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.TabletStatePB}
   */
  public enum TabletStatePB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     * under alter table, rollup, clone
     * </pre>
     *
     * <code>PB_NOTREADY = 0;</code>
     */
    PB_NOTREADY(0),
    /**
     * <code>PB_RUNNING = 1;</code>
     */
    PB_RUNNING(1),
    /**
     * <code>PB_TOMBSTONED = 2;</code>
     */
    PB_TOMBSTONED(2),
    /**
     * <code>PB_STOPPED = 3;</code>
     */
    PB_STOPPED(3),
    /**
     * <code>PB_SHUTDOWN = 4;</code>
     */
    PB_SHUTDOWN(4),
    ;

    /**
     * <pre>
     * under alter table, rollup, clone
     * </pre>
     *
     * <code>PB_NOTREADY = 0;</code>
     */
    public static final int PB_NOTREADY_VALUE = 0;
    /**
     * <code>PB_RUNNING = 1;</code>
     */
    public static final int PB_RUNNING_VALUE = 1;
    /**
     * <code>PB_TOMBSTONED = 2;</code>
     */
    public static final int PB_TOMBSTONED_VALUE = 2;
    /**
     * <code>PB_STOPPED = 3;</code>
     */
    public static final int PB_STOPPED_VALUE = 3;
    /**
     * <code>PB_SHUTDOWN = 4;</code>
     */
    public static final int PB_SHUTDOWN_VALUE = 4;


    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 TabletStatePB 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 TabletStatePB forNumber(int value) {
      switch (value) {
        case 0: return PB_NOTREADY;
        case 1: return PB_RUNNING;
        case 2: return PB_TOMBSTONED;
        case 3: return PB_STOPPED;
        case 4: return PB_SHUTDOWN;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TabletStatePB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TabletStatePB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TabletStatePB>() {
            public TabletStatePB findValueByNumber(int number) {
              return TabletStatePB.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.OlapFile.getDescriptor().getEnumTypes().get(11);
    }

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

    public static TabletStatePB 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 TabletStatePB(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.TabletTypePB}
   */
  public enum TabletTypePB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>TABLET_TYPE_DISK = 0;</code>
     */
    TABLET_TYPE_DISK(0),
    /**
     * <code>TABLET_TYPE_MEMORY = 1;</code>
     */
    TABLET_TYPE_MEMORY(1),
    ;

    /**
     * <code>TABLET_TYPE_DISK = 0;</code>
     */
    public static final int TABLET_TYPE_DISK_VALUE = 0;
    /**
     * <code>TABLET_TYPE_MEMORY = 1;</code>
     */
    public static final int TABLET_TYPE_MEMORY_VALUE = 1;


    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 TabletTypePB 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 TabletTypePB forNumber(int value) {
      switch (value) {
        case 0: return TABLET_TYPE_DISK;
        case 1: return TABLET_TYPE_MEMORY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TabletTypePB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TabletTypePB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TabletTypePB>() {
            public TabletTypePB findValueByNumber(int number) {
              return TabletTypePB.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.OlapFile.getDescriptor().getEnumTypes().get(12);
    }

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

    public static TabletTypePB 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 TabletTypePB(int value) {
      this.value = value;
    }

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

  /**
   * Protobuf enum {@code doris.StorageMediumPB}
   */
  public enum StorageMediumPB
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>HDD = 0;</code>
     */
    HDD(0),
    /**
     * <code>SSD = 1;</code>
     */
    SSD(1),
    /**
     * <code>S3 = 2;</code>
     */
    S3(2),
    /**
     * <code>REMOTE_CACHE = 99;</code>
     */
    REMOTE_CACHE(99),
    ;

    /**
     * <code>HDD = 0;</code>
     */
    public static final int HDD_VALUE = 0;
    /**
     * <code>SSD = 1;</code>
     */
    public static final int SSD_VALUE = 1;
    /**
     * <code>S3 = 2;</code>
     */
    public static final int S3_VALUE = 2;
    /**
     * <code>REMOTE_CACHE = 99;</code>
     */
    public static final int REMOTE_CACHE_VALUE = 99;


    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 StorageMediumPB 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 StorageMediumPB forNumber(int value) {
      switch (value) {
        case 0: return HDD;
        case 1: return SSD;
        case 2: return S3;
        case 99: return REMOTE_CACHE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<StorageMediumPB>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        StorageMediumPB> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<StorageMediumPB>() {
            public StorageMediumPB findValueByNumber(int number) {
              return StorageMediumPB.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.OlapFile.getDescriptor().getEnumTypes().get(13);
    }

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

    public static StorageMediumPB 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 StorageMediumPB(int value) {
      this.value = value;
    }

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

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

    /**
     * <code>required bytes min = 1;</code>
     * @return Whether the min field is set.
     */
    boolean hasMin();
    /**
     * <code>required bytes min = 1;</code>
     * @return The min.
     */
    com.google.protobuf.ByteString getMin();

    /**
     * <code>required bytes max = 2;</code>
     * @return Whether the max field is set.
     */
    boolean hasMax();
    /**
     * <code>required bytes max = 2;</code>
     * @return The max.
     */
    com.google.protobuf.ByteString getMax();

    /**
     * <code>optional bool null_flag = 3;</code>
     * @return Whether the nullFlag field is set.
     */
    boolean hasNullFlag();
    /**
     * <code>optional bool null_flag = 3;</code>
     * @return The nullFlag.
     */
    boolean getNullFlag();
  }
  /**
   * Protobuf type {@code doris.ZoneMap}
   */
  public static final class ZoneMap extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.ZoneMap)
      ZoneMapOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ZoneMap.newBuilder() to construct.
    private ZoneMap(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ZoneMap() {
      min_ = com.google.protobuf.ByteString.EMPTY;
      max_ = com.google.protobuf.ByteString.EMPTY;
    }

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

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

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

    private int bitField0_;
    public static final int MIN_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString min_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes min = 1;</code>
     * @return Whether the min field is set.
     */
    @java.lang.Override
    public boolean hasMin() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes min = 1;</code>
     * @return The min.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getMin() {
      return min_;
    }

    public static final int MAX_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString max_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes max = 2;</code>
     * @return Whether the max field is set.
     */
    @java.lang.Override
    public boolean hasMax() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bytes max = 2;</code>
     * @return The max.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getMax() {
      return max_;
    }

    public static final int NULL_FLAG_FIELD_NUMBER = 3;
    private boolean nullFlag_ = false;
    /**
     * <code>optional bool null_flag = 3;</code>
     * @return Whether the nullFlag field is set.
     */
    @java.lang.Override
    public boolean hasNullFlag() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool null_flag = 3;</code>
     * @return The nullFlag.
     */
    @java.lang.Override
    public boolean getNullFlag() {
      return nullFlag_;
    }

    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 (!hasMin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMax()) {
        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.writeBytes(1, min_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, max_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, nullFlag_);
      }
      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
          .computeBytesSize(1, min_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, max_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, nullFlag_);
      }
      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.OlapFile.ZoneMap)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.ZoneMap other = (org.apache.doris.proto.OlapFile.ZoneMap) obj;

      if (hasMin() != other.hasMin()) return false;
      if (hasMin()) {
        if (!getMin()
            .equals(other.getMin())) return false;
      }
      if (hasMax() != other.hasMax()) return false;
      if (hasMax()) {
        if (!getMax()
            .equals(other.getMax())) return false;
      }
      if (hasNullFlag() != other.hasNullFlag()) return false;
      if (hasNullFlag()) {
        if (getNullFlag()
            != other.getNullFlag()) 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 (hasMin()) {
        hash = (37 * hash) + MIN_FIELD_NUMBER;
        hash = (53 * hash) + getMin().hashCode();
      }
      if (hasMax()) {
        hash = (37 * hash) + MAX_FIELD_NUMBER;
        hash = (53 * hash) + getMax().hashCode();
      }
      if (hasNullFlag()) {
        hash = (37 * hash) + NULL_FLAG_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getNullFlag());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.ZoneMap parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.ZoneMap 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.OlapFile.ZoneMap parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.ZoneMap 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.OlapFile.ZoneMap parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.ZoneMap parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.ZoneMap parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.ZoneMap 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.OlapFile.ZoneMap parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.ZoneMap 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.OlapFile.ZoneMap parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.ZoneMap 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.OlapFile.ZoneMap 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.ZoneMap}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.ZoneMap)
        org.apache.doris.proto.OlapFile.ZoneMapOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_ZoneMap_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.ZoneMap.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        min_ = com.google.protobuf.ByteString.EMPTY;
        max_ = com.google.protobuf.ByteString.EMPTY;
        nullFlag_ = false;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.ZoneMap result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.min_ = min_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.max_ = max_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.nullFlag_ = nullFlag_;
          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.OlapFile.ZoneMap) {
          return mergeFrom((org.apache.doris.proto.OlapFile.ZoneMap)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.ZoneMap other) {
        if (other == org.apache.doris.proto.OlapFile.ZoneMap.getDefaultInstance()) return this;
        if (other.hasMin()) {
          setMin(other.getMin());
        }
        if (other.hasMax()) {
          setMax(other.getMax());
        }
        if (other.hasNullFlag()) {
          setNullFlag(other.getNullFlag());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasMin()) {
          return false;
        }
        if (!hasMax()) {
          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: {
                min_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                max_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                nullFlag_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              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 com.google.protobuf.ByteString min_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes min = 1;</code>
       * @return Whether the min field is set.
       */
      @java.lang.Override
      public boolean hasMin() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes min = 1;</code>
       * @return The min.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMin() {
        return min_;
      }
      /**
       * <code>required bytes min = 1;</code>
       * @param value The min to set.
       * @return This builder for chaining.
       */
      public Builder setMin(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        min_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes min = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMin() {
        bitField0_ = (bitField0_ & ~0x00000001);
        min_ = getDefaultInstance().getMin();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString max_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes max = 2;</code>
       * @return Whether the max field is set.
       */
      @java.lang.Override
      public boolean hasMax() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bytes max = 2;</code>
       * @return The max.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMax() {
        return max_;
      }
      /**
       * <code>required bytes max = 2;</code>
       * @param value The max to set.
       * @return This builder for chaining.
       */
      public Builder setMax(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        max_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes max = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMax() {
        bitField0_ = (bitField0_ & ~0x00000002);
        max_ = getDefaultInstance().getMax();
        onChanged();
        return this;
      }

      private boolean nullFlag_ ;
      /**
       * <code>optional bool null_flag = 3;</code>
       * @return Whether the nullFlag field is set.
       */
      @java.lang.Override
      public boolean hasNullFlag() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool null_flag = 3;</code>
       * @return The nullFlag.
       */
      @java.lang.Override
      public boolean getNullFlag() {
        return nullFlag_;
      }
      /**
       * <code>optional bool null_flag = 3;</code>
       * @param value The nullFlag to set.
       * @return This builder for chaining.
       */
      public Builder setNullFlag(boolean value) {

        nullFlag_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool null_flag = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNullFlag() {
        bitField0_ = (bitField0_ & ~0x00000004);
        nullFlag_ = 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.ZoneMap)
    }

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

    public static org.apache.doris.proto.OlapFile.ZoneMap getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ZoneMap>
        PARSER = new com.google.protobuf.AbstractParser<ZoneMap>() {
      @java.lang.Override
      public ZoneMap 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<ZoneMap> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>required bytes min_key = 1;</code>
     * @return Whether the minKey field is set.
     */
    boolean hasMinKey();
    /**
     * <code>required bytes min_key = 1;</code>
     * @return The minKey.
     */
    com.google.protobuf.ByteString getMinKey();

    /**
     * <code>required bytes max_key = 2;</code>
     * @return Whether the maxKey field is set.
     */
    boolean hasMaxKey();
    /**
     * <code>required bytes max_key = 2;</code>
     * @return The maxKey.
     */
    com.google.protobuf.ByteString getMaxKey();
  }
  /**
   * Protobuf type {@code doris.KeyBoundsPB}
   */
  public static final class KeyBoundsPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.KeyBoundsPB)
      KeyBoundsPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use KeyBoundsPB.newBuilder() to construct.
    private KeyBoundsPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private KeyBoundsPB() {
      minKey_ = com.google.protobuf.ByteString.EMPTY;
      maxKey_ = com.google.protobuf.ByteString.EMPTY;
    }

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

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

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

    private int bitField0_;
    public static final int MIN_KEY_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString minKey_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes min_key = 1;</code>
     * @return Whether the minKey field is set.
     */
    @java.lang.Override
    public boolean hasMinKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes min_key = 1;</code>
     * @return The minKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getMinKey() {
      return minKey_;
    }

    public static final int MAX_KEY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString maxKey_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes max_key = 2;</code>
     * @return Whether the maxKey field is set.
     */
    @java.lang.Override
    public boolean hasMaxKey() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bytes max_key = 2;</code>
     * @return The maxKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getMaxKey() {
      return maxKey_;
    }

    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 (!hasMinKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMaxKey()) {
        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.writeBytes(1, minKey_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, maxKey_);
      }
      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
          .computeBytesSize(1, minKey_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, maxKey_);
      }
      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.OlapFile.KeyBoundsPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.KeyBoundsPB other = (org.apache.doris.proto.OlapFile.KeyBoundsPB) obj;

      if (hasMinKey() != other.hasMinKey()) return false;
      if (hasMinKey()) {
        if (!getMinKey()
            .equals(other.getMinKey())) return false;
      }
      if (hasMaxKey() != other.hasMaxKey()) return false;
      if (hasMaxKey()) {
        if (!getMaxKey()
            .equals(other.getMaxKey())) 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 (hasMinKey()) {
        hash = (37 * hash) + MIN_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getMinKey().hashCode();
      }
      if (hasMaxKey()) {
        hash = (37 * hash) + MAX_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getMaxKey().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.KeyBoundsPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.KeyBoundsPB 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.OlapFile.KeyBoundsPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.KeyBoundsPB 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.OlapFile.KeyBoundsPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.KeyBoundsPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.KeyBoundsPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.KeyBoundsPB 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.OlapFile.KeyBoundsPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.KeyBoundsPB 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.OlapFile.KeyBoundsPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.KeyBoundsPB 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.OlapFile.KeyBoundsPB 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.KeyBoundsPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.KeyBoundsPB)
        org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_KeyBoundsPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.KeyBoundsPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        minKey_ = com.google.protobuf.ByteString.EMPTY;
        maxKey_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.KeyBoundsPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.minKey_ = minKey_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.maxKey_ = maxKey_;
          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.OlapFile.KeyBoundsPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.KeyBoundsPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.KeyBoundsPB other) {
        if (other == org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance()) return this;
        if (other.hasMinKey()) {
          setMinKey(other.getMinKey());
        }
        if (other.hasMaxKey()) {
          setMaxKey(other.getMaxKey());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasMinKey()) {
          return false;
        }
        if (!hasMaxKey()) {
          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: {
                minKey_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                maxKey_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 com.google.protobuf.ByteString minKey_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes min_key = 1;</code>
       * @return Whether the minKey field is set.
       */
      @java.lang.Override
      public boolean hasMinKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes min_key = 1;</code>
       * @return The minKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMinKey() {
        return minKey_;
      }
      /**
       * <code>required bytes min_key = 1;</code>
       * @param value The minKey to set.
       * @return This builder for chaining.
       */
      public Builder setMinKey(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        minKey_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes min_key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        minKey_ = getDefaultInstance().getMinKey();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString maxKey_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes max_key = 2;</code>
       * @return Whether the maxKey field is set.
       */
      @java.lang.Override
      public boolean hasMaxKey() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bytes max_key = 2;</code>
       * @return The maxKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMaxKey() {
        return maxKey_;
      }
      /**
       * <code>required bytes max_key = 2;</code>
       * @param value The maxKey to set.
       * @return This builder for chaining.
       */
      public Builder setMaxKey(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        maxKey_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes max_key = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        maxKey_ = getDefaultInstance().getMaxKey();
        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.KeyBoundsPB)
    }

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

    public static org.apache.doris.proto.OlapFile.KeyBoundsPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<KeyBoundsPB>
        PARSER = new com.google.protobuf.AbstractParser<KeyBoundsPB>() {
      @java.lang.Override
      public KeyBoundsPB 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<KeyBoundsPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return Whether the rowsetId field is set.
     */
    boolean hasRowsetId();
    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return The rowsetId.
     */
    long getRowsetId();

    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    boolean hasPartitionId();
    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    long getPartitionId();

    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    boolean hasTabletId();
    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    long getTabletId();

    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return Whether the txnId field is set.
     */
    boolean hasTxnId();
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return The txnId.
     */
    long getTxnId();

    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return Whether the tabletSchemaHash field is set.
     */
    boolean hasTabletSchemaHash();
    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return The tabletSchemaHash.
     */
    int getTabletSchemaHash();

    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return Whether the rowsetType field is set.
     */
    boolean hasRowsetType();
    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return The rowsetType.
     */
    org.apache.doris.proto.OlapFile.RowsetTypePB getRowsetType();

    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return Whether the rowsetState field is set.
     */
    boolean hasRowsetState();
    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return The rowsetState.
     */
    org.apache.doris.proto.OlapFile.RowsetStatePB getRowsetState();

    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return Whether the startVersion field is set.
     */
    boolean hasStartVersion();
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return The startVersion.
     */
    long getStartVersion();

    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return Whether the endVersion field is set.
     */
    boolean hasEndVersion();
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return The endVersion.
     */
    long getEndVersion();

    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return Whether the versionHash field is set.
     */
    boolean hasVersionHash();
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return The versionHash.
     */
    long getVersionHash();

    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return Whether the numRows field is set.
     */
    boolean hasNumRows();
    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return The numRows.
     */
    long getNumRows();

    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return Whether the totalDiskSize field is set.
     */
    boolean hasTotalDiskSize();
    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return The totalDiskSize.
     */
    long getTotalDiskSize();

    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return Whether the dataDiskSize field is set.
     */
    boolean hasDataDiskSize();
    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return The dataDiskSize.
     */
    long getDataDiskSize();

    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return Whether the indexDiskSize field is set.
     */
    boolean hasIndexDiskSize();
    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return The indexDiskSize.
     */
    long getIndexDiskSize();

    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> 
        getZoneMapsList();
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    org.apache.doris.proto.OlapFile.ZoneMap getZoneMaps(int index);
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    int getZoneMapsCount();
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
        getZoneMapsOrBuilderList();
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    org.apache.doris.proto.OlapFile.ZoneMapOrBuilder getZoneMapsOrBuilder(
        int index);

    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return Whether the deletePredicate field is set.
     */
    boolean hasDeletePredicate();
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return The deletePredicate.
     */
    org.apache.doris.proto.OlapFile.DeletePredicatePB getDeletePredicate();
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     */
    org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder getDeletePredicateOrBuilder();

    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return Whether the empty field is set.
     */
    boolean hasEmpty();
    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return The empty.
     */
    boolean getEmpty();

    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return Whether the loadId field is set.
     */
    boolean hasLoadId();
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return The loadId.
     */
    org.apache.doris.proto.Types.PUniqueId getLoadId();
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getLoadIdOrBuilder();

    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return Whether the deleteFlag field is set.
     */
    boolean hasDeleteFlag();
    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return The deleteFlag.
     */
    boolean getDeleteFlag();

    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return Whether the creationTime field is set.
     */
    boolean hasCreationTime();
    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return The creationTime.
     */
    long getCreationTime();

    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return Whether the tabletUid field is set.
     */
    boolean hasTabletUid();
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return The tabletUid.
     */
    org.apache.doris.proto.Types.PUniqueId getTabletUid();
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder();

    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return Whether the numSegments field is set.
     */
    boolean hasNumSegments();
    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return The numSegments.
     */
    long getNumSegments();

    /**
     * <pre>
     * rowset id definition, it will replace required rowset id 
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return Whether the rowsetIdV2 field is set.
     */
    boolean hasRowsetIdV2();
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id 
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The rowsetIdV2.
     */
    java.lang.String getRowsetIdV2();
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id 
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The bytes for rowsetIdV2.
     */
    com.google.protobuf.ByteString
        getRowsetIdV2Bytes();

    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return Whether the resourceId field is set.
     */
    boolean hasResourceId();
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The resourceId.
     */
    java.lang.String getResourceId();
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The bytes for resourceId.
     */
    com.google.protobuf.ByteString
        getResourceIdBytes();

    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return Whether the newestWriteTimestamp field is set.
     */
    boolean hasNewestWriteTimestamp();
    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return The newestWriteTimestamp.
     */
    long getNewestWriteTimestamp();

    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> 
        getSegmentsKeyBoundsList();
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    org.apache.doris.proto.OlapFile.KeyBoundsPB getSegmentsKeyBounds(int index);
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    int getSegmentsKeyBoundsCount();
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
        getSegmentsKeyBoundsOrBuilderList();
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getSegmentsKeyBoundsOrBuilder(
        int index);

    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
     * @return Whether the tabletSchema field is set.
     */
    boolean hasTabletSchema();
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
     * @return The tabletSchema.
     */
    org.apache.doris.proto.OlapFile.TabletSchemaPB getTabletSchema();
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
     */
    org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder getTabletSchemaOrBuilder();

    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return Whether the segmentsOverlapPb field is set.
     */
    boolean hasSegmentsOverlapPb();
    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return The segmentsOverlapPb.
     */
    org.apache.doris.proto.OlapFile.SegmentsOverlapPB getSegmentsOverlapPb();

    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return Whether the compactionLevel field is set.
     */
    boolean hasCompactionLevel();
    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return The compactionLevel.
     */
    long getCompactionLevel();

    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return Whether the sourceTabletId field is set.
     */
    boolean hasSourceTabletId();
    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return The sourceTabletId.
     */
    long getSourceTabletId();

    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return Whether the sourceRowsetId field is set.
     */
    boolean hasSourceRowsetId();
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The sourceRowsetId.
     */
    java.lang.String getSourceRowsetId();
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The bytes for sourceRowsetId.
     */
    com.google.protobuf.ByteString
        getSourceRowsetIdBytes();

    /**
     * <pre>
     * For cloud
     * for data recycling
     * </pre>
     *
     * <code>optional int64 txn_expiration = 1000;</code>
     * @return Whether the txnExpiration field is set.
     */
    boolean hasTxnExpiration();
    /**
     * <pre>
     * For cloud
     * for data recycling
     * </pre>
     *
     * <code>optional int64 txn_expiration = 1000;</code>
     * @return The txnExpiration.
     */
    long getTxnExpiration();

    /**
     * <pre>
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 1001;</code>
     * @return A list containing the segmentsFileSize.
     */
    java.util.List<java.lang.Long> getSegmentsFileSizeList();
    /**
     * <pre>
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 1001;</code>
     * @return The count of segmentsFileSize.
     */
    int getSegmentsFileSizeCount();
    /**
     * <pre>
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 1001;</code>
     * @param index The index of the element to return.
     * @return The segmentsFileSize at the given index.
     */
    long getSegmentsFileSize(int index);

    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 1002;</code>
     * @return Whether the indexId field is set.
     */
    boolean hasIndexId();
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 1002;</code>
     * @return The indexId.
     */
    long getIndexId();

    /**
     * <code>optional int32 schema_version = 1003;</code>
     * @return Whether the schemaVersion field is set.
     */
    boolean hasSchemaVersion();
    /**
     * <code>optional int32 schema_version = 1003;</code>
     * @return The schemaVersion.
     */
    int getSchemaVersion();

    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 1004;</code>
     * @return Whether the enableSegmentsFileSize field is set.
     */
    boolean hasEnableSegmentsFileSize();
    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 1004;</code>
     * @return The enableSegmentsFileSize.
     */
    boolean getEnableSegmentsFileSize();

    /**
     * <code>optional bool has_variant_type_in_schema = 1005;</code>
     * @return Whether the hasVariantTypeInSchema field is set.
     */
    boolean hasHasVariantTypeInSchema();
    /**
     * <code>optional bool has_variant_type_in_schema = 1005;</code>
     * @return The hasVariantTypeInSchema.
     */
    boolean getHasVariantTypeInSchema();

    /**
     * <code>optional bool enable_inverted_index_file_info = 1006;</code>
     * @return Whether the enableInvertedIndexFileInfo field is set.
     */
    boolean hasEnableInvertedIndexFileInfo();
    /**
     * <code>optional bool enable_inverted_index_file_info = 1006;</code>
     * @return The enableInvertedIndexFileInfo.
     */
    boolean getEnableInvertedIndexFileInfo();

    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> 
        getInvertedIndexFileInfoList();
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getInvertedIndexFileInfo(int index);
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    int getInvertedIndexFileInfoCount();
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
        getInvertedIndexFileInfoOrBuilderList();
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder getInvertedIndexFileInfoOrBuilder(
        int index);

    /**
     * <pre>
     * align to cloud rowset
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
     * @return Whether the schemaDictKeyList field is set.
     */
    boolean hasSchemaDictKeyList();
    /**
     * <pre>
     * align to cloud rowset
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
     * @return The schemaDictKeyList.
     */
    org.apache.doris.proto.OlapFile.SchemaDictKeyList getSchemaDictKeyList();
    /**
     * <pre>
     * align to cloud rowset
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
     */
    org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder getSchemaDictKeyListOrBuilder();
  }
  /**
   * <pre>
   * ATTN: When adding or deleting fields, please update `message RowsetMetaCloudPB`
   * simultaneously and modify the conversion function in the be/src/cloud/pb_convert.{h,cpp}.
   * </pre>
   *
   * Protobuf type {@code doris.RowsetMetaPB}
   */
  public static final class RowsetMetaPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.RowsetMetaPB)
      RowsetMetaPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowsetMetaPB.newBuilder() to construct.
    private RowsetMetaPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowsetMetaPB() {
      rowsetType_ = 0;
      rowsetState_ = 0;
      zoneMaps_ = java.util.Collections.emptyList();
      rowsetIdV2_ = "";
      resourceId_ = "";
      newestWriteTimestamp_ = -1L;
      segmentsKeyBounds_ = java.util.Collections.emptyList();
      segmentsOverlapPb_ = 0;
      sourceRowsetId_ = "";
      segmentsFileSize_ = emptyLongList();
      invertedIndexFileInfo_ = java.util.Collections.emptyList();
    }

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

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

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

    private int bitField0_;
    private int bitField1_;
    public static final int ROWSET_ID_FIELD_NUMBER = 1;
    private long rowsetId_ = 0L;
    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return Whether the rowsetId field is set.
     */
    @java.lang.Override
    public boolean hasRowsetId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return The rowsetId.
     */
    @java.lang.Override
    public long getRowsetId() {
      return rowsetId_;
    }

    public static final int PARTITION_ID_FIELD_NUMBER = 2;
    private long partitionId_ = 0L;
    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    @java.lang.Override
    public boolean hasPartitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    @java.lang.Override
    public long getPartitionId() {
      return partitionId_;
    }

    public static final int TABLET_ID_FIELD_NUMBER = 3;
    private long tabletId_ = 0L;
    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    @java.lang.Override
    public boolean hasTabletId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    @java.lang.Override
    public long getTabletId() {
      return tabletId_;
    }

    public static final int TXN_ID_FIELD_NUMBER = 4;
    private long txnId_ = 0L;
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return Whether the txnId field is set.
     */
    @java.lang.Override
    public boolean hasTxnId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return The txnId.
     */
    @java.lang.Override
    public long getTxnId() {
      return txnId_;
    }

    public static final int TABLET_SCHEMA_HASH_FIELD_NUMBER = 5;
    private int tabletSchemaHash_ = 0;
    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return Whether the tabletSchemaHash field is set.
     */
    @java.lang.Override
    public boolean hasTabletSchemaHash() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return The tabletSchemaHash.
     */
    @java.lang.Override
    public int getTabletSchemaHash() {
      return tabletSchemaHash_;
    }

    public static final int ROWSET_TYPE_FIELD_NUMBER = 6;
    private int rowsetType_ = 0;
    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return Whether the rowsetType field is set.
     */
    @java.lang.Override public boolean hasRowsetType() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return The rowsetType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.RowsetTypePB getRowsetType() {
      org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(rowsetType_);
      return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
    }

    public static final int ROWSET_STATE_FIELD_NUMBER = 7;
    private int rowsetState_ = 0;
    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return Whether the rowsetState field is set.
     */
    @java.lang.Override public boolean hasRowsetState() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return The rowsetState.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.RowsetStatePB getRowsetState() {
      org.apache.doris.proto.OlapFile.RowsetStatePB result = org.apache.doris.proto.OlapFile.RowsetStatePB.forNumber(rowsetState_);
      return result == null ? org.apache.doris.proto.OlapFile.RowsetStatePB.PREPARED : result;
    }

    public static final int START_VERSION_FIELD_NUMBER = 8;
    private long startVersion_ = 0L;
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return Whether the startVersion field is set.
     */
    @java.lang.Override
    public boolean hasStartVersion() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return The startVersion.
     */
    @java.lang.Override
    public long getStartVersion() {
      return startVersion_;
    }

    public static final int END_VERSION_FIELD_NUMBER = 9;
    private long endVersion_ = 0L;
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return Whether the endVersion field is set.
     */
    @java.lang.Override
    public boolean hasEndVersion() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return The endVersion.
     */
    @java.lang.Override
    public long getEndVersion() {
      return endVersion_;
    }

    public static final int VERSION_HASH_FIELD_NUMBER = 10;
    private long versionHash_ = 0L;
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return Whether the versionHash field is set.
     */
    @java.lang.Override
    public boolean hasVersionHash() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return The versionHash.
     */
    @java.lang.Override
    public long getVersionHash() {
      return versionHash_;
    }

    public static final int NUM_ROWS_FIELD_NUMBER = 11;
    private long numRows_ = 0L;
    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return Whether the numRows field is set.
     */
    @java.lang.Override
    public boolean hasNumRows() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return The numRows.
     */
    @java.lang.Override
    public long getNumRows() {
      return numRows_;
    }

    public static final int TOTAL_DISK_SIZE_FIELD_NUMBER = 12;
    private long totalDiskSize_ = 0L;
    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return Whether the totalDiskSize field is set.
     */
    @java.lang.Override
    public boolean hasTotalDiskSize() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return The totalDiskSize.
     */
    @java.lang.Override
    public long getTotalDiskSize() {
      return totalDiskSize_;
    }

    public static final int DATA_DISK_SIZE_FIELD_NUMBER = 13;
    private long dataDiskSize_ = 0L;
    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return Whether the dataDiskSize field is set.
     */
    @java.lang.Override
    public boolean hasDataDiskSize() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return The dataDiskSize.
     */
    @java.lang.Override
    public long getDataDiskSize() {
      return dataDiskSize_;
    }

    public static final int INDEX_DISK_SIZE_FIELD_NUMBER = 14;
    private long indexDiskSize_ = 0L;
    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return Whether the indexDiskSize field is set.
     */
    @java.lang.Override
    public boolean hasIndexDiskSize() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return The indexDiskSize.
     */
    @java.lang.Override
    public long getIndexDiskSize() {
      return indexDiskSize_;
    }

    public static final int ZONE_MAPS_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> zoneMaps_;
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> getZoneMapsList() {
      return zoneMaps_;
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
        getZoneMapsOrBuilderList() {
      return zoneMaps_;
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public int getZoneMapsCount() {
      return zoneMaps_.size();
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ZoneMap getZoneMaps(int index) {
      return zoneMaps_.get(index);
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ZoneMapOrBuilder getZoneMapsOrBuilder(
        int index) {
      return zoneMaps_.get(index);
    }

    public static final int DELETE_PREDICATE_FIELD_NUMBER = 16;
    private org.apache.doris.proto.OlapFile.DeletePredicatePB deletePredicate_;
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return Whether the deletePredicate field is set.
     */
    @java.lang.Override
    public boolean hasDeletePredicate() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return The deletePredicate.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeletePredicatePB getDeletePredicate() {
      return deletePredicate_ == null ? org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
    }
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder getDeletePredicateOrBuilder() {
      return deletePredicate_ == null ? org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
    }

    public static final int EMPTY_FIELD_NUMBER = 17;
    private boolean empty_ = false;
    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return Whether the empty field is set.
     */
    @java.lang.Override
    public boolean hasEmpty() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return The empty.
     */
    @java.lang.Override
    public boolean getEmpty() {
      return empty_;
    }

    public static final int LOAD_ID_FIELD_NUMBER = 18;
    private org.apache.doris.proto.Types.PUniqueId loadId_;
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return Whether the loadId field is set.
     */
    @java.lang.Override
    public boolean hasLoadId() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return The loadId.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getLoadId() {
      return loadId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
    }
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getLoadIdOrBuilder() {
      return loadId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
    }

    public static final int DELETE_FLAG_FIELD_NUMBER = 19;
    private boolean deleteFlag_ = false;
    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return Whether the deleteFlag field is set.
     */
    @java.lang.Override
    public boolean hasDeleteFlag() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return The deleteFlag.
     */
    @java.lang.Override
    public boolean getDeleteFlag() {
      return deleteFlag_;
    }

    public static final int CREATION_TIME_FIELD_NUMBER = 20;
    private long creationTime_ = 0L;
    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return Whether the creationTime field is set.
     */
    @java.lang.Override
    public boolean hasCreationTime() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return The creationTime.
     */
    @java.lang.Override
    public long getCreationTime() {
      return creationTime_;
    }

    public static final int TABLET_UID_FIELD_NUMBER = 21;
    private org.apache.doris.proto.Types.PUniqueId tabletUid_;
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return Whether the tabletUid field is set.
     */
    @java.lang.Override
    public boolean hasTabletUid() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return The tabletUid.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }

    public static final int NUM_SEGMENTS_FIELD_NUMBER = 22;
    private long numSegments_ = 0L;
    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return Whether the numSegments field is set.
     */
    @java.lang.Override
    public boolean hasNumSegments() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return The numSegments.
     */
    @java.lang.Override
    public long getNumSegments() {
      return numSegments_;
    }

    public static final int ROWSET_ID_V2_FIELD_NUMBER = 23;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rowsetIdV2_ = "";
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id 
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return Whether the rowsetIdV2 field is set.
     */
    @java.lang.Override
    public boolean hasRowsetIdV2() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id 
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The rowsetIdV2.
     */
    @java.lang.Override
    public java.lang.String getRowsetIdV2() {
      java.lang.Object ref = rowsetIdV2_;
      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()) {
          rowsetIdV2_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id 
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The bytes for rowsetIdV2.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRowsetIdV2Bytes() {
      java.lang.Object ref = rowsetIdV2_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rowsetIdV2_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCE_ID_FIELD_NUMBER = 24;
    @SuppressWarnings("serial")
    private volatile java.lang.Object resourceId_ = "";
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return Whether the resourceId field is set.
     */
    @java.lang.Override
    public boolean hasResourceId() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The resourceId.
     */
    @java.lang.Override
    public java.lang.String getResourceId() {
      java.lang.Object ref = resourceId_;
      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()) {
          resourceId_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The bytes for resourceId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getResourceIdBytes() {
      java.lang.Object ref = resourceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resourceId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NEWEST_WRITE_TIMESTAMP_FIELD_NUMBER = 26;
    private long newestWriteTimestamp_ = -1L;
    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return Whether the newestWriteTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasNewestWriteTimestamp() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return The newestWriteTimestamp.
     */
    @java.lang.Override
    public long getNewestWriteTimestamp() {
      return newestWriteTimestamp_;
    }

    public static final int SEGMENTS_KEY_BOUNDS_FIELD_NUMBER = 27;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> segmentsKeyBounds_;
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> getSegmentsKeyBoundsList() {
      return segmentsKeyBounds_;
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
        getSegmentsKeyBoundsOrBuilderList() {
      return segmentsKeyBounds_;
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public int getSegmentsKeyBoundsCount() {
      return segmentsKeyBounds_.size();
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.KeyBoundsPB getSegmentsKeyBounds(int index) {
      return segmentsKeyBounds_.get(index);
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getSegmentsKeyBoundsOrBuilder(
        int index) {
      return segmentsKeyBounds_.get(index);
    }

    public static final int TABLET_SCHEMA_FIELD_NUMBER = 28;
    private org.apache.doris.proto.OlapFile.TabletSchemaPB tabletSchema_;
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
     * @return Whether the tabletSchema field is set.
     */
    @java.lang.Override
    public boolean hasTabletSchema() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
     * @return The tabletSchema.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaPB getTabletSchema() {
      return tabletSchema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : tabletSchema_;
    }
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder getTabletSchemaOrBuilder() {
      return tabletSchema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : tabletSchema_;
    }

    public static final int SEGMENTS_OVERLAP_PB_FIELD_NUMBER = 51;
    private int segmentsOverlapPb_ = 0;
    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return Whether the segmentsOverlapPb field is set.
     */
    @java.lang.Override public boolean hasSegmentsOverlapPb() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return The segmentsOverlapPb.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.SegmentsOverlapPB getSegmentsOverlapPb() {
      org.apache.doris.proto.OlapFile.SegmentsOverlapPB result = org.apache.doris.proto.OlapFile.SegmentsOverlapPB.forNumber(segmentsOverlapPb_);
      return result == null ? org.apache.doris.proto.OlapFile.SegmentsOverlapPB.OVERLAP_UNKNOWN : result;
    }

    public static final int COMPACTION_LEVEL_FIELD_NUMBER = 52;
    private long compactionLevel_ = 0L;
    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return Whether the compactionLevel field is set.
     */
    @java.lang.Override
    public boolean hasCompactionLevel() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return The compactionLevel.
     */
    @java.lang.Override
    public long getCompactionLevel() {
      return compactionLevel_;
    }

    public static final int SOURCE_TABLET_ID_FIELD_NUMBER = 53;
    private long sourceTabletId_ = 0L;
    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return Whether the sourceTabletId field is set.
     */
    @java.lang.Override
    public boolean hasSourceTabletId() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return The sourceTabletId.
     */
    @java.lang.Override
    public long getSourceTabletId() {
      return sourceTabletId_;
    }

    public static final int SOURCE_ROWSET_ID_FIELD_NUMBER = 54;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sourceRowsetId_ = "";
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return Whether the sourceRowsetId field is set.
     */
    @java.lang.Override
    public boolean hasSourceRowsetId() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The sourceRowsetId.
     */
    @java.lang.Override
    public java.lang.String getSourceRowsetId() {
      java.lang.Object ref = sourceRowsetId_;
      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()) {
          sourceRowsetId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The bytes for sourceRowsetId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceRowsetIdBytes() {
      java.lang.Object ref = sourceRowsetId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceRowsetId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TXN_EXPIRATION_FIELD_NUMBER = 1000;
    private long txnExpiration_ = 0L;
    /**
     * <pre>
     * For cloud
     * for data recycling
     * </pre>
     *
     * <code>optional int64 txn_expiration = 1000;</code>
     * @return Whether the txnExpiration field is set.
     */
    @java.lang.Override
    public boolean hasTxnExpiration() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <pre>
     * For cloud
     * for data recycling
     * </pre>
     *
     * <code>optional int64 txn_expiration = 1000;</code>
     * @return The txnExpiration.
     */
    @java.lang.Override
    public long getTxnExpiration() {
      return txnExpiration_;
    }

    public static final int SEGMENTS_FILE_SIZE_FIELD_NUMBER = 1001;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList segmentsFileSize_ =
        emptyLongList();
    /**
     * <pre>
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 1001;</code>
     * @return A list containing the segmentsFileSize.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getSegmentsFileSizeList() {
      return segmentsFileSize_;
    }
    /**
     * <pre>
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 1001;</code>
     * @return The count of segmentsFileSize.
     */
    public int getSegmentsFileSizeCount() {
      return segmentsFileSize_.size();
    }
    /**
     * <pre>
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 1001;</code>
     * @param index The index of the element to return.
     * @return The segmentsFileSize at the given index.
     */
    public long getSegmentsFileSize(int index) {
      return segmentsFileSize_.getLong(index);
    }

    public static final int INDEX_ID_FIELD_NUMBER = 1002;
    private long indexId_ = 0L;
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 1002;</code>
     * @return Whether the indexId field is set.
     */
    @java.lang.Override
    public boolean hasIndexId() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 1002;</code>
     * @return The indexId.
     */
    @java.lang.Override
    public long getIndexId() {
      return indexId_;
    }

    public static final int SCHEMA_VERSION_FIELD_NUMBER = 1003;
    private int schemaVersion_ = 0;
    /**
     * <code>optional int32 schema_version = 1003;</code>
     * @return Whether the schemaVersion field is set.
     */
    @java.lang.Override
    public boolean hasSchemaVersion() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <code>optional int32 schema_version = 1003;</code>
     * @return The schemaVersion.
     */
    @java.lang.Override
    public int getSchemaVersion() {
      return schemaVersion_;
    }

    public static final int ENABLE_SEGMENTS_FILE_SIZE_FIELD_NUMBER = 1004;
    private boolean enableSegmentsFileSize_ = false;
    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 1004;</code>
     * @return Whether the enableSegmentsFileSize field is set.
     */
    @java.lang.Override
    public boolean hasEnableSegmentsFileSize() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 1004;</code>
     * @return The enableSegmentsFileSize.
     */
    @java.lang.Override
    public boolean getEnableSegmentsFileSize() {
      return enableSegmentsFileSize_;
    }

    public static final int HAS_VARIANT_TYPE_IN_SCHEMA_FIELD_NUMBER = 1005;
    private boolean hasVariantTypeInSchema_ = false;
    /**
     * <code>optional bool has_variant_type_in_schema = 1005;</code>
     * @return Whether the hasVariantTypeInSchema field is set.
     */
    @java.lang.Override
    public boolean hasHasVariantTypeInSchema() {
      return ((bitField1_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bool has_variant_type_in_schema = 1005;</code>
     * @return The hasVariantTypeInSchema.
     */
    @java.lang.Override
    public boolean getHasVariantTypeInSchema() {
      return hasVariantTypeInSchema_;
    }

    public static final int ENABLE_INVERTED_INDEX_FILE_INFO_FIELD_NUMBER = 1006;
    private boolean enableInvertedIndexFileInfo_ = false;
    /**
     * <code>optional bool enable_inverted_index_file_info = 1006;</code>
     * @return Whether the enableInvertedIndexFileInfo field is set.
     */
    @java.lang.Override
    public boolean hasEnableInvertedIndexFileInfo() {
      return ((bitField1_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool enable_inverted_index_file_info = 1006;</code>
     * @return The enableInvertedIndexFileInfo.
     */
    @java.lang.Override
    public boolean getEnableInvertedIndexFileInfo() {
      return enableInvertedIndexFileInfo_;
    }

    public static final int INVERTED_INDEX_FILE_INFO_FIELD_NUMBER = 1007;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> invertedIndexFileInfo_;
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> getInvertedIndexFileInfoList() {
      return invertedIndexFileInfo_;
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
        getInvertedIndexFileInfoOrBuilderList() {
      return invertedIndexFileInfo_;
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    @java.lang.Override
    public int getInvertedIndexFileInfoCount() {
      return invertedIndexFileInfo_.size();
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getInvertedIndexFileInfo(int index) {
      return invertedIndexFileInfo_.get(index);
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder getInvertedIndexFileInfoOrBuilder(
        int index) {
      return invertedIndexFileInfo_.get(index);
    }

    public static final int SCHEMA_DICT_KEY_LIST_FIELD_NUMBER = 1008;
    private org.apache.doris.proto.OlapFile.SchemaDictKeyList schemaDictKeyList_;
    /**
     * <pre>
     * align to cloud rowset
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
     * @return Whether the schemaDictKeyList field is set.
     */
    @java.lang.Override
    public boolean hasSchemaDictKeyList() {
      return ((bitField1_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * align to cloud rowset
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
     * @return The schemaDictKeyList.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.SchemaDictKeyList getSchemaDictKeyList() {
      return schemaDictKeyList_ == null ? org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
    }
    /**
     * <pre>
     * align to cloud rowset
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder getSchemaDictKeyListOrBuilder() {
      return schemaDictKeyList_ == null ? org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
    }

    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 (!hasRowsetId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getZoneMapsCount(); i++) {
        if (!getZoneMaps(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDeletePredicate()) {
        if (!getDeletePredicate().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLoadId()) {
        if (!getLoadId().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTabletUid()) {
        if (!getTabletUid().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getSegmentsKeyBoundsCount(); i++) {
        if (!getSegmentsKeyBounds(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTabletSchema()) {
        if (!getTabletSchema().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getInvertedIndexFileInfoCount(); i++) {
        if (!getInvertedIndexFileInfo(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.writeInt64(1, rowsetId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(4, txnId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, tabletSchemaHash_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeEnum(6, rowsetType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeEnum(7, rowsetState_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt64(8, startVersion_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt64(9, endVersion_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt64(10, versionHash_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeInt64(11, numRows_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeInt64(12, totalDiskSize_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt64(13, dataDiskSize_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeInt64(14, indexDiskSize_);
      }
      for (int i = 0; i < zoneMaps_.size(); i++) {
        output.writeMessage(15, zoneMaps_.get(i));
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeMessage(16, getDeletePredicate());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeBool(17, empty_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeMessage(18, getLoadId());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeBool(19, deleteFlag_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeInt64(20, creationTime_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeMessage(21, getTabletUid());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeInt64(22, numSegments_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 23, rowsetIdV2_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 24, resourceId_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeInt64(26, newestWriteTimestamp_);
      }
      for (int i = 0; i < segmentsKeyBounds_.size(); i++) {
        output.writeMessage(27, segmentsKeyBounds_.get(i));
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        output.writeMessage(28, getTabletSchema());
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        output.writeEnum(51, segmentsOverlapPb_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        output.writeInt64(52, compactionLevel_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        output.writeInt64(53, sourceTabletId_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 54, sourceRowsetId_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        output.writeInt64(1000, txnExpiration_);
      }
      for (int i = 0; i < segmentsFileSize_.size(); i++) {
        output.writeInt64(1001, segmentsFileSize_.getLong(i));
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        output.writeInt64(1002, indexId_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        output.writeInt32(1003, schemaVersion_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        output.writeBool(1004, enableSegmentsFileSize_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        output.writeBool(1005, hasVariantTypeInSchema_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        output.writeBool(1006, enableInvertedIndexFileInfo_);
      }
      for (int i = 0; i < invertedIndexFileInfo_.size(); i++) {
        output.writeMessage(1007, invertedIndexFileInfo_.get(i));
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        output.writeMessage(1008, getSchemaDictKeyList());
      }
      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, rowsetId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, txnId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, tabletSchemaHash_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, rowsetType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, rowsetState_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, startVersion_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, endVersion_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, versionHash_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(11, numRows_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(12, totalDiskSize_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(13, dataDiskSize_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(14, indexDiskSize_);
      }
      for (int i = 0; i < zoneMaps_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, zoneMaps_.get(i));
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, getDeletePredicate());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(17, empty_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, getLoadId());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, deleteFlag_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(20, creationTime_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, getTabletUid());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(22, numSegments_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, rowsetIdV2_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, resourceId_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(26, newestWriteTimestamp_);
      }
      for (int i = 0; i < segmentsKeyBounds_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, segmentsKeyBounds_.get(i));
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, getTabletSchema());
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(51, segmentsOverlapPb_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(52, compactionLevel_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(53, sourceTabletId_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(54, sourceRowsetId_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1000, txnExpiration_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < segmentsFileSize_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(segmentsFileSize_.getLong(i));
        }
        size += dataSize;
        size += 2 * getSegmentsFileSizeList().size();
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1002, indexId_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1003, schemaVersion_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1004, enableSegmentsFileSize_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1005, hasVariantTypeInSchema_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1006, enableInvertedIndexFileInfo_);
      }
      for (int i = 0; i < invertedIndexFileInfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1007, invertedIndexFileInfo_.get(i));
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1008, getSchemaDictKeyList());
      }
      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.OlapFile.RowsetMetaPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.RowsetMetaPB other = (org.apache.doris.proto.OlapFile.RowsetMetaPB) obj;

      if (hasRowsetId() != other.hasRowsetId()) return false;
      if (hasRowsetId()) {
        if (getRowsetId()
            != other.getRowsetId()) return false;
      }
      if (hasPartitionId() != other.hasPartitionId()) return false;
      if (hasPartitionId()) {
        if (getPartitionId()
            != other.getPartitionId()) return false;
      }
      if (hasTabletId() != other.hasTabletId()) return false;
      if (hasTabletId()) {
        if (getTabletId()
            != other.getTabletId()) return false;
      }
      if (hasTxnId() != other.hasTxnId()) return false;
      if (hasTxnId()) {
        if (getTxnId()
            != other.getTxnId()) return false;
      }
      if (hasTabletSchemaHash() != other.hasTabletSchemaHash()) return false;
      if (hasTabletSchemaHash()) {
        if (getTabletSchemaHash()
            != other.getTabletSchemaHash()) return false;
      }
      if (hasRowsetType() != other.hasRowsetType()) return false;
      if (hasRowsetType()) {
        if (rowsetType_ != other.rowsetType_) return false;
      }
      if (hasRowsetState() != other.hasRowsetState()) return false;
      if (hasRowsetState()) {
        if (rowsetState_ != other.rowsetState_) return false;
      }
      if (hasStartVersion() != other.hasStartVersion()) return false;
      if (hasStartVersion()) {
        if (getStartVersion()
            != other.getStartVersion()) return false;
      }
      if (hasEndVersion() != other.hasEndVersion()) return false;
      if (hasEndVersion()) {
        if (getEndVersion()
            != other.getEndVersion()) return false;
      }
      if (hasVersionHash() != other.hasVersionHash()) return false;
      if (hasVersionHash()) {
        if (getVersionHash()
            != other.getVersionHash()) return false;
      }
      if (hasNumRows() != other.hasNumRows()) return false;
      if (hasNumRows()) {
        if (getNumRows()
            != other.getNumRows()) return false;
      }
      if (hasTotalDiskSize() != other.hasTotalDiskSize()) return false;
      if (hasTotalDiskSize()) {
        if (getTotalDiskSize()
            != other.getTotalDiskSize()) return false;
      }
      if (hasDataDiskSize() != other.hasDataDiskSize()) return false;
      if (hasDataDiskSize()) {
        if (getDataDiskSize()
            != other.getDataDiskSize()) return false;
      }
      if (hasIndexDiskSize() != other.hasIndexDiskSize()) return false;
      if (hasIndexDiskSize()) {
        if (getIndexDiskSize()
            != other.getIndexDiskSize()) return false;
      }
      if (!getZoneMapsList()
          .equals(other.getZoneMapsList())) return false;
      if (hasDeletePredicate() != other.hasDeletePredicate()) return false;
      if (hasDeletePredicate()) {
        if (!getDeletePredicate()
            .equals(other.getDeletePredicate())) return false;
      }
      if (hasEmpty() != other.hasEmpty()) return false;
      if (hasEmpty()) {
        if (getEmpty()
            != other.getEmpty()) return false;
      }
      if (hasLoadId() != other.hasLoadId()) return false;
      if (hasLoadId()) {
        if (!getLoadId()
            .equals(other.getLoadId())) return false;
      }
      if (hasDeleteFlag() != other.hasDeleteFlag()) return false;
      if (hasDeleteFlag()) {
        if (getDeleteFlag()
            != other.getDeleteFlag()) return false;
      }
      if (hasCreationTime() != other.hasCreationTime()) return false;
      if (hasCreationTime()) {
        if (getCreationTime()
            != other.getCreationTime()) return false;
      }
      if (hasTabletUid() != other.hasTabletUid()) return false;
      if (hasTabletUid()) {
        if (!getTabletUid()
            .equals(other.getTabletUid())) return false;
      }
      if (hasNumSegments() != other.hasNumSegments()) return false;
      if (hasNumSegments()) {
        if (getNumSegments()
            != other.getNumSegments()) return false;
      }
      if (hasRowsetIdV2() != other.hasRowsetIdV2()) return false;
      if (hasRowsetIdV2()) {
        if (!getRowsetIdV2()
            .equals(other.getRowsetIdV2())) return false;
      }
      if (hasResourceId() != other.hasResourceId()) return false;
      if (hasResourceId()) {
        if (!getResourceId()
            .equals(other.getResourceId())) return false;
      }
      if (hasNewestWriteTimestamp() != other.hasNewestWriteTimestamp()) return false;
      if (hasNewestWriteTimestamp()) {
        if (getNewestWriteTimestamp()
            != other.getNewestWriteTimestamp()) return false;
      }
      if (!getSegmentsKeyBoundsList()
          .equals(other.getSegmentsKeyBoundsList())) return false;
      if (hasTabletSchema() != other.hasTabletSchema()) return false;
      if (hasTabletSchema()) {
        if (!getTabletSchema()
            .equals(other.getTabletSchema())) return false;
      }
      if (hasSegmentsOverlapPb() != other.hasSegmentsOverlapPb()) return false;
      if (hasSegmentsOverlapPb()) {
        if (segmentsOverlapPb_ != other.segmentsOverlapPb_) return false;
      }
      if (hasCompactionLevel() != other.hasCompactionLevel()) return false;
      if (hasCompactionLevel()) {
        if (getCompactionLevel()
            != other.getCompactionLevel()) return false;
      }
      if (hasSourceTabletId() != other.hasSourceTabletId()) return false;
      if (hasSourceTabletId()) {
        if (getSourceTabletId()
            != other.getSourceTabletId()) return false;
      }
      if (hasSourceRowsetId() != other.hasSourceRowsetId()) return false;
      if (hasSourceRowsetId()) {
        if (!getSourceRowsetId()
            .equals(other.getSourceRowsetId())) return false;
      }
      if (hasTxnExpiration() != other.hasTxnExpiration()) return false;
      if (hasTxnExpiration()) {
        if (getTxnExpiration()
            != other.getTxnExpiration()) return false;
      }
      if (!getSegmentsFileSizeList()
          .equals(other.getSegmentsFileSizeList())) return false;
      if (hasIndexId() != other.hasIndexId()) return false;
      if (hasIndexId()) {
        if (getIndexId()
            != other.getIndexId()) return false;
      }
      if (hasSchemaVersion() != other.hasSchemaVersion()) return false;
      if (hasSchemaVersion()) {
        if (getSchemaVersion()
            != other.getSchemaVersion()) return false;
      }
      if (hasEnableSegmentsFileSize() != other.hasEnableSegmentsFileSize()) return false;
      if (hasEnableSegmentsFileSize()) {
        if (getEnableSegmentsFileSize()
            != other.getEnableSegmentsFileSize()) return false;
      }
      if (hasHasVariantTypeInSchema() != other.hasHasVariantTypeInSchema()) return false;
      if (hasHasVariantTypeInSchema()) {
        if (getHasVariantTypeInSchema()
            != other.getHasVariantTypeInSchema()) return false;
      }
      if (hasEnableInvertedIndexFileInfo() != other.hasEnableInvertedIndexFileInfo()) return false;
      if (hasEnableInvertedIndexFileInfo()) {
        if (getEnableInvertedIndexFileInfo()
            != other.getEnableInvertedIndexFileInfo()) return false;
      }
      if (!getInvertedIndexFileInfoList()
          .equals(other.getInvertedIndexFileInfoList())) return false;
      if (hasSchemaDictKeyList() != other.hasSchemaDictKeyList()) return false;
      if (hasSchemaDictKeyList()) {
        if (!getSchemaDictKeyList()
            .equals(other.getSchemaDictKeyList())) 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 (hasRowsetId()) {
        hash = (37 * hash) + ROWSET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRowsetId());
      }
      if (hasPartitionId()) {
        hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPartitionId());
      }
      if (hasTabletId()) {
        hash = (37 * hash) + TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTabletId());
      }
      if (hasTxnId()) {
        hash = (37 * hash) + TXN_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTxnId());
      }
      if (hasTabletSchemaHash()) {
        hash = (37 * hash) + TABLET_SCHEMA_HASH_FIELD_NUMBER;
        hash = (53 * hash) + getTabletSchemaHash();
      }
      if (hasRowsetType()) {
        hash = (37 * hash) + ROWSET_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + rowsetType_;
      }
      if (hasRowsetState()) {
        hash = (37 * hash) + ROWSET_STATE_FIELD_NUMBER;
        hash = (53 * hash) + rowsetState_;
      }
      if (hasStartVersion()) {
        hash = (37 * hash) + START_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStartVersion());
      }
      if (hasEndVersion()) {
        hash = (37 * hash) + END_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getEndVersion());
      }
      if (hasVersionHash()) {
        hash = (37 * hash) + VERSION_HASH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersionHash());
      }
      if (hasNumRows()) {
        hash = (37 * hash) + NUM_ROWS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNumRows());
      }
      if (hasTotalDiskSize()) {
        hash = (37 * hash) + TOTAL_DISK_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTotalDiskSize());
      }
      if (hasDataDiskSize()) {
        hash = (37 * hash) + DATA_DISK_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDataDiskSize());
      }
      if (hasIndexDiskSize()) {
        hash = (37 * hash) + INDEX_DISK_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexDiskSize());
      }
      if (getZoneMapsCount() > 0) {
        hash = (37 * hash) + ZONE_MAPS_FIELD_NUMBER;
        hash = (53 * hash) + getZoneMapsList().hashCode();
      }
      if (hasDeletePredicate()) {
        hash = (37 * hash) + DELETE_PREDICATE_FIELD_NUMBER;
        hash = (53 * hash) + getDeletePredicate().hashCode();
      }
      if (hasEmpty()) {
        hash = (37 * hash) + EMPTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEmpty());
      }
      if (hasLoadId()) {
        hash = (37 * hash) + LOAD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getLoadId().hashCode();
      }
      if (hasDeleteFlag()) {
        hash = (37 * hash) + DELETE_FLAG_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDeleteFlag());
      }
      if (hasCreationTime()) {
        hash = (37 * hash) + CREATION_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCreationTime());
      }
      if (hasTabletUid()) {
        hash = (37 * hash) + TABLET_UID_FIELD_NUMBER;
        hash = (53 * hash) + getTabletUid().hashCode();
      }
      if (hasNumSegments()) {
        hash = (37 * hash) + NUM_SEGMENTS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNumSegments());
      }
      if (hasRowsetIdV2()) {
        hash = (37 * hash) + ROWSET_ID_V2_FIELD_NUMBER;
        hash = (53 * hash) + getRowsetIdV2().hashCode();
      }
      if (hasResourceId()) {
        hash = (37 * hash) + RESOURCE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getResourceId().hashCode();
      }
      if (hasNewestWriteTimestamp()) {
        hash = (37 * hash) + NEWEST_WRITE_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNewestWriteTimestamp());
      }
      if (getSegmentsKeyBoundsCount() > 0) {
        hash = (37 * hash) + SEGMENTS_KEY_BOUNDS_FIELD_NUMBER;
        hash = (53 * hash) + getSegmentsKeyBoundsList().hashCode();
      }
      if (hasTabletSchema()) {
        hash = (37 * hash) + TABLET_SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getTabletSchema().hashCode();
      }
      if (hasSegmentsOverlapPb()) {
        hash = (37 * hash) + SEGMENTS_OVERLAP_PB_FIELD_NUMBER;
        hash = (53 * hash) + segmentsOverlapPb_;
      }
      if (hasCompactionLevel()) {
        hash = (37 * hash) + COMPACTION_LEVEL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCompactionLevel());
      }
      if (hasSourceTabletId()) {
        hash = (37 * hash) + SOURCE_TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSourceTabletId());
      }
      if (hasSourceRowsetId()) {
        hash = (37 * hash) + SOURCE_ROWSET_ID_FIELD_NUMBER;
        hash = (53 * hash) + getSourceRowsetId().hashCode();
      }
      if (hasTxnExpiration()) {
        hash = (37 * hash) + TXN_EXPIRATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTxnExpiration());
      }
      if (getSegmentsFileSizeCount() > 0) {
        hash = (37 * hash) + SEGMENTS_FILE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + getSegmentsFileSizeList().hashCode();
      }
      if (hasIndexId()) {
        hash = (37 * hash) + INDEX_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexId());
      }
      if (hasSchemaVersion()) {
        hash = (37 * hash) + SCHEMA_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaVersion();
      }
      if (hasEnableSegmentsFileSize()) {
        hash = (37 * hash) + ENABLE_SEGMENTS_FILE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableSegmentsFileSize());
      }
      if (hasHasVariantTypeInSchema()) {
        hash = (37 * hash) + HAS_VARIANT_TYPE_IN_SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getHasVariantTypeInSchema());
      }
      if (hasEnableInvertedIndexFileInfo()) {
        hash = (37 * hash) + ENABLE_INVERTED_INDEX_FILE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableInvertedIndexFileInfo());
      }
      if (getInvertedIndexFileInfoCount() > 0) {
        hash = (37 * hash) + INVERTED_INDEX_FILE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getInvertedIndexFileInfoList().hashCode();
      }
      if (hasSchemaDictKeyList()) {
        hash = (37 * hash) + SCHEMA_DICT_KEY_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaDictKeyList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.RowsetMetaPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaPB 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.OlapFile.RowsetMetaPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaPB 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.OlapFile.RowsetMetaPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaPB 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.OlapFile.RowsetMetaPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.RowsetMetaPB 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.OlapFile.RowsetMetaPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaPB 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.OlapFile.RowsetMetaPB 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;
    }
    /**
     * <pre>
     * ATTN: When adding or deleting fields, please update `message RowsetMetaCloudPB`
     * simultaneously and modify the conversion function in the be/src/cloud/pb_convert.{h,cpp}.
     * </pre>
     *
     * Protobuf type {@code doris.RowsetMetaPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.RowsetMetaPB)
        org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_RowsetMetaPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.RowsetMetaPB.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getZoneMapsFieldBuilder();
          getDeletePredicateFieldBuilder();
          getLoadIdFieldBuilder();
          getTabletUidFieldBuilder();
          getSegmentsKeyBoundsFieldBuilder();
          getTabletSchemaFieldBuilder();
          getInvertedIndexFileInfoFieldBuilder();
          getSchemaDictKeyListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        rowsetId_ = 0L;
        partitionId_ = 0L;
        tabletId_ = 0L;
        txnId_ = 0L;
        tabletSchemaHash_ = 0;
        rowsetType_ = 0;
        rowsetState_ = 0;
        startVersion_ = 0L;
        endVersion_ = 0L;
        versionHash_ = 0L;
        numRows_ = 0L;
        totalDiskSize_ = 0L;
        dataDiskSize_ = 0L;
        indexDiskSize_ = 0L;
        if (zoneMapsBuilder_ == null) {
          zoneMaps_ = java.util.Collections.emptyList();
        } else {
          zoneMaps_ = null;
          zoneMapsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        deletePredicate_ = null;
        if (deletePredicateBuilder_ != null) {
          deletePredicateBuilder_.dispose();
          deletePredicateBuilder_ = null;
        }
        empty_ = false;
        loadId_ = null;
        if (loadIdBuilder_ != null) {
          loadIdBuilder_.dispose();
          loadIdBuilder_ = null;
        }
        deleteFlag_ = false;
        creationTime_ = 0L;
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        numSegments_ = 0L;
        rowsetIdV2_ = "";
        resourceId_ = "";
        newestWriteTimestamp_ = -1L;
        if (segmentsKeyBoundsBuilder_ == null) {
          segmentsKeyBounds_ = java.util.Collections.emptyList();
        } else {
          segmentsKeyBounds_ = null;
          segmentsKeyBoundsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x02000000);
        tabletSchema_ = null;
        if (tabletSchemaBuilder_ != null) {
          tabletSchemaBuilder_.dispose();
          tabletSchemaBuilder_ = null;
        }
        segmentsOverlapPb_ = 0;
        compactionLevel_ = 0L;
        sourceTabletId_ = 0L;
        sourceRowsetId_ = "";
        txnExpiration_ = 0L;
        segmentsFileSize_ = emptyLongList();
        indexId_ = 0L;
        schemaVersion_ = 0;
        enableSegmentsFileSize_ = false;
        hasVariantTypeInSchema_ = false;
        enableInvertedIndexFileInfo_ = false;
        if (invertedIndexFileInfoBuilder_ == null) {
          invertedIndexFileInfo_ = java.util.Collections.emptyList();
        } else {
          invertedIndexFileInfo_ = null;
          invertedIndexFileInfoBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000040);
        schemaDictKeyList_ = null;
        if (schemaDictKeyListBuilder_ != null) {
          schemaDictKeyListBuilder_.dispose();
          schemaDictKeyListBuilder_ = null;
        }
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.RowsetMetaPB result) {
        if (zoneMapsBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0)) {
            zoneMaps_ = java.util.Collections.unmodifiableList(zoneMaps_);
            bitField0_ = (bitField0_ & ~0x00004000);
          }
          result.zoneMaps_ = zoneMaps_;
        } else {
          result.zoneMaps_ = zoneMapsBuilder_.build();
        }
        if (segmentsKeyBoundsBuilder_ == null) {
          if (((bitField0_ & 0x02000000) != 0)) {
            segmentsKeyBounds_ = java.util.Collections.unmodifiableList(segmentsKeyBounds_);
            bitField0_ = (bitField0_ & ~0x02000000);
          }
          result.segmentsKeyBounds_ = segmentsKeyBounds_;
        } else {
          result.segmentsKeyBounds_ = segmentsKeyBoundsBuilder_.build();
        }
        if (invertedIndexFileInfoBuilder_ == null) {
          if (((bitField1_ & 0x00000040) != 0)) {
            invertedIndexFileInfo_ = java.util.Collections.unmodifiableList(invertedIndexFileInfo_);
            bitField1_ = (bitField1_ & ~0x00000040);
          }
          result.invertedIndexFileInfo_ = invertedIndexFileInfo_;
        } else {
          result.invertedIndexFileInfo_ = invertedIndexFileInfoBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.RowsetMetaPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.rowsetId_ = rowsetId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.partitionId_ = partitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.tabletId_ = tabletId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.txnId_ = txnId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.tabletSchemaHash_ = tabletSchemaHash_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.rowsetType_ = rowsetType_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.rowsetState_ = rowsetState_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.startVersion_ = startVersion_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.endVersion_ = endVersion_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.versionHash_ = versionHash_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.numRows_ = numRows_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.totalDiskSize_ = totalDiskSize_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.dataDiskSize_ = dataDiskSize_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.indexDiskSize_ = indexDiskSize_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.deletePredicate_ = deletePredicateBuilder_ == null
              ? deletePredicate_
              : deletePredicateBuilder_.build();
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.empty_ = empty_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.loadId_ = loadIdBuilder_ == null
              ? loadId_
              : loadIdBuilder_.build();
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.deleteFlag_ = deleteFlag_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.creationTime_ = creationTime_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.tabletUid_ = tabletUidBuilder_ == null
              ? tabletUid_
              : tabletUidBuilder_.build();
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.numSegments_ = numSegments_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.rowsetIdV2_ = rowsetIdV2_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.resourceId_ = resourceId_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.newestWriteTimestamp_ = newestWriteTimestamp_;
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.tabletSchema_ = tabletSchemaBuilder_ == null
              ? tabletSchema_
              : tabletSchemaBuilder_.build();
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.segmentsOverlapPb_ = segmentsOverlapPb_;
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.compactionLevel_ = compactionLevel_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.sourceTabletId_ = sourceTabletId_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.sourceRowsetId_ = sourceRowsetId_;
          to_bitField0_ |= 0x10000000;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.txnExpiration_ = txnExpiration_;
          to_bitField0_ |= 0x20000000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartial1(org.apache.doris.proto.OlapFile.RowsetMetaPB result) {
        int from_bitField1_ = bitField1_;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          segmentsFileSize_.makeImmutable();
          result.segmentsFileSize_ = segmentsFileSize_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField1_ & 0x00000002) != 0)) {
          result.indexId_ = indexId_;
          to_bitField0_ |= 0x40000000;
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.schemaVersion_ = schemaVersion_;
          to_bitField0_ |= 0x80000000;
        }
        int to_bitField1_ = 0;
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.enableSegmentsFileSize_ = enableSegmentsFileSize_;
          to_bitField1_ |= 0x00000001;
        }
        if (((from_bitField1_ & 0x00000010) != 0)) {
          result.hasVariantTypeInSchema_ = hasVariantTypeInSchema_;
          to_bitField1_ |= 0x00000002;
        }
        if (((from_bitField1_ & 0x00000020) != 0)) {
          result.enableInvertedIndexFileInfo_ = enableInvertedIndexFileInfo_;
          to_bitField1_ |= 0x00000004;
        }
        if (((from_bitField1_ & 0x00000080) != 0)) {
          result.schemaDictKeyList_ = schemaDictKeyListBuilder_ == null
              ? schemaDictKeyList_
              : schemaDictKeyListBuilder_.build();
          to_bitField1_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
        result.bitField1_ |= to_bitField1_;
      }

      @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.OlapFile.RowsetMetaPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.RowsetMetaPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.RowsetMetaPB other) {
        if (other == org.apache.doris.proto.OlapFile.RowsetMetaPB.getDefaultInstance()) return this;
        if (other.hasRowsetId()) {
          setRowsetId(other.getRowsetId());
        }
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasTabletId()) {
          setTabletId(other.getTabletId());
        }
        if (other.hasTxnId()) {
          setTxnId(other.getTxnId());
        }
        if (other.hasTabletSchemaHash()) {
          setTabletSchemaHash(other.getTabletSchemaHash());
        }
        if (other.hasRowsetType()) {
          setRowsetType(other.getRowsetType());
        }
        if (other.hasRowsetState()) {
          setRowsetState(other.getRowsetState());
        }
        if (other.hasStartVersion()) {
          setStartVersion(other.getStartVersion());
        }
        if (other.hasEndVersion()) {
          setEndVersion(other.getEndVersion());
        }
        if (other.hasVersionHash()) {
          setVersionHash(other.getVersionHash());
        }
        if (other.hasNumRows()) {
          setNumRows(other.getNumRows());
        }
        if (other.hasTotalDiskSize()) {
          setTotalDiskSize(other.getTotalDiskSize());
        }
        if (other.hasDataDiskSize()) {
          setDataDiskSize(other.getDataDiskSize());
        }
        if (other.hasIndexDiskSize()) {
          setIndexDiskSize(other.getIndexDiskSize());
        }
        if (zoneMapsBuilder_ == null) {
          if (!other.zoneMaps_.isEmpty()) {
            if (zoneMaps_.isEmpty()) {
              zoneMaps_ = other.zoneMaps_;
              bitField0_ = (bitField0_ & ~0x00004000);
            } else {
              ensureZoneMapsIsMutable();
              zoneMaps_.addAll(other.zoneMaps_);
            }
            onChanged();
          }
        } else {
          if (!other.zoneMaps_.isEmpty()) {
            if (zoneMapsBuilder_.isEmpty()) {
              zoneMapsBuilder_.dispose();
              zoneMapsBuilder_ = null;
              zoneMaps_ = other.zoneMaps_;
              bitField0_ = (bitField0_ & ~0x00004000);
              zoneMapsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getZoneMapsFieldBuilder() : null;
            } else {
              zoneMapsBuilder_.addAllMessages(other.zoneMaps_);
            }
          }
        }
        if (other.hasDeletePredicate()) {
          mergeDeletePredicate(other.getDeletePredicate());
        }
        if (other.hasEmpty()) {
          setEmpty(other.getEmpty());
        }
        if (other.hasLoadId()) {
          mergeLoadId(other.getLoadId());
        }
        if (other.hasDeleteFlag()) {
          setDeleteFlag(other.getDeleteFlag());
        }
        if (other.hasCreationTime()) {
          setCreationTime(other.getCreationTime());
        }
        if (other.hasTabletUid()) {
          mergeTabletUid(other.getTabletUid());
        }
        if (other.hasNumSegments()) {
          setNumSegments(other.getNumSegments());
        }
        if (other.hasRowsetIdV2()) {
          rowsetIdV2_ = other.rowsetIdV2_;
          bitField0_ |= 0x00400000;
          onChanged();
        }
        if (other.hasResourceId()) {
          resourceId_ = other.resourceId_;
          bitField0_ |= 0x00800000;
          onChanged();
        }
        if (other.hasNewestWriteTimestamp()) {
          setNewestWriteTimestamp(other.getNewestWriteTimestamp());
        }
        if (segmentsKeyBoundsBuilder_ == null) {
          if (!other.segmentsKeyBounds_.isEmpty()) {
            if (segmentsKeyBounds_.isEmpty()) {
              segmentsKeyBounds_ = other.segmentsKeyBounds_;
              bitField0_ = (bitField0_ & ~0x02000000);
            } else {
              ensureSegmentsKeyBoundsIsMutable();
              segmentsKeyBounds_.addAll(other.segmentsKeyBounds_);
            }
            onChanged();
          }
        } else {
          if (!other.segmentsKeyBounds_.isEmpty()) {
            if (segmentsKeyBoundsBuilder_.isEmpty()) {
              segmentsKeyBoundsBuilder_.dispose();
              segmentsKeyBoundsBuilder_ = null;
              segmentsKeyBounds_ = other.segmentsKeyBounds_;
              bitField0_ = (bitField0_ & ~0x02000000);
              segmentsKeyBoundsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSegmentsKeyBoundsFieldBuilder() : null;
            } else {
              segmentsKeyBoundsBuilder_.addAllMessages(other.segmentsKeyBounds_);
            }
          }
        }
        if (other.hasTabletSchema()) {
          mergeTabletSchema(other.getTabletSchema());
        }
        if (other.hasSegmentsOverlapPb()) {
          setSegmentsOverlapPb(other.getSegmentsOverlapPb());
        }
        if (other.hasCompactionLevel()) {
          setCompactionLevel(other.getCompactionLevel());
        }
        if (other.hasSourceTabletId()) {
          setSourceTabletId(other.getSourceTabletId());
        }
        if (other.hasSourceRowsetId()) {
          sourceRowsetId_ = other.sourceRowsetId_;
          bitField0_ |= 0x40000000;
          onChanged();
        }
        if (other.hasTxnExpiration()) {
          setTxnExpiration(other.getTxnExpiration());
        }
        if (!other.segmentsFileSize_.isEmpty()) {
          if (segmentsFileSize_.isEmpty()) {
            segmentsFileSize_ = other.segmentsFileSize_;
            segmentsFileSize_.makeImmutable();
            bitField1_ |= 0x00000001;
          } else {
            ensureSegmentsFileSizeIsMutable();
            segmentsFileSize_.addAll(other.segmentsFileSize_);
          }
          onChanged();
        }
        if (other.hasIndexId()) {
          setIndexId(other.getIndexId());
        }
        if (other.hasSchemaVersion()) {
          setSchemaVersion(other.getSchemaVersion());
        }
        if (other.hasEnableSegmentsFileSize()) {
          setEnableSegmentsFileSize(other.getEnableSegmentsFileSize());
        }
        if (other.hasHasVariantTypeInSchema()) {
          setHasVariantTypeInSchema(other.getHasVariantTypeInSchema());
        }
        if (other.hasEnableInvertedIndexFileInfo()) {
          setEnableInvertedIndexFileInfo(other.getEnableInvertedIndexFileInfo());
        }
        if (invertedIndexFileInfoBuilder_ == null) {
          if (!other.invertedIndexFileInfo_.isEmpty()) {
            if (invertedIndexFileInfo_.isEmpty()) {
              invertedIndexFileInfo_ = other.invertedIndexFileInfo_;
              bitField1_ = (bitField1_ & ~0x00000040);
            } else {
              ensureInvertedIndexFileInfoIsMutable();
              invertedIndexFileInfo_.addAll(other.invertedIndexFileInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.invertedIndexFileInfo_.isEmpty()) {
            if (invertedIndexFileInfoBuilder_.isEmpty()) {
              invertedIndexFileInfoBuilder_.dispose();
              invertedIndexFileInfoBuilder_ = null;
              invertedIndexFileInfo_ = other.invertedIndexFileInfo_;
              bitField1_ = (bitField1_ & ~0x00000040);
              invertedIndexFileInfoBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getInvertedIndexFileInfoFieldBuilder() : null;
            } else {
              invertedIndexFileInfoBuilder_.addAllMessages(other.invertedIndexFileInfo_);
            }
          }
        }
        if (other.hasSchemaDictKeyList()) {
          mergeSchemaDictKeyList(other.getSchemaDictKeyList());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRowsetId()) {
          return false;
        }
        for (int i = 0; i < getZoneMapsCount(); i++) {
          if (!getZoneMaps(i).isInitialized()) {
            return false;
          }
        }
        if (hasDeletePredicate()) {
          if (!getDeletePredicate().isInitialized()) {
            return false;
          }
        }
        if (hasLoadId()) {
          if (!getLoadId().isInitialized()) {
            return false;
          }
        }
        if (hasTabletUid()) {
          if (!getTabletUid().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getSegmentsKeyBoundsCount(); i++) {
          if (!getSegmentsKeyBounds(i).isInitialized()) {
            return false;
          }
        }
        if (hasTabletSchema()) {
          if (!getTabletSchema().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getInvertedIndexFileInfoCount(); i++) {
          if (!getInvertedIndexFileInfo(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: {
                rowsetId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                partitionId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                tabletId_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                txnId_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                tabletSchemaHash_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.RowsetTypePB tmpValue =
                    org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(6, tmpRaw);
                } else {
                  rowsetType_ = tmpRaw;
                  bitField0_ |= 0x00000020;
                }
                break;
              } // case 48
              case 56: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.RowsetStatePB tmpValue =
                    org.apache.doris.proto.OlapFile.RowsetStatePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(7, tmpRaw);
                } else {
                  rowsetState_ = tmpRaw;
                  bitField0_ |= 0x00000040;
                }
                break;
              } // case 56
              case 64: {
                startVersion_ = input.readInt64();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                endVersion_ = input.readInt64();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                versionHash_ = input.readInt64();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                numRows_ = input.readInt64();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                totalDiskSize_ = input.readInt64();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                dataDiskSize_ = input.readInt64();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                indexDiskSize_ = input.readInt64();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 122: {
                org.apache.doris.proto.OlapFile.ZoneMap m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.ZoneMap.PARSER,
                        extensionRegistry);
                if (zoneMapsBuilder_ == null) {
                  ensureZoneMapsIsMutable();
                  zoneMaps_.add(m);
                } else {
                  zoneMapsBuilder_.addMessage(m);
                }
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    getDeletePredicateFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00008000;
                break;
              } // case 130
              case 136: {
                empty_ = input.readBool();
                bitField0_ |= 0x00010000;
                break;
              } // case 136
              case 146: {
                input.readMessage(
                    getLoadIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00020000;
                break;
              } // case 146
              case 152: {
                deleteFlag_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 152
              case 160: {
                creationTime_ = input.readInt64();
                bitField0_ |= 0x00080000;
                break;
              } // case 160
              case 170: {
                input.readMessage(
                    getTabletUidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00100000;
                break;
              } // case 170
              case 176: {
                numSegments_ = input.readInt64();
                bitField0_ |= 0x00200000;
                break;
              } // case 176
              case 186: {
                rowsetIdV2_ = input.readBytes();
                bitField0_ |= 0x00400000;
                break;
              } // case 186
              case 194: {
                resourceId_ = input.readBytes();
                bitField0_ |= 0x00800000;
                break;
              } // case 194
              case 208: {
                newestWriteTimestamp_ = input.readInt64();
                bitField0_ |= 0x01000000;
                break;
              } // case 208
              case 218: {
                org.apache.doris.proto.OlapFile.KeyBoundsPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.KeyBoundsPB.PARSER,
                        extensionRegistry);
                if (segmentsKeyBoundsBuilder_ == null) {
                  ensureSegmentsKeyBoundsIsMutable();
                  segmentsKeyBounds_.add(m);
                } else {
                  segmentsKeyBoundsBuilder_.addMessage(m);
                }
                break;
              } // case 218
              case 226: {
                input.readMessage(
                    getTabletSchemaFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x04000000;
                break;
              } // case 226
              case 408: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.SegmentsOverlapPB tmpValue =
                    org.apache.doris.proto.OlapFile.SegmentsOverlapPB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(51, tmpRaw);
                } else {
                  segmentsOverlapPb_ = tmpRaw;
                  bitField0_ |= 0x08000000;
                }
                break;
              } // case 408
              case 416: {
                compactionLevel_ = input.readInt64();
                bitField0_ |= 0x10000000;
                break;
              } // case 416
              case 424: {
                sourceTabletId_ = input.readInt64();
                bitField0_ |= 0x20000000;
                break;
              } // case 424
              case 434: {
                sourceRowsetId_ = input.readBytes();
                bitField0_ |= 0x40000000;
                break;
              } // case 434
              case 8000: {
                txnExpiration_ = input.readInt64();
                bitField0_ |= 0x80000000;
                break;
              } // case 8000
              case 8008: {
                long v = input.readInt64();
                ensureSegmentsFileSizeIsMutable();
                segmentsFileSize_.addLong(v);
                break;
              } // case 8008
              case 8010: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureSegmentsFileSizeIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  segmentsFileSize_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 8010
              case 8016: {
                indexId_ = input.readInt64();
                bitField1_ |= 0x00000002;
                break;
              } // case 8016
              case 8024: {
                schemaVersion_ = input.readInt32();
                bitField1_ |= 0x00000004;
                break;
              } // case 8024
              case 8032: {
                enableSegmentsFileSize_ = input.readBool();
                bitField1_ |= 0x00000008;
                break;
              } // case 8032
              case 8040: {
                hasVariantTypeInSchema_ = input.readBool();
                bitField1_ |= 0x00000010;
                break;
              } // case 8040
              case 8048: {
                enableInvertedIndexFileInfo_ = input.readBool();
                bitField1_ |= 0x00000020;
                break;
              } // case 8048
              case 8058: {
                org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo m =
                    input.readMessage(
                        org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.PARSER,
                        extensionRegistry);
                if (invertedIndexFileInfoBuilder_ == null) {
                  ensureInvertedIndexFileInfoIsMutable();
                  invertedIndexFileInfo_.add(m);
                } else {
                  invertedIndexFileInfoBuilder_.addMessage(m);
                }
                break;
              } // case 8058
              case 8066: {
                input.readMessage(
                    getSchemaDictKeyListFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000080;
                break;
              } // case 8066
              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 bitField1_;

      private long rowsetId_ ;
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @return Whether the rowsetId field is set.
       */
      @java.lang.Override
      public boolean hasRowsetId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @return The rowsetId.
       */
      @java.lang.Override
      public long getRowsetId() {
        return rowsetId_;
      }
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @param value The rowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetId(long value) {

        rowsetId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rowsetId_ = 0L;
        onChanged();
        return this;
      }

      private long partitionId_ ;
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @return Whether the partitionId field is set.
       */
      @java.lang.Override
      public boolean hasPartitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @return The partitionId.
       */
      @java.lang.Override
      public long getPartitionId() {
        return partitionId_;
      }
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(long value) {

        partitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        partitionId_ = 0L;
        onChanged();
        return this;
      }

      private long tabletId_ ;
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @return Whether the tabletId field is set.
       */
      @java.lang.Override
      public boolean hasTabletId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @return The tabletId.
       */
      @java.lang.Override
      public long getTabletId() {
        return tabletId_;
      }
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @param value The tabletId to set.
       * @return This builder for chaining.
       */
      public Builder setTabletId(long value) {

        tabletId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tabletId_ = 0L;
        onChanged();
        return this;
      }

      private long txnId_ ;
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @return Whether the txnId field is set.
       */
      @java.lang.Override
      public boolean hasTxnId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @return The txnId.
       */
      @java.lang.Override
      public long getTxnId() {
        return txnId_;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @param value The txnId to set.
       * @return This builder for chaining.
       */
      public Builder setTxnId(long value) {

        txnId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxnId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        txnId_ = 0L;
        onChanged();
        return this;
      }

      private int tabletSchemaHash_ ;
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @return Whether the tabletSchemaHash field is set.
       */
      @java.lang.Override
      public boolean hasTabletSchemaHash() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @return The tabletSchemaHash.
       */
      @java.lang.Override
      public int getTabletSchemaHash() {
        return tabletSchemaHash_;
      }
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @param value The tabletSchemaHash to set.
       * @return This builder for chaining.
       */
      public Builder setTabletSchemaHash(int value) {

        tabletSchemaHash_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletSchemaHash() {
        bitField0_ = (bitField0_ & ~0x00000010);
        tabletSchemaHash_ = 0;
        onChanged();
        return this;
      }

      private int rowsetType_ = 0;
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @return Whether the rowsetType field is set.
       */
      @java.lang.Override public boolean hasRowsetType() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @return The rowsetType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.RowsetTypePB getRowsetType() {
        org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(rowsetType_);
        return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
      }
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @param value The rowsetType to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetType(org.apache.doris.proto.OlapFile.RowsetTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        rowsetType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetType() {
        bitField0_ = (bitField0_ & ~0x00000020);
        rowsetType_ = 0;
        onChanged();
        return this;
      }

      private int rowsetState_ = 0;
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @return Whether the rowsetState field is set.
       */
      @java.lang.Override public boolean hasRowsetState() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @return The rowsetState.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.RowsetStatePB getRowsetState() {
        org.apache.doris.proto.OlapFile.RowsetStatePB result = org.apache.doris.proto.OlapFile.RowsetStatePB.forNumber(rowsetState_);
        return result == null ? org.apache.doris.proto.OlapFile.RowsetStatePB.PREPARED : result;
      }
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @param value The rowsetState to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetState(org.apache.doris.proto.OlapFile.RowsetStatePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        rowsetState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetState() {
        bitField0_ = (bitField0_ & ~0x00000040);
        rowsetState_ = 0;
        onChanged();
        return this;
      }

      private long startVersion_ ;
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @return Whether the startVersion field is set.
       */
      @java.lang.Override
      public boolean hasStartVersion() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @return The startVersion.
       */
      @java.lang.Override
      public long getStartVersion() {
        return startVersion_;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @param value The startVersion to set.
       * @return This builder for chaining.
       */
      public Builder setStartVersion(long value) {

        startVersion_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartVersion() {
        bitField0_ = (bitField0_ & ~0x00000080);
        startVersion_ = 0L;
        onChanged();
        return this;
      }

      private long endVersion_ ;
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @return Whether the endVersion field is set.
       */
      @java.lang.Override
      public boolean hasEndVersion() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @return The endVersion.
       */
      @java.lang.Override
      public long getEndVersion() {
        return endVersion_;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @param value The endVersion to set.
       * @return This builder for chaining.
       */
      public Builder setEndVersion(long value) {

        endVersion_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndVersion() {
        bitField0_ = (bitField0_ & ~0x00000100);
        endVersion_ = 0L;
        onChanged();
        return this;
      }

      private long versionHash_ ;
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @return Whether the versionHash field is set.
       */
      @java.lang.Override
      public boolean hasVersionHash() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @return The versionHash.
       */
      @java.lang.Override
      public long getVersionHash() {
        return versionHash_;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @param value The versionHash to set.
       * @return This builder for chaining.
       */
      public Builder setVersionHash(long value) {

        versionHash_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersionHash() {
        bitField0_ = (bitField0_ & ~0x00000200);
        versionHash_ = 0L;
        onChanged();
        return this;
      }

      private long numRows_ ;
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @return Whether the numRows field is set.
       */
      @java.lang.Override
      public boolean hasNumRows() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @return The numRows.
       */
      @java.lang.Override
      public long getNumRows() {
        return numRows_;
      }
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @param value The numRows to set.
       * @return This builder for chaining.
       */
      public Builder setNumRows(long value) {

        numRows_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumRows() {
        bitField0_ = (bitField0_ & ~0x00000400);
        numRows_ = 0L;
        onChanged();
        return this;
      }

      private long totalDiskSize_ ;
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @return Whether the totalDiskSize field is set.
       */
      @java.lang.Override
      public boolean hasTotalDiskSize() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @return The totalDiskSize.
       */
      @java.lang.Override
      public long getTotalDiskSize() {
        return totalDiskSize_;
      }
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @param value The totalDiskSize to set.
       * @return This builder for chaining.
       */
      public Builder setTotalDiskSize(long value) {

        totalDiskSize_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalDiskSize() {
        bitField0_ = (bitField0_ & ~0x00000800);
        totalDiskSize_ = 0L;
        onChanged();
        return this;
      }

      private long dataDiskSize_ ;
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @return Whether the dataDiskSize field is set.
       */
      @java.lang.Override
      public boolean hasDataDiskSize() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @return The dataDiskSize.
       */
      @java.lang.Override
      public long getDataDiskSize() {
        return dataDiskSize_;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @param value The dataDiskSize to set.
       * @return This builder for chaining.
       */
      public Builder setDataDiskSize(long value) {

        dataDiskSize_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataDiskSize() {
        bitField0_ = (bitField0_ & ~0x00001000);
        dataDiskSize_ = 0L;
        onChanged();
        return this;
      }

      private long indexDiskSize_ ;
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @return Whether the indexDiskSize field is set.
       */
      @java.lang.Override
      public boolean hasIndexDiskSize() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @return The indexDiskSize.
       */
      @java.lang.Override
      public long getIndexDiskSize() {
        return indexDiskSize_;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @param value The indexDiskSize to set.
       * @return This builder for chaining.
       */
      public Builder setIndexDiskSize(long value) {

        indexDiskSize_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexDiskSize() {
        bitField0_ = (bitField0_ & ~0x00002000);
        indexDiskSize_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> zoneMaps_ =
        java.util.Collections.emptyList();
      private void ensureZoneMapsIsMutable() {
        if (!((bitField0_ & 0x00004000) != 0)) {
          zoneMaps_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.ZoneMap>(zoneMaps_);
          bitField0_ |= 0x00004000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ZoneMap, org.apache.doris.proto.OlapFile.ZoneMap.Builder, org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> zoneMapsBuilder_;

      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> getZoneMapsList() {
        if (zoneMapsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(zoneMaps_);
        } else {
          return zoneMapsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public int getZoneMapsCount() {
        if (zoneMapsBuilder_ == null) {
          return zoneMaps_.size();
        } else {
          return zoneMapsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap getZoneMaps(int index) {
        if (zoneMapsBuilder_ == null) {
          return zoneMaps_.get(index);
        } else {
          return zoneMapsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder setZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap value) {
        if (zoneMapsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureZoneMapsIsMutable();
          zoneMaps_.set(index, value);
          onChanged();
        } else {
          zoneMapsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder setZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap.Builder builderForValue) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.set(index, builderForValue.build());
          onChanged();
        } else {
          zoneMapsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(org.apache.doris.proto.OlapFile.ZoneMap value) {
        if (zoneMapsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureZoneMapsIsMutable();
          zoneMaps_.add(value);
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap value) {
        if (zoneMapsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureZoneMapsIsMutable();
          zoneMaps_.add(index, value);
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(
          org.apache.doris.proto.OlapFile.ZoneMap.Builder builderForValue) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.add(builderForValue.build());
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap.Builder builderForValue) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.add(index, builderForValue.build());
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addAllZoneMaps(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.ZoneMap> values) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, zoneMaps_);
          onChanged();
        } else {
          zoneMapsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder clearZoneMaps() {
        if (zoneMapsBuilder_ == null) {
          zoneMaps_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00004000);
          onChanged();
        } else {
          zoneMapsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder removeZoneMaps(int index) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.remove(index);
          onChanged();
        } else {
          zoneMapsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap.Builder getZoneMapsBuilder(
          int index) {
        return getZoneMapsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMapOrBuilder getZoneMapsOrBuilder(
          int index) {
        if (zoneMapsBuilder_ == null) {
          return zoneMaps_.get(index);  } else {
          return zoneMapsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
           getZoneMapsOrBuilderList() {
        if (zoneMapsBuilder_ != null) {
          return zoneMapsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(zoneMaps_);
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap.Builder addZoneMapsBuilder() {
        return getZoneMapsFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.ZoneMap.getDefaultInstance());
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap.Builder addZoneMapsBuilder(
          int index) {
        return getZoneMapsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.ZoneMap.getDefaultInstance());
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ZoneMap.Builder> 
           getZoneMapsBuilderList() {
        return getZoneMapsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ZoneMap, org.apache.doris.proto.OlapFile.ZoneMap.Builder, org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
          getZoneMapsFieldBuilder() {
        if (zoneMapsBuilder_ == null) {
          zoneMapsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.ZoneMap, org.apache.doris.proto.OlapFile.ZoneMap.Builder, org.apache.doris.proto.OlapFile.ZoneMapOrBuilder>(
                  zoneMaps_,
                  ((bitField0_ & 0x00004000) != 0),
                  getParentForChildren(),
                  isClean());
          zoneMaps_ = null;
        }
        return zoneMapsBuilder_;
      }

      private org.apache.doris.proto.OlapFile.DeletePredicatePB deletePredicate_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeletePredicatePB, org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder, org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder> deletePredicateBuilder_;
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       * @return Whether the deletePredicate field is set.
       */
      public boolean hasDeletePredicate() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       * @return The deletePredicate.
       */
      public org.apache.doris.proto.OlapFile.DeletePredicatePB getDeletePredicate() {
        if (deletePredicateBuilder_ == null) {
          return deletePredicate_ == null ? org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
        } else {
          return deletePredicateBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder setDeletePredicate(org.apache.doris.proto.OlapFile.DeletePredicatePB value) {
        if (deletePredicateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deletePredicate_ = value;
        } else {
          deletePredicateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder setDeletePredicate(
          org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder builderForValue) {
        if (deletePredicateBuilder_ == null) {
          deletePredicate_ = builderForValue.build();
        } else {
          deletePredicateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder mergeDeletePredicate(org.apache.doris.proto.OlapFile.DeletePredicatePB value) {
        if (deletePredicateBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0) &&
            deletePredicate_ != null &&
            deletePredicate_ != org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance()) {
            getDeletePredicateBuilder().mergeFrom(value);
          } else {
            deletePredicate_ = value;
          }
        } else {
          deletePredicateBuilder_.mergeFrom(value);
        }
        if (deletePredicate_ != null) {
          bitField0_ |= 0x00008000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder clearDeletePredicate() {
        bitField0_ = (bitField0_ & ~0x00008000);
        deletePredicate_ = null;
        if (deletePredicateBuilder_ != null) {
          deletePredicateBuilder_.dispose();
          deletePredicateBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder getDeletePredicateBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getDeletePredicateFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder getDeletePredicateOrBuilder() {
        if (deletePredicateBuilder_ != null) {
          return deletePredicateBuilder_.getMessageOrBuilder();
        } else {
          return deletePredicate_ == null ?
              org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
        }
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeletePredicatePB, org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder, org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder> 
          getDeletePredicateFieldBuilder() {
        if (deletePredicateBuilder_ == null) {
          deletePredicateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.DeletePredicatePB, org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder, org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder>(
                  getDeletePredicate(),
                  getParentForChildren(),
                  isClean());
          deletePredicate_ = null;
        }
        return deletePredicateBuilder_;
      }

      private boolean empty_ ;
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @return Whether the empty field is set.
       */
      @java.lang.Override
      public boolean hasEmpty() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @return The empty.
       */
      @java.lang.Override
      public boolean getEmpty() {
        return empty_;
      }
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @param value The empty to set.
       * @return This builder for chaining.
       */
      public Builder setEmpty(boolean value) {

        empty_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmpty() {
        bitField0_ = (bitField0_ & ~0x00010000);
        empty_ = false;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId loadId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> loadIdBuilder_;
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       * @return Whether the loadId field is set.
       */
      public boolean hasLoadId() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       * @return The loadId.
       */
      public org.apache.doris.proto.Types.PUniqueId getLoadId() {
        if (loadIdBuilder_ == null) {
          return loadId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
        } else {
          return loadIdBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder setLoadId(org.apache.doris.proto.Types.PUniqueId value) {
        if (loadIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          loadId_ = value;
        } else {
          loadIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder setLoadId(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (loadIdBuilder_ == null) {
          loadId_ = builderForValue.build();
        } else {
          loadIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder mergeLoadId(org.apache.doris.proto.Types.PUniqueId value) {
        if (loadIdBuilder_ == null) {
          if (((bitField0_ & 0x00020000) != 0) &&
            loadId_ != null &&
            loadId_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getLoadIdBuilder().mergeFrom(value);
          } else {
            loadId_ = value;
          }
        } else {
          loadIdBuilder_.mergeFrom(value);
        }
        if (loadId_ != null) {
          bitField0_ |= 0x00020000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder clearLoadId() {
        bitField0_ = (bitField0_ & ~0x00020000);
        loadId_ = null;
        if (loadIdBuilder_ != null) {
          loadIdBuilder_.dispose();
          loadIdBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getLoadIdBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getLoadIdFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getLoadIdOrBuilder() {
        if (loadIdBuilder_ != null) {
          return loadIdBuilder_.getMessageOrBuilder();
        } else {
          return loadId_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
        }
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getLoadIdFieldBuilder() {
        if (loadIdBuilder_ == null) {
          loadIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getLoadId(),
                  getParentForChildren(),
                  isClean());
          loadId_ = null;
        }
        return loadIdBuilder_;
      }

      private boolean deleteFlag_ ;
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @return Whether the deleteFlag field is set.
       */
      @java.lang.Override
      public boolean hasDeleteFlag() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @return The deleteFlag.
       */
      @java.lang.Override
      public boolean getDeleteFlag() {
        return deleteFlag_;
      }
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @param value The deleteFlag to set.
       * @return This builder for chaining.
       */
      public Builder setDeleteFlag(boolean value) {

        deleteFlag_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeleteFlag() {
        bitField0_ = (bitField0_ & ~0x00040000);
        deleteFlag_ = false;
        onChanged();
        return this;
      }

      private long creationTime_ ;
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @return Whether the creationTime field is set.
       */
      @java.lang.Override
      public boolean hasCreationTime() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @return The creationTime.
       */
      @java.lang.Override
      public long getCreationTime() {
        return creationTime_;
      }
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @param value The creationTime to set.
       * @return This builder for chaining.
       */
      public Builder setCreationTime(long value) {

        creationTime_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreationTime() {
        bitField0_ = (bitField0_ & ~0x00080000);
        creationTime_ = 0L;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId tabletUid_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> tabletUidBuilder_;
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       * @return Whether the tabletUid field is set.
       */
      public boolean hasTabletUid() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       * @return The tabletUid.
       */
      public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
        if (tabletUidBuilder_ == null) {
          return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        } else {
          return tabletUidBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder setTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tabletUid_ = value;
        } else {
          tabletUidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder setTabletUid(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (tabletUidBuilder_ == null) {
          tabletUid_ = builderForValue.build();
        } else {
          tabletUidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder mergeTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (((bitField0_ & 0x00100000) != 0) &&
            tabletUid_ != null &&
            tabletUid_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getTabletUidBuilder().mergeFrom(value);
          } else {
            tabletUid_ = value;
          }
        } else {
          tabletUidBuilder_.mergeFrom(value);
        }
        if (tabletUid_ != null) {
          bitField0_ |= 0x00100000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder clearTabletUid() {
        bitField0_ = (bitField0_ & ~0x00100000);
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getTabletUidBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getTabletUidFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
        if (tabletUidBuilder_ != null) {
          return tabletUidBuilder_.getMessageOrBuilder();
        } else {
          return tabletUid_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        }
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getTabletUidFieldBuilder() {
        if (tabletUidBuilder_ == null) {
          tabletUidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getTabletUid(),
                  getParentForChildren(),
                  isClean());
          tabletUid_ = null;
        }
        return tabletUidBuilder_;
      }

      private long numSegments_ ;
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @return Whether the numSegments field is set.
       */
      @java.lang.Override
      public boolean hasNumSegments() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @return The numSegments.
       */
      @java.lang.Override
      public long getNumSegments() {
        return numSegments_;
      }
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @param value The numSegments to set.
       * @return This builder for chaining.
       */
      public Builder setNumSegments(long value) {

        numSegments_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumSegments() {
        bitField0_ = (bitField0_ & ~0x00200000);
        numSegments_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object rowsetIdV2_ = "";
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id 
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return Whether the rowsetIdV2 field is set.
       */
      public boolean hasRowsetIdV2() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id 
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return The rowsetIdV2.
       */
      public java.lang.String getRowsetIdV2() {
        java.lang.Object ref = rowsetIdV2_;
        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()) {
            rowsetIdV2_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id 
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return The bytes for rowsetIdV2.
       */
      public com.google.protobuf.ByteString
          getRowsetIdV2Bytes() {
        java.lang.Object ref = rowsetIdV2_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rowsetIdV2_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id 
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @param value The rowsetIdV2 to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetIdV2(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rowsetIdV2_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id 
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetIdV2() {
        rowsetIdV2_ = getDefaultInstance().getRowsetIdV2();
        bitField0_ = (bitField0_ & ~0x00400000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id 
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @param value The bytes for rowsetIdV2 to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetIdV2Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        rowsetIdV2_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }

      private java.lang.Object resourceId_ = "";
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return Whether the resourceId field is set.
       */
      public boolean hasResourceId() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return The resourceId.
       */
      public java.lang.String getResourceId() {
        java.lang.Object ref = resourceId_;
        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()) {
            resourceId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return The bytes for resourceId.
       */
      public com.google.protobuf.ByteString
          getResourceIdBytes() {
        java.lang.Object ref = resourceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resourceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @param value The resourceId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        resourceId_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearResourceId() {
        resourceId_ = getDefaultInstance().getResourceId();
        bitField0_ = (bitField0_ & ~0x00800000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @param value The bytes for resourceId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        resourceId_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }

      private long newestWriteTimestamp_ = -1L;
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @return Whether the newestWriteTimestamp field is set.
       */
      @java.lang.Override
      public boolean hasNewestWriteTimestamp() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @return The newestWriteTimestamp.
       */
      @java.lang.Override
      public long getNewestWriteTimestamp() {
        return newestWriteTimestamp_;
      }
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @param value The newestWriteTimestamp to set.
       * @return This builder for chaining.
       */
      public Builder setNewestWriteTimestamp(long value) {

        newestWriteTimestamp_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearNewestWriteTimestamp() {
        bitField0_ = (bitField0_ & ~0x01000000);
        newestWriteTimestamp_ = -1L;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> segmentsKeyBounds_ =
        java.util.Collections.emptyList();
      private void ensureSegmentsKeyBoundsIsMutable() {
        if (!((bitField0_ & 0x02000000) != 0)) {
          segmentsKeyBounds_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.KeyBoundsPB>(segmentsKeyBounds_);
          bitField0_ |= 0x02000000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> segmentsKeyBoundsBuilder_;

      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> getSegmentsKeyBoundsList() {
        if (segmentsKeyBoundsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(segmentsKeyBounds_);
        } else {
          return segmentsKeyBoundsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public int getSegmentsKeyBoundsCount() {
        if (segmentsKeyBoundsBuilder_ == null) {
          return segmentsKeyBounds_.size();
        } else {
          return segmentsKeyBoundsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB getSegmentsKeyBounds(int index) {
        if (segmentsKeyBoundsBuilder_ == null) {
          return segmentsKeyBounds_.get(index);
        } else {
          return segmentsKeyBoundsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder setSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (segmentsKeyBoundsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.set(index, value);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder setSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder builderForValue) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.set(index, builderForValue.build());
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (segmentsKeyBoundsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(value);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (segmentsKeyBoundsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(index, value);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(
          org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder builderForValue) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(builderForValue.build());
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder builderForValue) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(index, builderForValue.build());
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addAllSegmentsKeyBounds(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.KeyBoundsPB> values) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, segmentsKeyBounds_);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder clearSegmentsKeyBounds() {
        if (segmentsKeyBoundsBuilder_ == null) {
          segmentsKeyBounds_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x02000000);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder removeSegmentsKeyBounds(int index) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.remove(index);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder getSegmentsKeyBoundsBuilder(
          int index) {
        return getSegmentsKeyBoundsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getSegmentsKeyBoundsOrBuilder(
          int index) {
        if (segmentsKeyBoundsBuilder_ == null) {
          return segmentsKeyBounds_.get(index);  } else {
          return segmentsKeyBoundsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
           getSegmentsKeyBoundsOrBuilderList() {
        if (segmentsKeyBoundsBuilder_ != null) {
          return segmentsKeyBoundsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(segmentsKeyBounds_);
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder addSegmentsKeyBoundsBuilder() {
        return getSegmentsKeyBoundsFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance());
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder addSegmentsKeyBoundsBuilder(
          int index) {
        return getSegmentsKeyBoundsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance());
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder> 
           getSegmentsKeyBoundsBuilderList() {
        return getSegmentsKeyBoundsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
          getSegmentsKeyBoundsFieldBuilder() {
        if (segmentsKeyBoundsBuilder_ == null) {
          segmentsKeyBoundsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder>(
                  segmentsKeyBounds_,
                  ((bitField0_ & 0x02000000) != 0),
                  getParentForChildren(),
                  isClean());
          segmentsKeyBounds_ = null;
        }
        return segmentsKeyBoundsBuilder_;
      }

      private org.apache.doris.proto.OlapFile.TabletSchemaPB tabletSchema_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaPB, org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder> tabletSchemaBuilder_;
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       * @return Whether the tabletSchema field is set.
       */
      public boolean hasTabletSchema() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       * @return The tabletSchema.
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaPB getTabletSchema() {
        if (tabletSchemaBuilder_ == null) {
          return tabletSchema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : tabletSchema_;
        } else {
          return tabletSchemaBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       */
      public Builder setTabletSchema(org.apache.doris.proto.OlapFile.TabletSchemaPB value) {
        if (tabletSchemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tabletSchema_ = value;
        } else {
          tabletSchemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       */
      public Builder setTabletSchema(
          org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder builderForValue) {
        if (tabletSchemaBuilder_ == null) {
          tabletSchema_ = builderForValue.build();
        } else {
          tabletSchemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       */
      public Builder mergeTabletSchema(org.apache.doris.proto.OlapFile.TabletSchemaPB value) {
        if (tabletSchemaBuilder_ == null) {
          if (((bitField0_ & 0x04000000) != 0) &&
            tabletSchema_ != null &&
            tabletSchema_ != org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance()) {
            getTabletSchemaBuilder().mergeFrom(value);
          } else {
            tabletSchema_ = value;
          }
        } else {
          tabletSchemaBuilder_.mergeFrom(value);
        }
        if (tabletSchema_ != null) {
          bitField0_ |= 0x04000000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       */
      public Builder clearTabletSchema() {
        bitField0_ = (bitField0_ & ~0x04000000);
        tabletSchema_ = null;
        if (tabletSchemaBuilder_ != null) {
          tabletSchemaBuilder_.dispose();
          tabletSchemaBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder getTabletSchemaBuilder() {
        bitField0_ |= 0x04000000;
        onChanged();
        return getTabletSchemaFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder getTabletSchemaOrBuilder() {
        if (tabletSchemaBuilder_ != null) {
          return tabletSchemaBuilder_.getMessageOrBuilder();
        } else {
          return tabletSchema_ == null ?
              org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : tabletSchema_;
        }
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaPB tablet_schema = 28;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaPB, org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder> 
          getTabletSchemaFieldBuilder() {
        if (tabletSchemaBuilder_ == null) {
          tabletSchemaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.TabletSchemaPB, org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder>(
                  getTabletSchema(),
                  getParentForChildren(),
                  isClean());
          tabletSchema_ = null;
        }
        return tabletSchemaBuilder_;
      }

      private int segmentsOverlapPb_ = 0;
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @return Whether the segmentsOverlapPb field is set.
       */
      @java.lang.Override public boolean hasSegmentsOverlapPb() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @return The segmentsOverlapPb.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.SegmentsOverlapPB getSegmentsOverlapPb() {
        org.apache.doris.proto.OlapFile.SegmentsOverlapPB result = org.apache.doris.proto.OlapFile.SegmentsOverlapPB.forNumber(segmentsOverlapPb_);
        return result == null ? org.apache.doris.proto.OlapFile.SegmentsOverlapPB.OVERLAP_UNKNOWN : result;
      }
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @param value The segmentsOverlapPb to set.
       * @return This builder for chaining.
       */
      public Builder setSegmentsOverlapPb(org.apache.doris.proto.OlapFile.SegmentsOverlapPB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x08000000;
        segmentsOverlapPb_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @return This builder for chaining.
       */
      public Builder clearSegmentsOverlapPb() {
        bitField0_ = (bitField0_ & ~0x08000000);
        segmentsOverlapPb_ = 0;
        onChanged();
        return this;
      }

      private long compactionLevel_ ;
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @return Whether the compactionLevel field is set.
       */
      @java.lang.Override
      public boolean hasCompactionLevel() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @return The compactionLevel.
       */
      @java.lang.Override
      public long getCompactionLevel() {
        return compactionLevel_;
      }
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @param value The compactionLevel to set.
       * @return This builder for chaining.
       */
      public Builder setCompactionLevel(long value) {

        compactionLevel_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompactionLevel() {
        bitField0_ = (bitField0_ & ~0x10000000);
        compactionLevel_ = 0L;
        onChanged();
        return this;
      }

      private long sourceTabletId_ ;
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @return Whether the sourceTabletId field is set.
       */
      @java.lang.Override
      public boolean hasSourceTabletId() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @return The sourceTabletId.
       */
      @java.lang.Override
      public long getSourceTabletId() {
        return sourceTabletId_;
      }
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @param value The sourceTabletId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceTabletId(long value) {

        sourceTabletId_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceTabletId() {
        bitField0_ = (bitField0_ & ~0x20000000);
        sourceTabletId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object sourceRowsetId_ = "";
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return Whether the sourceRowsetId field is set.
       */
      public boolean hasSourceRowsetId() {
        return ((bitField0_ & 0x40000000) != 0);
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return The sourceRowsetId.
       */
      public java.lang.String getSourceRowsetId() {
        java.lang.Object ref = sourceRowsetId_;
        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()) {
            sourceRowsetId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return The bytes for sourceRowsetId.
       */
      public com.google.protobuf.ByteString
          getSourceRowsetIdBytes() {
        java.lang.Object ref = sourceRowsetId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sourceRowsetId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @param value The sourceRowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceRowsetId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sourceRowsetId_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceRowsetId() {
        sourceRowsetId_ = getDefaultInstance().getSourceRowsetId();
        bitField0_ = (bitField0_ & ~0x40000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @param value The bytes for sourceRowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceRowsetIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        sourceRowsetId_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }

      private long txnExpiration_ ;
      /**
       * <pre>
       * For cloud
       * for data recycling
       * </pre>
       *
       * <code>optional int64 txn_expiration = 1000;</code>
       * @return Whether the txnExpiration field is set.
       */
      @java.lang.Override
      public boolean hasTxnExpiration() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <pre>
       * For cloud
       * for data recycling
       * </pre>
       *
       * <code>optional int64 txn_expiration = 1000;</code>
       * @return The txnExpiration.
       */
      @java.lang.Override
      public long getTxnExpiration() {
        return txnExpiration_;
      }
      /**
       * <pre>
       * For cloud
       * for data recycling
       * </pre>
       *
       * <code>optional int64 txn_expiration = 1000;</code>
       * @param value The txnExpiration to set.
       * @return This builder for chaining.
       */
      public Builder setTxnExpiration(long value) {

        txnExpiration_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * For cloud
       * for data recycling
       * </pre>
       *
       * <code>optional int64 txn_expiration = 1000;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxnExpiration() {
        bitField0_ = (bitField0_ & ~0x80000000);
        txnExpiration_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList segmentsFileSize_ = emptyLongList();
      private void ensureSegmentsFileSizeIsMutable() {
        if (!segmentsFileSize_.isModifiable()) {
          segmentsFileSize_ = makeMutableCopy(segmentsFileSize_);
        }
        bitField1_ |= 0x00000001;
      }
      /**
       * <pre>
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 1001;</code>
       * @return A list containing the segmentsFileSize.
       */
      public java.util.List<java.lang.Long>
          getSegmentsFileSizeList() {
        segmentsFileSize_.makeImmutable();
        return segmentsFileSize_;
      }
      /**
       * <pre>
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 1001;</code>
       * @return The count of segmentsFileSize.
       */
      public int getSegmentsFileSizeCount() {
        return segmentsFileSize_.size();
      }
      /**
       * <pre>
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 1001;</code>
       * @param index The index of the element to return.
       * @return The segmentsFileSize at the given index.
       */
      public long getSegmentsFileSize(int index) {
        return segmentsFileSize_.getLong(index);
      }
      /**
       * <pre>
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 1001;</code>
       * @param index The index to set the value at.
       * @param value The segmentsFileSize to set.
       * @return This builder for chaining.
       */
      public Builder setSegmentsFileSize(
          int index, long value) {

        ensureSegmentsFileSizeIsMutable();
        segmentsFileSize_.setLong(index, value);
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 1001;</code>
       * @param value The segmentsFileSize to add.
       * @return This builder for chaining.
       */
      public Builder addSegmentsFileSize(long value) {

        ensureSegmentsFileSizeIsMutable();
        segmentsFileSize_.addLong(value);
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 1001;</code>
       * @param values The segmentsFileSize to add.
       * @return This builder for chaining.
       */
      public Builder addAllSegmentsFileSize(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureSegmentsFileSizeIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, segmentsFileSize_);
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 1001;</code>
       * @return This builder for chaining.
       */
      public Builder clearSegmentsFileSize() {
        segmentsFileSize_ = emptyLongList();
        bitField1_ = (bitField1_ & ~0x00000001);
        onChanged();
        return this;
      }

      private long indexId_ ;
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 1002;</code>
       * @return Whether the indexId field is set.
       */
      @java.lang.Override
      public boolean hasIndexId() {
        return ((bitField1_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 1002;</code>
       * @return The indexId.
       */
      @java.lang.Override
      public long getIndexId() {
        return indexId_;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 1002;</code>
       * @param value The indexId to set.
       * @return This builder for chaining.
       */
      public Builder setIndexId(long value) {

        indexId_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 1002;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexId() {
        bitField1_ = (bitField1_ & ~0x00000002);
        indexId_ = 0L;
        onChanged();
        return this;
      }

      private int schemaVersion_ ;
      /**
       * <code>optional int32 schema_version = 1003;</code>
       * @return Whether the schemaVersion field is set.
       */
      @java.lang.Override
      public boolean hasSchemaVersion() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int32 schema_version = 1003;</code>
       * @return The schemaVersion.
       */
      @java.lang.Override
      public int getSchemaVersion() {
        return schemaVersion_;
      }
      /**
       * <code>optional int32 schema_version = 1003;</code>
       * @param value The schemaVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaVersion(int value) {

        schemaVersion_ = value;
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 schema_version = 1003;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaVersion() {
        bitField1_ = (bitField1_ & ~0x00000004);
        schemaVersion_ = 0;
        onChanged();
        return this;
      }

      private boolean enableSegmentsFileSize_ ;
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 1004;</code>
       * @return Whether the enableSegmentsFileSize field is set.
       */
      @java.lang.Override
      public boolean hasEnableSegmentsFileSize() {
        return ((bitField1_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 1004;</code>
       * @return The enableSegmentsFileSize.
       */
      @java.lang.Override
      public boolean getEnableSegmentsFileSize() {
        return enableSegmentsFileSize_;
      }
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 1004;</code>
       * @param value The enableSegmentsFileSize to set.
       * @return This builder for chaining.
       */
      public Builder setEnableSegmentsFileSize(boolean value) {

        enableSegmentsFileSize_ = value;
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 1004;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableSegmentsFileSize() {
        bitField1_ = (bitField1_ & ~0x00000008);
        enableSegmentsFileSize_ = false;
        onChanged();
        return this;
      }

      private boolean hasVariantTypeInSchema_ ;
      /**
       * <code>optional bool has_variant_type_in_schema = 1005;</code>
       * @return Whether the hasVariantTypeInSchema field is set.
       */
      @java.lang.Override
      public boolean hasHasVariantTypeInSchema() {
        return ((bitField1_ & 0x00000010) != 0);
      }
      /**
       * <code>optional bool has_variant_type_in_schema = 1005;</code>
       * @return The hasVariantTypeInSchema.
       */
      @java.lang.Override
      public boolean getHasVariantTypeInSchema() {
        return hasVariantTypeInSchema_;
      }
      /**
       * <code>optional bool has_variant_type_in_schema = 1005;</code>
       * @param value The hasVariantTypeInSchema to set.
       * @return This builder for chaining.
       */
      public Builder setHasVariantTypeInSchema(boolean value) {

        hasVariantTypeInSchema_ = value;
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool has_variant_type_in_schema = 1005;</code>
       * @return This builder for chaining.
       */
      public Builder clearHasVariantTypeInSchema() {
        bitField1_ = (bitField1_ & ~0x00000010);
        hasVariantTypeInSchema_ = false;
        onChanged();
        return this;
      }

      private boolean enableInvertedIndexFileInfo_ ;
      /**
       * <code>optional bool enable_inverted_index_file_info = 1006;</code>
       * @return Whether the enableInvertedIndexFileInfo field is set.
       */
      @java.lang.Override
      public boolean hasEnableInvertedIndexFileInfo() {
        return ((bitField1_ & 0x00000020) != 0);
      }
      /**
       * <code>optional bool enable_inverted_index_file_info = 1006;</code>
       * @return The enableInvertedIndexFileInfo.
       */
      @java.lang.Override
      public boolean getEnableInvertedIndexFileInfo() {
        return enableInvertedIndexFileInfo_;
      }
      /**
       * <code>optional bool enable_inverted_index_file_info = 1006;</code>
       * @param value The enableInvertedIndexFileInfo to set.
       * @return This builder for chaining.
       */
      public Builder setEnableInvertedIndexFileInfo(boolean value) {

        enableInvertedIndexFileInfo_ = value;
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable_inverted_index_file_info = 1006;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableInvertedIndexFileInfo() {
        bitField1_ = (bitField1_ & ~0x00000020);
        enableInvertedIndexFileInfo_ = false;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> invertedIndexFileInfo_ =
        java.util.Collections.emptyList();
      private void ensureInvertedIndexFileInfoIsMutable() {
        if (!((bitField1_ & 0x00000040) != 0)) {
          invertedIndexFileInfo_ = new java.util.ArrayList<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo>(invertedIndexFileInfo_);
          bitField1_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> invertedIndexFileInfoBuilder_;

      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> getInvertedIndexFileInfoList() {
        if (invertedIndexFileInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(invertedIndexFileInfo_);
        } else {
          return invertedIndexFileInfoBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public int getInvertedIndexFileInfoCount() {
        if (invertedIndexFileInfoBuilder_ == null) {
          return invertedIndexFileInfo_.size();
        } else {
          return invertedIndexFileInfoBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getInvertedIndexFileInfo(int index) {
        if (invertedIndexFileInfoBuilder_ == null) {
          return invertedIndexFileInfo_.get(index);
        } else {
          return invertedIndexFileInfoBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder setInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo value) {
        if (invertedIndexFileInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.set(index, value);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder setInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder builderForValue) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder addInvertedIndexFileInfo(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo value) {
        if (invertedIndexFileInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(value);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder addInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo value) {
        if (invertedIndexFileInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(index, value);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder addInvertedIndexFileInfo(
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder builderForValue) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(builderForValue.build());
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder addInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder builderForValue) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder addAllInvertedIndexFileInfo(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> values) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, invertedIndexFileInfo_);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder clearInvertedIndexFileInfo() {
        if (invertedIndexFileInfoBuilder_ == null) {
          invertedIndexFileInfo_ = java.util.Collections.emptyList();
          bitField1_ = (bitField1_ & ~0x00000040);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public Builder removeInvertedIndexFileInfo(int index) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.remove(index);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder getInvertedIndexFileInfoBuilder(
          int index) {
        return getInvertedIndexFileInfoFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder getInvertedIndexFileInfoOrBuilder(
          int index) {
        if (invertedIndexFileInfoBuilder_ == null) {
          return invertedIndexFileInfo_.get(index);  } else {
          return invertedIndexFileInfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
           getInvertedIndexFileInfoOrBuilderList() {
        if (invertedIndexFileInfoBuilder_ != null) {
          return invertedIndexFileInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(invertedIndexFileInfo_);
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder addInvertedIndexFileInfoBuilder() {
        return getInvertedIndexFileInfoFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder addInvertedIndexFileInfoBuilder(
          int index) {
        return getInvertedIndexFileInfoFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 1007;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder> 
           getInvertedIndexFileInfoBuilderList() {
        return getInvertedIndexFileInfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
          getInvertedIndexFileInfoFieldBuilder() {
        if (invertedIndexFileInfoBuilder_ == null) {
          invertedIndexFileInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder>(
                  invertedIndexFileInfo_,
                  ((bitField1_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          invertedIndexFileInfo_ = null;
        }
        return invertedIndexFileInfoBuilder_;
      }

      private org.apache.doris.proto.OlapFile.SchemaDictKeyList schemaDictKeyList_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.SchemaDictKeyList, org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder, org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder> schemaDictKeyListBuilder_;
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       * @return Whether the schemaDictKeyList field is set.
       */
      public boolean hasSchemaDictKeyList() {
        return ((bitField1_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       * @return The schemaDictKeyList.
       */
      public org.apache.doris.proto.OlapFile.SchemaDictKeyList getSchemaDictKeyList() {
        if (schemaDictKeyListBuilder_ == null) {
          return schemaDictKeyList_ == null ? org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
        } else {
          return schemaDictKeyListBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       */
      public Builder setSchemaDictKeyList(org.apache.doris.proto.OlapFile.SchemaDictKeyList value) {
        if (schemaDictKeyListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schemaDictKeyList_ = value;
        } else {
          schemaDictKeyListBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       */
      public Builder setSchemaDictKeyList(
          org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder builderForValue) {
        if (schemaDictKeyListBuilder_ == null) {
          schemaDictKeyList_ = builderForValue.build();
        } else {
          schemaDictKeyListBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       */
      public Builder mergeSchemaDictKeyList(org.apache.doris.proto.OlapFile.SchemaDictKeyList value) {
        if (schemaDictKeyListBuilder_ == null) {
          if (((bitField1_ & 0x00000080) != 0) &&
            schemaDictKeyList_ != null &&
            schemaDictKeyList_ != org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance()) {
            getSchemaDictKeyListBuilder().mergeFrom(value);
          } else {
            schemaDictKeyList_ = value;
          }
        } else {
          schemaDictKeyListBuilder_.mergeFrom(value);
        }
        if (schemaDictKeyList_ != null) {
          bitField1_ |= 0x00000080;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       */
      public Builder clearSchemaDictKeyList() {
        bitField1_ = (bitField1_ & ~0x00000080);
        schemaDictKeyList_ = null;
        if (schemaDictKeyListBuilder_ != null) {
          schemaDictKeyListBuilder_.dispose();
          schemaDictKeyListBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       */
      public org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder getSchemaDictKeyListBuilder() {
        bitField1_ |= 0x00000080;
        onChanged();
        return getSchemaDictKeyListFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       */
      public org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder getSchemaDictKeyListOrBuilder() {
        if (schemaDictKeyListBuilder_ != null) {
          return schemaDictKeyListBuilder_.getMessageOrBuilder();
        } else {
          return schemaDictKeyList_ == null ?
              org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
        }
      }
      /**
       * <pre>
       * align to cloud rowset
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 1008;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.SchemaDictKeyList, org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder, org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder> 
          getSchemaDictKeyListFieldBuilder() {
        if (schemaDictKeyListBuilder_ == null) {
          schemaDictKeyListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.SchemaDictKeyList, org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder, org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder>(
                  getSchemaDictKeyList(),
                  getParentForChildren(),
                  isClean());
          schemaDictKeyList_ = null;
        }
        return schemaDictKeyListBuilder_;
      }
      @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.RowsetMetaPB)
    }

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

    public static org.apache.doris.proto.OlapFile.RowsetMetaPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RowsetMetaPB>
        PARSER = new com.google.protobuf.AbstractParser<RowsetMetaPB>() {
      @java.lang.Override
      public RowsetMetaPB 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<RowsetMetaPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * save the dict keys for column pb info
     * </pre>
     *
     * <code>repeated int32 column_dict_key_list = 1;</code>
     * @return A list containing the columnDictKeyList.
     */
    java.util.List<java.lang.Integer> getColumnDictKeyListList();
    /**
     * <pre>
     * save the dict keys for column pb info
     * </pre>
     *
     * <code>repeated int32 column_dict_key_list = 1;</code>
     * @return The count of columnDictKeyList.
     */
    int getColumnDictKeyListCount();
    /**
     * <pre>
     * save the dict keys for column pb info
     * </pre>
     *
     * <code>repeated int32 column_dict_key_list = 1;</code>
     * @param index The index of the element to return.
     * @return The columnDictKeyList at the given index.
     */
    int getColumnDictKeyList(int index);

    /**
     * <pre>
     * save the dict keys for tablet index pb info
     * </pre>
     *
     * <code>repeated int32 index_info_dict_key_list = 2;</code>
     * @return A list containing the indexInfoDictKeyList.
     */
    java.util.List<java.lang.Integer> getIndexInfoDictKeyListList();
    /**
     * <pre>
     * save the dict keys for tablet index pb info
     * </pre>
     *
     * <code>repeated int32 index_info_dict_key_list = 2;</code>
     * @return The count of indexInfoDictKeyList.
     */
    int getIndexInfoDictKeyListCount();
    /**
     * <pre>
     * save the dict keys for tablet index pb info
     * </pre>
     *
     * <code>repeated int32 index_info_dict_key_list = 2;</code>
     * @param index The index of the element to return.
     * @return The indexInfoDictKeyList at the given index.
     */
    int getIndexInfoDictKeyList(int index);

    /**
     * <pre>
     * save the dict keys for sparse column pb info
     * </pre>
     *
     * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
     * @return A list containing the sparseColumnDictKeyList.
     */
    java.util.List<java.lang.Integer> getSparseColumnDictKeyListList();
    /**
     * <pre>
     * save the dict keys for sparse column pb info
     * </pre>
     *
     * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
     * @return The count of sparseColumnDictKeyList.
     */
    int getSparseColumnDictKeyListCount();
    /**
     * <pre>
     * save the dict keys for sparse column pb info
     * </pre>
     *
     * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
     * @param index The index of the element to return.
     * @return The sparseColumnDictKeyList at the given index.
     */
    int getSparseColumnDictKeyList(int index);
  }
  /**
   * Protobuf type {@code doris.SchemaDictKeyList}
   */
  public static final class SchemaDictKeyList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.SchemaDictKeyList)
      SchemaDictKeyListOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SchemaDictKeyList.newBuilder() to construct.
    private SchemaDictKeyList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SchemaDictKeyList() {
      columnDictKeyList_ = emptyIntList();
      indexInfoDictKeyList_ = emptyIntList();
      sparseColumnDictKeyList_ = emptyIntList();
    }

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

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

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

    public static final int COLUMN_DICT_KEY_LIST_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList columnDictKeyList_ =
        emptyIntList();
    /**
     * <pre>
     * save the dict keys for column pb info
     * </pre>
     *
     * <code>repeated int32 column_dict_key_list = 1;</code>
     * @return A list containing the columnDictKeyList.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getColumnDictKeyListList() {
      return columnDictKeyList_;
    }
    /**
     * <pre>
     * save the dict keys for column pb info
     * </pre>
     *
     * <code>repeated int32 column_dict_key_list = 1;</code>
     * @return The count of columnDictKeyList.
     */
    public int getColumnDictKeyListCount() {
      return columnDictKeyList_.size();
    }
    /**
     * <pre>
     * save the dict keys for column pb info
     * </pre>
     *
     * <code>repeated int32 column_dict_key_list = 1;</code>
     * @param index The index of the element to return.
     * @return The columnDictKeyList at the given index.
     */
    public int getColumnDictKeyList(int index) {
      return columnDictKeyList_.getInt(index);
    }

    public static final int INDEX_INFO_DICT_KEY_LIST_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList indexInfoDictKeyList_ =
        emptyIntList();
    /**
     * <pre>
     * save the dict keys for tablet index pb info
     * </pre>
     *
     * <code>repeated int32 index_info_dict_key_list = 2;</code>
     * @return A list containing the indexInfoDictKeyList.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getIndexInfoDictKeyListList() {
      return indexInfoDictKeyList_;
    }
    /**
     * <pre>
     * save the dict keys for tablet index pb info
     * </pre>
     *
     * <code>repeated int32 index_info_dict_key_list = 2;</code>
     * @return The count of indexInfoDictKeyList.
     */
    public int getIndexInfoDictKeyListCount() {
      return indexInfoDictKeyList_.size();
    }
    /**
     * <pre>
     * save the dict keys for tablet index pb info
     * </pre>
     *
     * <code>repeated int32 index_info_dict_key_list = 2;</code>
     * @param index The index of the element to return.
     * @return The indexInfoDictKeyList at the given index.
     */
    public int getIndexInfoDictKeyList(int index) {
      return indexInfoDictKeyList_.getInt(index);
    }

    public static final int SPARSE_COLUMN_DICT_KEY_LIST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList sparseColumnDictKeyList_ =
        emptyIntList();
    /**
     * <pre>
     * save the dict keys for sparse column pb info
     * </pre>
     *
     * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
     * @return A list containing the sparseColumnDictKeyList.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getSparseColumnDictKeyListList() {
      return sparseColumnDictKeyList_;
    }
    /**
     * <pre>
     * save the dict keys for sparse column pb info
     * </pre>
     *
     * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
     * @return The count of sparseColumnDictKeyList.
     */
    public int getSparseColumnDictKeyListCount() {
      return sparseColumnDictKeyList_.size();
    }
    /**
     * <pre>
     * save the dict keys for sparse column pb info
     * </pre>
     *
     * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
     * @param index The index of the element to return.
     * @return The sparseColumnDictKeyList at the given index.
     */
    public int getSparseColumnDictKeyList(int index) {
      return sparseColumnDictKeyList_.getInt(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;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < columnDictKeyList_.size(); i++) {
        output.writeInt32(1, columnDictKeyList_.getInt(i));
      }
      for (int i = 0; i < indexInfoDictKeyList_.size(); i++) {
        output.writeInt32(2, indexInfoDictKeyList_.getInt(i));
      }
      for (int i = 0; i < sparseColumnDictKeyList_.size(); i++) {
        output.writeInt32(3, sparseColumnDictKeyList_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < columnDictKeyList_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(columnDictKeyList_.getInt(i));
        }
        size += dataSize;
        size += 1 * getColumnDictKeyListList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < indexInfoDictKeyList_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(indexInfoDictKeyList_.getInt(i));
        }
        size += dataSize;
        size += 1 * getIndexInfoDictKeyListList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < sparseColumnDictKeyList_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(sparseColumnDictKeyList_.getInt(i));
        }
        size += dataSize;
        size += 1 * getSparseColumnDictKeyListList().size();
      }
      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.OlapFile.SchemaDictKeyList)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.SchemaDictKeyList other = (org.apache.doris.proto.OlapFile.SchemaDictKeyList) obj;

      if (!getColumnDictKeyListList()
          .equals(other.getColumnDictKeyListList())) return false;
      if (!getIndexInfoDictKeyListList()
          .equals(other.getIndexInfoDictKeyListList())) return false;
      if (!getSparseColumnDictKeyListList()
          .equals(other.getSparseColumnDictKeyListList())) 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 (getColumnDictKeyListCount() > 0) {
        hash = (37 * hash) + COLUMN_DICT_KEY_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getColumnDictKeyListList().hashCode();
      }
      if (getIndexInfoDictKeyListCount() > 0) {
        hash = (37 * hash) + INDEX_INFO_DICT_KEY_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getIndexInfoDictKeyListList().hashCode();
      }
      if (getSparseColumnDictKeyListCount() > 0) {
        hash = (37 * hash) + SPARSE_COLUMN_DICT_KEY_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getSparseColumnDictKeyListList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList 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.OlapFile.SchemaDictKeyList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList 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.OlapFile.SchemaDictKeyList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList 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.OlapFile.SchemaDictKeyList parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList 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.OlapFile.SchemaDictKeyList parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList 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.OlapFile.SchemaDictKeyList 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.SchemaDictKeyList}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.SchemaDictKeyList)
        org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_SchemaDictKeyList_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.SchemaDictKeyList.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        columnDictKeyList_ = emptyIntList();
        indexInfoDictKeyList_ = emptyIntList();
        sparseColumnDictKeyList_ = emptyIntList();
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.SchemaDictKeyList result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          columnDictKeyList_.makeImmutable();
          result.columnDictKeyList_ = columnDictKeyList_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          indexInfoDictKeyList_.makeImmutable();
          result.indexInfoDictKeyList_ = indexInfoDictKeyList_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          sparseColumnDictKeyList_.makeImmutable();
          result.sparseColumnDictKeyList_ = sparseColumnDictKeyList_;
        }
      }

      @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.OlapFile.SchemaDictKeyList) {
          return mergeFrom((org.apache.doris.proto.OlapFile.SchemaDictKeyList)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.SchemaDictKeyList other) {
        if (other == org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance()) return this;
        if (!other.columnDictKeyList_.isEmpty()) {
          if (columnDictKeyList_.isEmpty()) {
            columnDictKeyList_ = other.columnDictKeyList_;
            columnDictKeyList_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureColumnDictKeyListIsMutable();
            columnDictKeyList_.addAll(other.columnDictKeyList_);
          }
          onChanged();
        }
        if (!other.indexInfoDictKeyList_.isEmpty()) {
          if (indexInfoDictKeyList_.isEmpty()) {
            indexInfoDictKeyList_ = other.indexInfoDictKeyList_;
            indexInfoDictKeyList_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureIndexInfoDictKeyListIsMutable();
            indexInfoDictKeyList_.addAll(other.indexInfoDictKeyList_);
          }
          onChanged();
        }
        if (!other.sparseColumnDictKeyList_.isEmpty()) {
          if (sparseColumnDictKeyList_.isEmpty()) {
            sparseColumnDictKeyList_ = other.sparseColumnDictKeyList_;
            sparseColumnDictKeyList_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureSparseColumnDictKeyListIsMutable();
            sparseColumnDictKeyList_.addAll(other.sparseColumnDictKeyList_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                int v = input.readInt32();
                ensureColumnDictKeyListIsMutable();
                columnDictKeyList_.addInt(v);
                break;
              } // case 8
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureColumnDictKeyListIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  columnDictKeyList_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 10
              case 16: {
                int v = input.readInt32();
                ensureIndexInfoDictKeyListIsMutable();
                indexInfoDictKeyList_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureIndexInfoDictKeyListIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  indexInfoDictKeyList_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              case 24: {
                int v = input.readInt32();
                ensureSparseColumnDictKeyListIsMutable();
                sparseColumnDictKeyList_.addInt(v);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureSparseColumnDictKeyListIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  sparseColumnDictKeyList_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                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 com.google.protobuf.Internal.IntList columnDictKeyList_ = emptyIntList();
      private void ensureColumnDictKeyListIsMutable() {
        if (!columnDictKeyList_.isModifiable()) {
          columnDictKeyList_ = makeMutableCopy(columnDictKeyList_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * save the dict keys for column pb info
       * </pre>
       *
       * <code>repeated int32 column_dict_key_list = 1;</code>
       * @return A list containing the columnDictKeyList.
       */
      public java.util.List<java.lang.Integer>
          getColumnDictKeyListList() {
        columnDictKeyList_.makeImmutable();
        return columnDictKeyList_;
      }
      /**
       * <pre>
       * save the dict keys for column pb info
       * </pre>
       *
       * <code>repeated int32 column_dict_key_list = 1;</code>
       * @return The count of columnDictKeyList.
       */
      public int getColumnDictKeyListCount() {
        return columnDictKeyList_.size();
      }
      /**
       * <pre>
       * save the dict keys for column pb info
       * </pre>
       *
       * <code>repeated int32 column_dict_key_list = 1;</code>
       * @param index The index of the element to return.
       * @return The columnDictKeyList at the given index.
       */
      public int getColumnDictKeyList(int index) {
        return columnDictKeyList_.getInt(index);
      }
      /**
       * <pre>
       * save the dict keys for column pb info
       * </pre>
       *
       * <code>repeated int32 column_dict_key_list = 1;</code>
       * @param index The index to set the value at.
       * @param value The columnDictKeyList to set.
       * @return This builder for chaining.
       */
      public Builder setColumnDictKeyList(
          int index, int value) {

        ensureColumnDictKeyListIsMutable();
        columnDictKeyList_.setInt(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for column pb info
       * </pre>
       *
       * <code>repeated int32 column_dict_key_list = 1;</code>
       * @param value The columnDictKeyList to add.
       * @return This builder for chaining.
       */
      public Builder addColumnDictKeyList(int value) {

        ensureColumnDictKeyListIsMutable();
        columnDictKeyList_.addInt(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for column pb info
       * </pre>
       *
       * <code>repeated int32 column_dict_key_list = 1;</code>
       * @param values The columnDictKeyList to add.
       * @return This builder for chaining.
       */
      public Builder addAllColumnDictKeyList(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureColumnDictKeyListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, columnDictKeyList_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for column pb info
       * </pre>
       *
       * <code>repeated int32 column_dict_key_list = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnDictKeyList() {
        columnDictKeyList_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList indexInfoDictKeyList_ = emptyIntList();
      private void ensureIndexInfoDictKeyListIsMutable() {
        if (!indexInfoDictKeyList_.isModifiable()) {
          indexInfoDictKeyList_ = makeMutableCopy(indexInfoDictKeyList_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * save the dict keys for tablet index pb info
       * </pre>
       *
       * <code>repeated int32 index_info_dict_key_list = 2;</code>
       * @return A list containing the indexInfoDictKeyList.
       */
      public java.util.List<java.lang.Integer>
          getIndexInfoDictKeyListList() {
        indexInfoDictKeyList_.makeImmutable();
        return indexInfoDictKeyList_;
      }
      /**
       * <pre>
       * save the dict keys for tablet index pb info
       * </pre>
       *
       * <code>repeated int32 index_info_dict_key_list = 2;</code>
       * @return The count of indexInfoDictKeyList.
       */
      public int getIndexInfoDictKeyListCount() {
        return indexInfoDictKeyList_.size();
      }
      /**
       * <pre>
       * save the dict keys for tablet index pb info
       * </pre>
       *
       * <code>repeated int32 index_info_dict_key_list = 2;</code>
       * @param index The index of the element to return.
       * @return The indexInfoDictKeyList at the given index.
       */
      public int getIndexInfoDictKeyList(int index) {
        return indexInfoDictKeyList_.getInt(index);
      }
      /**
       * <pre>
       * save the dict keys for tablet index pb info
       * </pre>
       *
       * <code>repeated int32 index_info_dict_key_list = 2;</code>
       * @param index The index to set the value at.
       * @param value The indexInfoDictKeyList to set.
       * @return This builder for chaining.
       */
      public Builder setIndexInfoDictKeyList(
          int index, int value) {

        ensureIndexInfoDictKeyListIsMutable();
        indexInfoDictKeyList_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for tablet index pb info
       * </pre>
       *
       * <code>repeated int32 index_info_dict_key_list = 2;</code>
       * @param value The indexInfoDictKeyList to add.
       * @return This builder for chaining.
       */
      public Builder addIndexInfoDictKeyList(int value) {

        ensureIndexInfoDictKeyListIsMutable();
        indexInfoDictKeyList_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for tablet index pb info
       * </pre>
       *
       * <code>repeated int32 index_info_dict_key_list = 2;</code>
       * @param values The indexInfoDictKeyList to add.
       * @return This builder for chaining.
       */
      public Builder addAllIndexInfoDictKeyList(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureIndexInfoDictKeyListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, indexInfoDictKeyList_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for tablet index pb info
       * </pre>
       *
       * <code>repeated int32 index_info_dict_key_list = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexInfoDictKeyList() {
        indexInfoDictKeyList_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList sparseColumnDictKeyList_ = emptyIntList();
      private void ensureSparseColumnDictKeyListIsMutable() {
        if (!sparseColumnDictKeyList_.isModifiable()) {
          sparseColumnDictKeyList_ = makeMutableCopy(sparseColumnDictKeyList_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * save the dict keys for sparse column pb info
       * </pre>
       *
       * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
       * @return A list containing the sparseColumnDictKeyList.
       */
      public java.util.List<java.lang.Integer>
          getSparseColumnDictKeyListList() {
        sparseColumnDictKeyList_.makeImmutable();
        return sparseColumnDictKeyList_;
      }
      /**
       * <pre>
       * save the dict keys for sparse column pb info
       * </pre>
       *
       * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
       * @return The count of sparseColumnDictKeyList.
       */
      public int getSparseColumnDictKeyListCount() {
        return sparseColumnDictKeyList_.size();
      }
      /**
       * <pre>
       * save the dict keys for sparse column pb info
       * </pre>
       *
       * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
       * @param index The index of the element to return.
       * @return The sparseColumnDictKeyList at the given index.
       */
      public int getSparseColumnDictKeyList(int index) {
        return sparseColumnDictKeyList_.getInt(index);
      }
      /**
       * <pre>
       * save the dict keys for sparse column pb info
       * </pre>
       *
       * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
       * @param index The index to set the value at.
       * @param value The sparseColumnDictKeyList to set.
       * @return This builder for chaining.
       */
      public Builder setSparseColumnDictKeyList(
          int index, int value) {

        ensureSparseColumnDictKeyListIsMutable();
        sparseColumnDictKeyList_.setInt(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for sparse column pb info
       * </pre>
       *
       * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
       * @param value The sparseColumnDictKeyList to add.
       * @return This builder for chaining.
       */
      public Builder addSparseColumnDictKeyList(int value) {

        ensureSparseColumnDictKeyListIsMutable();
        sparseColumnDictKeyList_.addInt(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for sparse column pb info
       * </pre>
       *
       * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
       * @param values The sparseColumnDictKeyList to add.
       * @return This builder for chaining.
       */
      public Builder addAllSparseColumnDictKeyList(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSparseColumnDictKeyListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, sparseColumnDictKeyList_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * save the dict keys for sparse column pb info
       * </pre>
       *
       * <code>repeated int32 sparse_column_dict_key_list = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSparseColumnDictKeyList() {
        sparseColumnDictKeyList_ = emptyIntList();
        bitField0_ = (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.SchemaDictKeyList)
    }

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

    public static org.apache.doris.proto.OlapFile.SchemaDictKeyList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<SchemaDictKeyList>
        PARSER = new com.google.protobuf.AbstractParser<SchemaDictKeyList>() {
      @java.lang.Override
      public SchemaDictKeyList 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<SchemaDictKeyList> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return Whether the rowsetId field is set.
     */
    boolean hasRowsetId();
    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return The rowsetId.
     */
    long getRowsetId();

    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    boolean hasPartitionId();
    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    long getPartitionId();

    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    boolean hasTabletId();
    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    long getTabletId();

    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return Whether the txnId field is set.
     */
    boolean hasTxnId();
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return The txnId.
     */
    long getTxnId();

    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return Whether the tabletSchemaHash field is set.
     */
    boolean hasTabletSchemaHash();
    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return The tabletSchemaHash.
     */
    int getTabletSchemaHash();

    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return Whether the rowsetType field is set.
     */
    boolean hasRowsetType();
    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return The rowsetType.
     */
    org.apache.doris.proto.OlapFile.RowsetTypePB getRowsetType();

    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return Whether the rowsetState field is set.
     */
    boolean hasRowsetState();
    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return The rowsetState.
     */
    org.apache.doris.proto.OlapFile.RowsetStatePB getRowsetState();

    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return Whether the startVersion field is set.
     */
    boolean hasStartVersion();
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return The startVersion.
     */
    long getStartVersion();

    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return Whether the endVersion field is set.
     */
    boolean hasEndVersion();
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return The endVersion.
     */
    long getEndVersion();

    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return Whether the versionHash field is set.
     */
    boolean hasVersionHash();
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return The versionHash.
     */
    long getVersionHash();

    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return Whether the numRows field is set.
     */
    boolean hasNumRows();
    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return The numRows.
     */
    long getNumRows();

    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return Whether the totalDiskSize field is set.
     */
    boolean hasTotalDiskSize();
    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return The totalDiskSize.
     */
    long getTotalDiskSize();

    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return Whether the dataDiskSize field is set.
     */
    boolean hasDataDiskSize();
    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return The dataDiskSize.
     */
    long getDataDiskSize();

    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return Whether the indexDiskSize field is set.
     */
    boolean hasIndexDiskSize();
    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return The indexDiskSize.
     */
    long getIndexDiskSize();

    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> 
        getZoneMapsList();
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    org.apache.doris.proto.OlapFile.ZoneMap getZoneMaps(int index);
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    int getZoneMapsCount();
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
        getZoneMapsOrBuilderList();
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    org.apache.doris.proto.OlapFile.ZoneMapOrBuilder getZoneMapsOrBuilder(
        int index);

    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return Whether the deletePredicate field is set.
     */
    boolean hasDeletePredicate();
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return The deletePredicate.
     */
    org.apache.doris.proto.OlapFile.DeletePredicatePB getDeletePredicate();
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     */
    org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder getDeletePredicateOrBuilder();

    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return Whether the empty field is set.
     */
    boolean hasEmpty();
    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return The empty.
     */
    boolean getEmpty();

    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return Whether the loadId field is set.
     */
    boolean hasLoadId();
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return The loadId.
     */
    org.apache.doris.proto.Types.PUniqueId getLoadId();
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getLoadIdOrBuilder();

    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return Whether the deleteFlag field is set.
     */
    boolean hasDeleteFlag();
    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return The deleteFlag.
     */
    boolean getDeleteFlag();

    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return Whether the creationTime field is set.
     */
    boolean hasCreationTime();
    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return The creationTime.
     */
    long getCreationTime();

    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return Whether the tabletUid field is set.
     */
    boolean hasTabletUid();
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return The tabletUid.
     */
    org.apache.doris.proto.Types.PUniqueId getTabletUid();
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder();

    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return Whether the numSegments field is set.
     */
    boolean hasNumSegments();
    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return The numSegments.
     */
    long getNumSegments();

    /**
     * <pre>
     * rowset id definition, it will replace required rowset id
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return Whether the rowsetIdV2 field is set.
     */
    boolean hasRowsetIdV2();
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The rowsetIdV2.
     */
    java.lang.String getRowsetIdV2();
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The bytes for rowsetIdV2.
     */
    com.google.protobuf.ByteString
        getRowsetIdV2Bytes();

    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return Whether the resourceId field is set.
     */
    boolean hasResourceId();
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The resourceId.
     */
    java.lang.String getResourceId();
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The bytes for resourceId.
     */
    com.google.protobuf.ByteString
        getResourceIdBytes();

    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return Whether the newestWriteTimestamp field is set.
     */
    boolean hasNewestWriteTimestamp();
    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return The newestWriteTimestamp.
     */
    long getNewestWriteTimestamp();

    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> 
        getSegmentsKeyBoundsList();
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    org.apache.doris.proto.OlapFile.KeyBoundsPB getSegmentsKeyBounds(int index);
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    int getSegmentsKeyBoundsCount();
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
        getSegmentsKeyBoundsOrBuilderList();
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getSegmentsKeyBoundsOrBuilder(
        int index);

    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
     * @return Whether the tabletSchema field is set.
     */
    boolean hasTabletSchema();
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
     * @return The tabletSchema.
     */
    org.apache.doris.proto.OlapFile.TabletSchemaCloudPB getTabletSchema();
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
     */
    org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder getTabletSchemaOrBuilder();

    /**
     * <pre>
     * for data recycling in CLOUD_MODE
     * </pre>
     *
     * <code>optional int64 txn_expiration = 29;</code>
     * @return Whether the txnExpiration field is set.
     */
    boolean hasTxnExpiration();
    /**
     * <pre>
     * for data recycling in CLOUD_MODE
     * </pre>
     *
     * <code>optional int64 txn_expiration = 29;</code>
     * @return The txnExpiration.
     */
    long getTxnExpiration();

    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return Whether the segmentsOverlapPb field is set.
     */
    boolean hasSegmentsOverlapPb();
    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return The segmentsOverlapPb.
     */
    org.apache.doris.proto.OlapFile.SegmentsOverlapPB getSegmentsOverlapPb();

    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return Whether the compactionLevel field is set.
     */
    boolean hasCompactionLevel();
    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return The compactionLevel.
     */
    long getCompactionLevel();

    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return Whether the sourceTabletId field is set.
     */
    boolean hasSourceTabletId();
    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return The sourceTabletId.
     */
    long getSourceTabletId();

    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return Whether the sourceRowsetId field is set.
     */
    boolean hasSourceRowsetId();
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The sourceRowsetId.
     */
    java.lang.String getSourceRowsetId();
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The bytes for sourceRowsetId.
     */
    com.google.protobuf.ByteString
        getSourceRowsetIdBytes();

    /**
     * <pre>
     * cloud
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 100;</code>
     * @return A list containing the segmentsFileSize.
     */
    java.util.List<java.lang.Long> getSegmentsFileSizeList();
    /**
     * <pre>
     * cloud
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 100;</code>
     * @return The count of segmentsFileSize.
     */
    int getSegmentsFileSizeCount();
    /**
     * <pre>
     * cloud
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 100;</code>
     * @param index The index of the element to return.
     * @return The segmentsFileSize at the given index.
     */
    long getSegmentsFileSize(int index);

    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 101;</code>
     * @return Whether the indexId field is set.
     */
    boolean hasIndexId();
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 101;</code>
     * @return The indexId.
     */
    long getIndexId();

    /**
     * <code>optional int32 schema_version = 102;</code>
     * @return Whether the schemaVersion field is set.
     */
    boolean hasSchemaVersion();
    /**
     * <code>optional int32 schema_version = 102;</code>
     * @return The schemaVersion.
     */
    int getSchemaVersion();

    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 103;</code>
     * @return Whether the enableSegmentsFileSize field is set.
     */
    boolean hasEnableSegmentsFileSize();
    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 103;</code>
     * @return The enableSegmentsFileSize.
     */
    boolean getEnableSegmentsFileSize();

    /**
     * <pre>
     * extra info for variants
     * </pre>
     *
     * <code>optional bool has_variant_type_in_schema = 104;</code>
     * @return Whether the hasVariantTypeInSchema field is set.
     */
    boolean hasHasVariantTypeInSchema();
    /**
     * <pre>
     * extra info for variants
     * </pre>
     *
     * <code>optional bool has_variant_type_in_schema = 104;</code>
     * @return The hasVariantTypeInSchema.
     */
    boolean getHasVariantTypeInSchema();

    /**
     * <pre>
     * dict key lists for compress schema info
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
     * @return Whether the schemaDictKeyList field is set.
     */
    boolean hasSchemaDictKeyList();
    /**
     * <pre>
     * dict key lists for compress schema info
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
     * @return The schemaDictKeyList.
     */
    org.apache.doris.proto.OlapFile.SchemaDictKeyList getSchemaDictKeyList();
    /**
     * <pre>
     * dict key lists for compress schema info
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
     */
    org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder getSchemaDictKeyListOrBuilder();

    /**
     * <code>optional bool enable_inverted_index_file_info = 106;</code>
     * @return Whether the enableInvertedIndexFileInfo field is set.
     */
    boolean hasEnableInvertedIndexFileInfo();
    /**
     * <code>optional bool enable_inverted_index_file_info = 106;</code>
     * @return The enableInvertedIndexFileInfo.
     */
    boolean getEnableInvertedIndexFileInfo();

    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> 
        getInvertedIndexFileInfoList();
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getInvertedIndexFileInfo(int index);
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    int getInvertedIndexFileInfoCount();
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
        getInvertedIndexFileInfoOrBuilderList();
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder getInvertedIndexFileInfoOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code doris.RowsetMetaCloudPB}
   */
  public static final class RowsetMetaCloudPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.RowsetMetaCloudPB)
      RowsetMetaCloudPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowsetMetaCloudPB.newBuilder() to construct.
    private RowsetMetaCloudPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowsetMetaCloudPB() {
      rowsetType_ = 0;
      rowsetState_ = 0;
      zoneMaps_ = java.util.Collections.emptyList();
      rowsetIdV2_ = "";
      resourceId_ = "";
      newestWriteTimestamp_ = -1L;
      segmentsKeyBounds_ = java.util.Collections.emptyList();
      segmentsOverlapPb_ = 0;
      sourceRowsetId_ = "";
      segmentsFileSize_ = emptyLongList();
      invertedIndexFileInfo_ = java.util.Collections.emptyList();
    }

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

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

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

    private int bitField0_;
    private int bitField1_;
    public static final int ROWSET_ID_FIELD_NUMBER = 1;
    private long rowsetId_ = 0L;
    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return Whether the rowsetId field is set.
     */
    @java.lang.Override
    public boolean hasRowsetId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Deprecated. Use rowset_id_v2 instead.
     * </pre>
     *
     * <code>required int64 rowset_id = 1;</code>
     * @return The rowsetId.
     */
    @java.lang.Override
    public long getRowsetId() {
      return rowsetId_;
    }

    public static final int PARTITION_ID_FIELD_NUMBER = 2;
    private long partitionId_ = 0L;
    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    @java.lang.Override
    public boolean hasPartitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    @java.lang.Override
    public long getPartitionId() {
      return partitionId_;
    }

    public static final int TABLET_ID_FIELD_NUMBER = 3;
    private long tabletId_ = 0L;
    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    @java.lang.Override
    public boolean hasTabletId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    @java.lang.Override
    public long getTabletId() {
      return tabletId_;
    }

    public static final int TXN_ID_FIELD_NUMBER = 4;
    private long txnId_ = 0L;
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return Whether the txnId field is set.
     */
    @java.lang.Override
    public boolean hasTxnId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional int64 txn_id = 4;</code>
     * @return The txnId.
     */
    @java.lang.Override
    public long getTxnId() {
      return txnId_;
    }

    public static final int TABLET_SCHEMA_HASH_FIELD_NUMBER = 5;
    private int tabletSchemaHash_ = 0;
    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return Whether the tabletSchemaHash field is set.
     */
    @java.lang.Override
    public boolean hasTabletSchemaHash() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * tablet id and schema hash could find tablet
     * </pre>
     *
     * <code>optional int32 tablet_schema_hash = 5;</code>
     * @return The tabletSchemaHash.
     */
    @java.lang.Override
    public int getTabletSchemaHash() {
      return tabletSchemaHash_;
    }

    public static final int ROWSET_TYPE_FIELD_NUMBER = 6;
    private int rowsetType_ = 0;
    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return Whether the rowsetType field is set.
     */
    @java.lang.Override public boolean hasRowsetType() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
     * @return The rowsetType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.RowsetTypePB getRowsetType() {
      org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(rowsetType_);
      return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
    }

    public static final int ROWSET_STATE_FIELD_NUMBER = 7;
    private int rowsetState_ = 0;
    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return Whether the rowsetState field is set.
     */
    @java.lang.Override public boolean hasRowsetState() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
     * @return The rowsetState.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.RowsetStatePB getRowsetState() {
      org.apache.doris.proto.OlapFile.RowsetStatePB result = org.apache.doris.proto.OlapFile.RowsetStatePB.forNumber(rowsetState_);
      return result == null ? org.apache.doris.proto.OlapFile.RowsetStatePB.PREPARED : result;
    }

    public static final int START_VERSION_FIELD_NUMBER = 8;
    private long startVersion_ = 0L;
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return Whether the startVersion field is set.
     */
    @java.lang.Override
    public boolean hasStartVersion() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
     * </pre>
     *
     * <code>optional int64 start_version = 8;</code>
     * @return The startVersion.
     */
    @java.lang.Override
    public long getStartVersion() {
      return startVersion_;
    }

    public static final int END_VERSION_FIELD_NUMBER = 9;
    private long endVersion_ = 0L;
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return Whether the endVersion field is set.
     */
    @java.lang.Override
    public boolean hasEndVersion() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
     * </pre>
     *
     * <code>optional int64 end_version = 9;</code>
     * @return The endVersion.
     */
    @java.lang.Override
    public long getEndVersion() {
      return endVersion_;
    }

    public static final int VERSION_HASH_FIELD_NUMBER = 10;
    private long versionHash_ = 0L;
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return Whether the versionHash field is set.
     */
    @java.lang.Override
    public boolean hasVersionHash() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
     * </pre>
     *
     * <code>optional int64 version_hash = 10;</code>
     * @return The versionHash.
     */
    @java.lang.Override
    public long getVersionHash() {
      return versionHash_;
    }

    public static final int NUM_ROWS_FIELD_NUMBER = 11;
    private long numRows_ = 0L;
    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return Whether the numRows field is set.
     */
    @java.lang.Override
    public boolean hasNumRows() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * total number of rows. For alpha rowset, it's calculated from segment group
     * </pre>
     *
     * <code>optional int64 num_rows = 11;</code>
     * @return The numRows.
     */
    @java.lang.Override
    public long getNumRows() {
      return numRows_;
    }

    public static final int TOTAL_DISK_SIZE_FIELD_NUMBER = 12;
    private long totalDiskSize_ = 0L;
    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return Whether the totalDiskSize field is set.
     */
    @java.lang.Override
    public boolean hasTotalDiskSize() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * calculated by index + data
     * </pre>
     *
     * <code>optional int64 total_disk_size = 12;</code>
     * @return The totalDiskSize.
     */
    @java.lang.Override
    public long getTotalDiskSize() {
      return totalDiskSize_;
    }

    public static final int DATA_DISK_SIZE_FIELD_NUMBER = 13;
    private long dataDiskSize_ = 0L;
    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return Whether the dataDiskSize field is set.
     */
    @java.lang.Override
    public boolean hasDataDiskSize() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * calculated sum(segmentgroup.data_size)
     * </pre>
     *
     * <code>optional int64 data_disk_size = 13;</code>
     * @return The dataDiskSize.
     */
    @java.lang.Override
    public long getDataDiskSize() {
      return dataDiskSize_;
    }

    public static final int INDEX_DISK_SIZE_FIELD_NUMBER = 14;
    private long indexDiskSize_ = 0L;
    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return Whether the indexDiskSize field is set.
     */
    @java.lang.Override
    public boolean hasIndexDiskSize() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * calculated sum(segmentgroup.index_size)
     * </pre>
     *
     * <code>optional int64 index_disk_size = 14;</code>
     * @return The indexDiskSize.
     */
    @java.lang.Override
    public long getIndexDiskSize() {
      return indexDiskSize_;
    }

    public static final int ZONE_MAPS_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> zoneMaps_;
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> getZoneMapsList() {
      return zoneMaps_;
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
        getZoneMapsOrBuilderList() {
      return zoneMaps_;
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public int getZoneMapsCount() {
      return zoneMaps_.size();
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ZoneMap getZoneMaps(int index) {
      return zoneMaps_.get(index);
    }
    /**
     * <pre>
     * rowset level column min/max/null statistics, not not used currently
     * </pre>
     *
     * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ZoneMapOrBuilder getZoneMapsOrBuilder(
        int index) {
      return zoneMaps_.get(index);
    }

    public static final int DELETE_PREDICATE_FIELD_NUMBER = 16;
    private org.apache.doris.proto.OlapFile.DeletePredicatePB deletePredicate_;
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return Whether the deletePredicate field is set.
     */
    @java.lang.Override
    public boolean hasDeletePredicate() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     * @return The deletePredicate.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeletePredicatePB getDeletePredicate() {
      return deletePredicate_ == null ? org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
    }
    /**
     * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder getDeletePredicateOrBuilder() {
      return deletePredicate_ == null ? org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
    }

    public static final int EMPTY_FIELD_NUMBER = 17;
    private boolean empty_ = false;
    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return Whether the empty field is set.
     */
    @java.lang.Override
    public boolean hasEmpty() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * calculated from segment group
     * </pre>
     *
     * <code>optional bool empty = 17;</code>
     * @return The empty.
     */
    @java.lang.Override
    public boolean getEmpty() {
      return empty_;
    }

    public static final int LOAD_ID_FIELD_NUMBER = 18;
    private org.apache.doris.proto.Types.PUniqueId loadId_;
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return Whether the loadId field is set.
     */
    @java.lang.Override
    public boolean hasLoadId() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     * @return The loadId.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getLoadId() {
      return loadId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
    }
    /**
     * <pre>
     * only for pending rowset
     * </pre>
     *
     * <code>optional .doris.PUniqueId load_id = 18;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getLoadIdOrBuilder() {
      return loadId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
    }

    public static final int DELETE_FLAG_FIELD_NUMBER = 19;
    private boolean deleteFlag_ = false;
    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return Whether the deleteFlag field is set.
     */
    @java.lang.Override
    public boolean hasDeleteFlag() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * not set, get from olap index header msg?
     * </pre>
     *
     * <code>optional bool delete_flag = 19;</code>
     * @return The deleteFlag.
     */
    @java.lang.Override
    public boolean getDeleteFlag() {
      return deleteFlag_;
    }

    public static final int CREATION_TIME_FIELD_NUMBER = 20;
    private long creationTime_ = 0L;
    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return Whether the creationTime field is set.
     */
    @java.lang.Override
    public boolean hasCreationTime() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <pre>
     * For alpha rowset, it's the same as PDelta.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 20;</code>
     * @return The creationTime.
     */
    @java.lang.Override
    public long getCreationTime() {
      return creationTime_;
    }

    public static final int TABLET_UID_FIELD_NUMBER = 21;
    private org.apache.doris.proto.Types.PUniqueId tabletUid_;
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return Whether the tabletUid field is set.
     */
    @java.lang.Override
    public boolean hasTabletUid() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     * @return The tabletUid.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }
    /**
     * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }

    public static final int NUM_SEGMENTS_FIELD_NUMBER = 22;
    private long numSegments_ = 0L;
    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return Whether the numSegments field is set.
     */
    @java.lang.Override
    public boolean hasNumSegments() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <pre>
     * total number of segments
     * </pre>
     *
     * <code>optional int64 num_segments = 22;</code>
     * @return The numSegments.
     */
    @java.lang.Override
    public long getNumSegments() {
      return numSegments_;
    }

    public static final int ROWSET_ID_V2_FIELD_NUMBER = 23;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rowsetIdV2_ = "";
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return Whether the rowsetIdV2 field is set.
     */
    @java.lang.Override
    public boolean hasRowsetIdV2() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The rowsetIdV2.
     */
    @java.lang.Override
    public java.lang.String getRowsetIdV2() {
      java.lang.Object ref = rowsetIdV2_;
      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()) {
          rowsetIdV2_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * rowset id definition, it will replace required rowset id
     * </pre>
     *
     * <code>optional string rowset_id_v2 = 23;</code>
     * @return The bytes for rowsetIdV2.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRowsetIdV2Bytes() {
      java.lang.Object ref = rowsetIdV2_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rowsetIdV2_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCE_ID_FIELD_NUMBER = 24;
    @SuppressWarnings("serial")
    private volatile java.lang.Object resourceId_ = "";
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return Whether the resourceId field is set.
     */
    @java.lang.Override
    public boolean hasResourceId() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The resourceId.
     */
    @java.lang.Override
    public java.lang.String getResourceId() {
      java.lang.Object ref = resourceId_;
      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()) {
          resourceId_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * resource id
     * </pre>
     *
     * <code>optional string resource_id = 24;</code>
     * @return The bytes for resourceId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getResourceIdBytes() {
      java.lang.Object ref = resourceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resourceId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NEWEST_WRITE_TIMESTAMP_FIELD_NUMBER = 26;
    private long newestWriteTimestamp_ = -1L;
    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return Whether the newestWriteTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasNewestWriteTimestamp() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <pre>
     * latest write time
     * </pre>
     *
     * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
     * @return The newestWriteTimestamp.
     */
    @java.lang.Override
    public long getNewestWriteTimestamp() {
      return newestWriteTimestamp_;
    }

    public static final int SEGMENTS_KEY_BOUNDS_FIELD_NUMBER = 27;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> segmentsKeyBounds_;
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> getSegmentsKeyBoundsList() {
      return segmentsKeyBounds_;
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
        getSegmentsKeyBoundsOrBuilderList() {
      return segmentsKeyBounds_;
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public int getSegmentsKeyBoundsCount() {
      return segmentsKeyBounds_.size();
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.KeyBoundsPB getSegmentsKeyBounds(int index) {
      return segmentsKeyBounds_.get(index);
    }
    /**
     * <pre>
     * the encoded segment min/max key of segments in this rowset,
     * only used in unique key data model with primary_key_index support.
     * </pre>
     *
     * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getSegmentsKeyBoundsOrBuilder(
        int index) {
      return segmentsKeyBounds_.get(index);
    }

    public static final int TABLET_SCHEMA_FIELD_NUMBER = 28;
    private org.apache.doris.proto.OlapFile.TabletSchemaCloudPB tabletSchema_;
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
     * @return Whether the tabletSchema field is set.
     */
    @java.lang.Override
    public boolean hasTabletSchema() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
     * @return The tabletSchema.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaCloudPB getTabletSchema() {
      return tabletSchema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : tabletSchema_;
    }
    /**
     * <pre>
     * tablet meta pb, for compaction
     * </pre>
     *
     * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder getTabletSchemaOrBuilder() {
      return tabletSchema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : tabletSchema_;
    }

    public static final int TXN_EXPIRATION_FIELD_NUMBER = 29;
    private long txnExpiration_ = 0L;
    /**
     * <pre>
     * for data recycling in CLOUD_MODE
     * </pre>
     *
     * <code>optional int64 txn_expiration = 29;</code>
     * @return Whether the txnExpiration field is set.
     */
    @java.lang.Override
    public boolean hasTxnExpiration() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <pre>
     * for data recycling in CLOUD_MODE
     * </pre>
     *
     * <code>optional int64 txn_expiration = 29;</code>
     * @return The txnExpiration.
     */
    @java.lang.Override
    public long getTxnExpiration() {
      return txnExpiration_;
    }

    public static final int SEGMENTS_OVERLAP_PB_FIELD_NUMBER = 51;
    private int segmentsOverlapPb_ = 0;
    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return Whether the segmentsOverlapPb field is set.
     */
    @java.lang.Override public boolean hasSegmentsOverlapPb() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <pre>
     * to indicate whether the data between the segments overlap
     * </pre>
     *
     * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
     * @return The segmentsOverlapPb.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.SegmentsOverlapPB getSegmentsOverlapPb() {
      org.apache.doris.proto.OlapFile.SegmentsOverlapPB result = org.apache.doris.proto.OlapFile.SegmentsOverlapPB.forNumber(segmentsOverlapPb_);
      return result == null ? org.apache.doris.proto.OlapFile.SegmentsOverlapPB.OVERLAP_UNKNOWN : result;
    }

    public static final int COMPACTION_LEVEL_FIELD_NUMBER = 52;
    private long compactionLevel_ = 0L;
    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return Whether the compactionLevel field is set.
     */
    @java.lang.Override
    public boolean hasCompactionLevel() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * <code>optional int64 compaction_level = 52 [default = 0];</code>
     * @return The compactionLevel.
     */
    @java.lang.Override
    public long getCompactionLevel() {
      return compactionLevel_;
    }

    public static final int SOURCE_TABLET_ID_FIELD_NUMBER = 53;
    private long sourceTabletId_ = 0L;
    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return Whether the sourceTabletId field is set.
     */
    @java.lang.Override
    public boolean hasSourceTabletId() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <pre>
     * For backup/restore, record the tablet id and rowset id of the source cluster.
     * </pre>
     *
     * <code>optional int64 source_tablet_id = 53;</code>
     * @return The sourceTabletId.
     */
    @java.lang.Override
    public long getSourceTabletId() {
      return sourceTabletId_;
    }

    public static final int SOURCE_ROWSET_ID_FIELD_NUMBER = 54;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sourceRowsetId_ = "";
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return Whether the sourceRowsetId field is set.
     */
    @java.lang.Override
    public boolean hasSourceRowsetId() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The sourceRowsetId.
     */
    @java.lang.Override
    public java.lang.String getSourceRowsetId() {
      java.lang.Object ref = sourceRowsetId_;
      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()) {
          sourceRowsetId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string source_rowset_id = 54;</code>
     * @return The bytes for sourceRowsetId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceRowsetIdBytes() {
      java.lang.Object ref = sourceRowsetId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceRowsetId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEGMENTS_FILE_SIZE_FIELD_NUMBER = 100;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList segmentsFileSize_ =
        emptyLongList();
    /**
     * <pre>
     * cloud
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 100;</code>
     * @return A list containing the segmentsFileSize.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getSegmentsFileSizeList() {
      return segmentsFileSize_;
    }
    /**
     * <pre>
     * cloud
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 100;</code>
     * @return The count of segmentsFileSize.
     */
    public int getSegmentsFileSizeCount() {
      return segmentsFileSize_.size();
    }
    /**
     * <pre>
     * cloud
     * the field is a vector, rename it
     * </pre>
     *
     * <code>repeated int64 segments_file_size = 100;</code>
     * @param index The index of the element to return.
     * @return The segmentsFileSize at the given index.
     */
    public long getSegmentsFileSize(int index) {
      return segmentsFileSize_.getLong(index);
    }

    public static final int INDEX_ID_FIELD_NUMBER = 101;
    private long indexId_ = 0L;
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 101;</code>
     * @return Whether the indexId field is set.
     */
    @java.lang.Override
    public boolean hasIndexId() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int64 index_id = 101;</code>
     * @return The indexId.
     */
    @java.lang.Override
    public long getIndexId() {
      return indexId_;
    }

    public static final int SCHEMA_VERSION_FIELD_NUMBER = 102;
    private int schemaVersion_ = 0;
    /**
     * <code>optional int32 schema_version = 102;</code>
     * @return Whether the schemaVersion field is set.
     */
    @java.lang.Override
    public boolean hasSchemaVersion() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <code>optional int32 schema_version = 102;</code>
     * @return The schemaVersion.
     */
    @java.lang.Override
    public int getSchemaVersion() {
      return schemaVersion_;
    }

    public static final int ENABLE_SEGMENTS_FILE_SIZE_FIELD_NUMBER = 103;
    private boolean enableSegmentsFileSize_ = false;
    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 103;</code>
     * @return Whether the enableSegmentsFileSize field is set.
     */
    @java.lang.Override
    public boolean hasEnableSegmentsFileSize() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * If enable_segments_file_size is false,
     * the segments_file_size maybe is empty or error
     * </pre>
     *
     * <code>optional bool enable_segments_file_size = 103;</code>
     * @return The enableSegmentsFileSize.
     */
    @java.lang.Override
    public boolean getEnableSegmentsFileSize() {
      return enableSegmentsFileSize_;
    }

    public static final int HAS_VARIANT_TYPE_IN_SCHEMA_FIELD_NUMBER = 104;
    private boolean hasVariantTypeInSchema_ = false;
    /**
     * <pre>
     * extra info for variants
     * </pre>
     *
     * <code>optional bool has_variant_type_in_schema = 104;</code>
     * @return Whether the hasVariantTypeInSchema field is set.
     */
    @java.lang.Override
    public boolean hasHasVariantTypeInSchema() {
      return ((bitField1_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * extra info for variants
     * </pre>
     *
     * <code>optional bool has_variant_type_in_schema = 104;</code>
     * @return The hasVariantTypeInSchema.
     */
    @java.lang.Override
    public boolean getHasVariantTypeInSchema() {
      return hasVariantTypeInSchema_;
    }

    public static final int SCHEMA_DICT_KEY_LIST_FIELD_NUMBER = 105;
    private org.apache.doris.proto.OlapFile.SchemaDictKeyList schemaDictKeyList_;
    /**
     * <pre>
     * dict key lists for compress schema info
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
     * @return Whether the schemaDictKeyList field is set.
     */
    @java.lang.Override
    public boolean hasSchemaDictKeyList() {
      return ((bitField1_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * dict key lists for compress schema info
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
     * @return The schemaDictKeyList.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.SchemaDictKeyList getSchemaDictKeyList() {
      return schemaDictKeyList_ == null ? org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
    }
    /**
     * <pre>
     * dict key lists for compress schema info
     * </pre>
     *
     * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder getSchemaDictKeyListOrBuilder() {
      return schemaDictKeyList_ == null ? org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
    }

    public static final int ENABLE_INVERTED_INDEX_FILE_INFO_FIELD_NUMBER = 106;
    private boolean enableInvertedIndexFileInfo_ = false;
    /**
     * <code>optional bool enable_inverted_index_file_info = 106;</code>
     * @return Whether the enableInvertedIndexFileInfo field is set.
     */
    @java.lang.Override
    public boolean hasEnableInvertedIndexFileInfo() {
      return ((bitField1_ & 0x00000008) != 0);
    }
    /**
     * <code>optional bool enable_inverted_index_file_info = 106;</code>
     * @return The enableInvertedIndexFileInfo.
     */
    @java.lang.Override
    public boolean getEnableInvertedIndexFileInfo() {
      return enableInvertedIndexFileInfo_;
    }

    public static final int INVERTED_INDEX_FILE_INFO_FIELD_NUMBER = 107;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> invertedIndexFileInfo_;
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> getInvertedIndexFileInfoList() {
      return invertedIndexFileInfo_;
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
        getInvertedIndexFileInfoOrBuilderList() {
      return invertedIndexFileInfo_;
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    @java.lang.Override
    public int getInvertedIndexFileInfoCount() {
      return invertedIndexFileInfo_.size();
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getInvertedIndexFileInfo(int index) {
      return invertedIndexFileInfo_.get(index);
    }
    /**
     * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder getInvertedIndexFileInfoOrBuilder(
        int index) {
      return invertedIndexFileInfo_.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 (!hasRowsetId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getZoneMapsCount(); i++) {
        if (!getZoneMaps(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDeletePredicate()) {
        if (!getDeletePredicate().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLoadId()) {
        if (!getLoadId().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTabletUid()) {
        if (!getTabletUid().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getSegmentsKeyBoundsCount(); i++) {
        if (!getSegmentsKeyBounds(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTabletSchema()) {
        if (!getTabletSchema().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getInvertedIndexFileInfoCount(); i++) {
        if (!getInvertedIndexFileInfo(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.writeInt64(1, rowsetId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(4, txnId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, tabletSchemaHash_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeEnum(6, rowsetType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeEnum(7, rowsetState_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt64(8, startVersion_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt64(9, endVersion_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt64(10, versionHash_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeInt64(11, numRows_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeInt64(12, totalDiskSize_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt64(13, dataDiskSize_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeInt64(14, indexDiskSize_);
      }
      for (int i = 0; i < zoneMaps_.size(); i++) {
        output.writeMessage(15, zoneMaps_.get(i));
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeMessage(16, getDeletePredicate());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeBool(17, empty_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeMessage(18, getLoadId());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeBool(19, deleteFlag_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeInt64(20, creationTime_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeMessage(21, getTabletUid());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeInt64(22, numSegments_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 23, rowsetIdV2_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 24, resourceId_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeInt64(26, newestWriteTimestamp_);
      }
      for (int i = 0; i < segmentsKeyBounds_.size(); i++) {
        output.writeMessage(27, segmentsKeyBounds_.get(i));
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        output.writeMessage(28, getTabletSchema());
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        output.writeInt64(29, txnExpiration_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        output.writeEnum(51, segmentsOverlapPb_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        output.writeInt64(52, compactionLevel_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        output.writeInt64(53, sourceTabletId_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 54, sourceRowsetId_);
      }
      for (int i = 0; i < segmentsFileSize_.size(); i++) {
        output.writeInt64(100, segmentsFileSize_.getLong(i));
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        output.writeInt64(101, indexId_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        output.writeInt32(102, schemaVersion_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        output.writeBool(103, enableSegmentsFileSize_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        output.writeBool(104, hasVariantTypeInSchema_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        output.writeMessage(105, getSchemaDictKeyList());
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        output.writeBool(106, enableInvertedIndexFileInfo_);
      }
      for (int i = 0; i < invertedIndexFileInfo_.size(); i++) {
        output.writeMessage(107, invertedIndexFileInfo_.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
          .computeInt64Size(1, rowsetId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, txnId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, tabletSchemaHash_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, rowsetType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, rowsetState_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, startVersion_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, endVersion_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, versionHash_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(11, numRows_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(12, totalDiskSize_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(13, dataDiskSize_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(14, indexDiskSize_);
      }
      for (int i = 0; i < zoneMaps_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, zoneMaps_.get(i));
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, getDeletePredicate());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(17, empty_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, getLoadId());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, deleteFlag_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(20, creationTime_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, getTabletUid());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(22, numSegments_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, rowsetIdV2_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, resourceId_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(26, newestWriteTimestamp_);
      }
      for (int i = 0; i < segmentsKeyBounds_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, segmentsKeyBounds_.get(i));
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, getTabletSchema());
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(29, txnExpiration_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(51, segmentsOverlapPb_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(52, compactionLevel_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(53, sourceTabletId_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(54, sourceRowsetId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < segmentsFileSize_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(segmentsFileSize_.getLong(i));
        }
        size += dataSize;
        size += 2 * getSegmentsFileSizeList().size();
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(101, indexId_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(102, schemaVersion_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(103, enableSegmentsFileSize_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(104, hasVariantTypeInSchema_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(105, getSchemaDictKeyList());
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(106, enableInvertedIndexFileInfo_);
      }
      for (int i = 0; i < invertedIndexFileInfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(107, invertedIndexFileInfo_.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.OlapFile.RowsetMetaCloudPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.RowsetMetaCloudPB other = (org.apache.doris.proto.OlapFile.RowsetMetaCloudPB) obj;

      if (hasRowsetId() != other.hasRowsetId()) return false;
      if (hasRowsetId()) {
        if (getRowsetId()
            != other.getRowsetId()) return false;
      }
      if (hasPartitionId() != other.hasPartitionId()) return false;
      if (hasPartitionId()) {
        if (getPartitionId()
            != other.getPartitionId()) return false;
      }
      if (hasTabletId() != other.hasTabletId()) return false;
      if (hasTabletId()) {
        if (getTabletId()
            != other.getTabletId()) return false;
      }
      if (hasTxnId() != other.hasTxnId()) return false;
      if (hasTxnId()) {
        if (getTxnId()
            != other.getTxnId()) return false;
      }
      if (hasTabletSchemaHash() != other.hasTabletSchemaHash()) return false;
      if (hasTabletSchemaHash()) {
        if (getTabletSchemaHash()
            != other.getTabletSchemaHash()) return false;
      }
      if (hasRowsetType() != other.hasRowsetType()) return false;
      if (hasRowsetType()) {
        if (rowsetType_ != other.rowsetType_) return false;
      }
      if (hasRowsetState() != other.hasRowsetState()) return false;
      if (hasRowsetState()) {
        if (rowsetState_ != other.rowsetState_) return false;
      }
      if (hasStartVersion() != other.hasStartVersion()) return false;
      if (hasStartVersion()) {
        if (getStartVersion()
            != other.getStartVersion()) return false;
      }
      if (hasEndVersion() != other.hasEndVersion()) return false;
      if (hasEndVersion()) {
        if (getEndVersion()
            != other.getEndVersion()) return false;
      }
      if (hasVersionHash() != other.hasVersionHash()) return false;
      if (hasVersionHash()) {
        if (getVersionHash()
            != other.getVersionHash()) return false;
      }
      if (hasNumRows() != other.hasNumRows()) return false;
      if (hasNumRows()) {
        if (getNumRows()
            != other.getNumRows()) return false;
      }
      if (hasTotalDiskSize() != other.hasTotalDiskSize()) return false;
      if (hasTotalDiskSize()) {
        if (getTotalDiskSize()
            != other.getTotalDiskSize()) return false;
      }
      if (hasDataDiskSize() != other.hasDataDiskSize()) return false;
      if (hasDataDiskSize()) {
        if (getDataDiskSize()
            != other.getDataDiskSize()) return false;
      }
      if (hasIndexDiskSize() != other.hasIndexDiskSize()) return false;
      if (hasIndexDiskSize()) {
        if (getIndexDiskSize()
            != other.getIndexDiskSize()) return false;
      }
      if (!getZoneMapsList()
          .equals(other.getZoneMapsList())) return false;
      if (hasDeletePredicate() != other.hasDeletePredicate()) return false;
      if (hasDeletePredicate()) {
        if (!getDeletePredicate()
            .equals(other.getDeletePredicate())) return false;
      }
      if (hasEmpty() != other.hasEmpty()) return false;
      if (hasEmpty()) {
        if (getEmpty()
            != other.getEmpty()) return false;
      }
      if (hasLoadId() != other.hasLoadId()) return false;
      if (hasLoadId()) {
        if (!getLoadId()
            .equals(other.getLoadId())) return false;
      }
      if (hasDeleteFlag() != other.hasDeleteFlag()) return false;
      if (hasDeleteFlag()) {
        if (getDeleteFlag()
            != other.getDeleteFlag()) return false;
      }
      if (hasCreationTime() != other.hasCreationTime()) return false;
      if (hasCreationTime()) {
        if (getCreationTime()
            != other.getCreationTime()) return false;
      }
      if (hasTabletUid() != other.hasTabletUid()) return false;
      if (hasTabletUid()) {
        if (!getTabletUid()
            .equals(other.getTabletUid())) return false;
      }
      if (hasNumSegments() != other.hasNumSegments()) return false;
      if (hasNumSegments()) {
        if (getNumSegments()
            != other.getNumSegments()) return false;
      }
      if (hasRowsetIdV2() != other.hasRowsetIdV2()) return false;
      if (hasRowsetIdV2()) {
        if (!getRowsetIdV2()
            .equals(other.getRowsetIdV2())) return false;
      }
      if (hasResourceId() != other.hasResourceId()) return false;
      if (hasResourceId()) {
        if (!getResourceId()
            .equals(other.getResourceId())) return false;
      }
      if (hasNewestWriteTimestamp() != other.hasNewestWriteTimestamp()) return false;
      if (hasNewestWriteTimestamp()) {
        if (getNewestWriteTimestamp()
            != other.getNewestWriteTimestamp()) return false;
      }
      if (!getSegmentsKeyBoundsList()
          .equals(other.getSegmentsKeyBoundsList())) return false;
      if (hasTabletSchema() != other.hasTabletSchema()) return false;
      if (hasTabletSchema()) {
        if (!getTabletSchema()
            .equals(other.getTabletSchema())) return false;
      }
      if (hasTxnExpiration() != other.hasTxnExpiration()) return false;
      if (hasTxnExpiration()) {
        if (getTxnExpiration()
            != other.getTxnExpiration()) return false;
      }
      if (hasSegmentsOverlapPb() != other.hasSegmentsOverlapPb()) return false;
      if (hasSegmentsOverlapPb()) {
        if (segmentsOverlapPb_ != other.segmentsOverlapPb_) return false;
      }
      if (hasCompactionLevel() != other.hasCompactionLevel()) return false;
      if (hasCompactionLevel()) {
        if (getCompactionLevel()
            != other.getCompactionLevel()) return false;
      }
      if (hasSourceTabletId() != other.hasSourceTabletId()) return false;
      if (hasSourceTabletId()) {
        if (getSourceTabletId()
            != other.getSourceTabletId()) return false;
      }
      if (hasSourceRowsetId() != other.hasSourceRowsetId()) return false;
      if (hasSourceRowsetId()) {
        if (!getSourceRowsetId()
            .equals(other.getSourceRowsetId())) return false;
      }
      if (!getSegmentsFileSizeList()
          .equals(other.getSegmentsFileSizeList())) return false;
      if (hasIndexId() != other.hasIndexId()) return false;
      if (hasIndexId()) {
        if (getIndexId()
            != other.getIndexId()) return false;
      }
      if (hasSchemaVersion() != other.hasSchemaVersion()) return false;
      if (hasSchemaVersion()) {
        if (getSchemaVersion()
            != other.getSchemaVersion()) return false;
      }
      if (hasEnableSegmentsFileSize() != other.hasEnableSegmentsFileSize()) return false;
      if (hasEnableSegmentsFileSize()) {
        if (getEnableSegmentsFileSize()
            != other.getEnableSegmentsFileSize()) return false;
      }
      if (hasHasVariantTypeInSchema() != other.hasHasVariantTypeInSchema()) return false;
      if (hasHasVariantTypeInSchema()) {
        if (getHasVariantTypeInSchema()
            != other.getHasVariantTypeInSchema()) return false;
      }
      if (hasSchemaDictKeyList() != other.hasSchemaDictKeyList()) return false;
      if (hasSchemaDictKeyList()) {
        if (!getSchemaDictKeyList()
            .equals(other.getSchemaDictKeyList())) return false;
      }
      if (hasEnableInvertedIndexFileInfo() != other.hasEnableInvertedIndexFileInfo()) return false;
      if (hasEnableInvertedIndexFileInfo()) {
        if (getEnableInvertedIndexFileInfo()
            != other.getEnableInvertedIndexFileInfo()) return false;
      }
      if (!getInvertedIndexFileInfoList()
          .equals(other.getInvertedIndexFileInfoList())) 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 (hasRowsetId()) {
        hash = (37 * hash) + ROWSET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRowsetId());
      }
      if (hasPartitionId()) {
        hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPartitionId());
      }
      if (hasTabletId()) {
        hash = (37 * hash) + TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTabletId());
      }
      if (hasTxnId()) {
        hash = (37 * hash) + TXN_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTxnId());
      }
      if (hasTabletSchemaHash()) {
        hash = (37 * hash) + TABLET_SCHEMA_HASH_FIELD_NUMBER;
        hash = (53 * hash) + getTabletSchemaHash();
      }
      if (hasRowsetType()) {
        hash = (37 * hash) + ROWSET_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + rowsetType_;
      }
      if (hasRowsetState()) {
        hash = (37 * hash) + ROWSET_STATE_FIELD_NUMBER;
        hash = (53 * hash) + rowsetState_;
      }
      if (hasStartVersion()) {
        hash = (37 * hash) + START_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStartVersion());
      }
      if (hasEndVersion()) {
        hash = (37 * hash) + END_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getEndVersion());
      }
      if (hasVersionHash()) {
        hash = (37 * hash) + VERSION_HASH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersionHash());
      }
      if (hasNumRows()) {
        hash = (37 * hash) + NUM_ROWS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNumRows());
      }
      if (hasTotalDiskSize()) {
        hash = (37 * hash) + TOTAL_DISK_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTotalDiskSize());
      }
      if (hasDataDiskSize()) {
        hash = (37 * hash) + DATA_DISK_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDataDiskSize());
      }
      if (hasIndexDiskSize()) {
        hash = (37 * hash) + INDEX_DISK_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexDiskSize());
      }
      if (getZoneMapsCount() > 0) {
        hash = (37 * hash) + ZONE_MAPS_FIELD_NUMBER;
        hash = (53 * hash) + getZoneMapsList().hashCode();
      }
      if (hasDeletePredicate()) {
        hash = (37 * hash) + DELETE_PREDICATE_FIELD_NUMBER;
        hash = (53 * hash) + getDeletePredicate().hashCode();
      }
      if (hasEmpty()) {
        hash = (37 * hash) + EMPTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEmpty());
      }
      if (hasLoadId()) {
        hash = (37 * hash) + LOAD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getLoadId().hashCode();
      }
      if (hasDeleteFlag()) {
        hash = (37 * hash) + DELETE_FLAG_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDeleteFlag());
      }
      if (hasCreationTime()) {
        hash = (37 * hash) + CREATION_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCreationTime());
      }
      if (hasTabletUid()) {
        hash = (37 * hash) + TABLET_UID_FIELD_NUMBER;
        hash = (53 * hash) + getTabletUid().hashCode();
      }
      if (hasNumSegments()) {
        hash = (37 * hash) + NUM_SEGMENTS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNumSegments());
      }
      if (hasRowsetIdV2()) {
        hash = (37 * hash) + ROWSET_ID_V2_FIELD_NUMBER;
        hash = (53 * hash) + getRowsetIdV2().hashCode();
      }
      if (hasResourceId()) {
        hash = (37 * hash) + RESOURCE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getResourceId().hashCode();
      }
      if (hasNewestWriteTimestamp()) {
        hash = (37 * hash) + NEWEST_WRITE_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNewestWriteTimestamp());
      }
      if (getSegmentsKeyBoundsCount() > 0) {
        hash = (37 * hash) + SEGMENTS_KEY_BOUNDS_FIELD_NUMBER;
        hash = (53 * hash) + getSegmentsKeyBoundsList().hashCode();
      }
      if (hasTabletSchema()) {
        hash = (37 * hash) + TABLET_SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getTabletSchema().hashCode();
      }
      if (hasTxnExpiration()) {
        hash = (37 * hash) + TXN_EXPIRATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTxnExpiration());
      }
      if (hasSegmentsOverlapPb()) {
        hash = (37 * hash) + SEGMENTS_OVERLAP_PB_FIELD_NUMBER;
        hash = (53 * hash) + segmentsOverlapPb_;
      }
      if (hasCompactionLevel()) {
        hash = (37 * hash) + COMPACTION_LEVEL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCompactionLevel());
      }
      if (hasSourceTabletId()) {
        hash = (37 * hash) + SOURCE_TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSourceTabletId());
      }
      if (hasSourceRowsetId()) {
        hash = (37 * hash) + SOURCE_ROWSET_ID_FIELD_NUMBER;
        hash = (53 * hash) + getSourceRowsetId().hashCode();
      }
      if (getSegmentsFileSizeCount() > 0) {
        hash = (37 * hash) + SEGMENTS_FILE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + getSegmentsFileSizeList().hashCode();
      }
      if (hasIndexId()) {
        hash = (37 * hash) + INDEX_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexId());
      }
      if (hasSchemaVersion()) {
        hash = (37 * hash) + SCHEMA_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaVersion();
      }
      if (hasEnableSegmentsFileSize()) {
        hash = (37 * hash) + ENABLE_SEGMENTS_FILE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableSegmentsFileSize());
      }
      if (hasHasVariantTypeInSchema()) {
        hash = (37 * hash) + HAS_VARIANT_TYPE_IN_SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getHasVariantTypeInSchema());
      }
      if (hasSchemaDictKeyList()) {
        hash = (37 * hash) + SCHEMA_DICT_KEY_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaDictKeyList().hashCode();
      }
      if (hasEnableInvertedIndexFileInfo()) {
        hash = (37 * hash) + ENABLE_INVERTED_INDEX_FILE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableInvertedIndexFileInfo());
      }
      if (getInvertedIndexFileInfoCount() > 0) {
        hash = (37 * hash) + INVERTED_INDEX_FILE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getInvertedIndexFileInfoList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB 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.OlapFile.RowsetMetaCloudPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB 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.OlapFile.RowsetMetaCloudPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB 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.OlapFile.RowsetMetaCloudPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB 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.OlapFile.RowsetMetaCloudPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB 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.OlapFile.RowsetMetaCloudPB 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.RowsetMetaCloudPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.RowsetMetaCloudPB)
        org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_RowsetMetaCloudPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getZoneMapsFieldBuilder();
          getDeletePredicateFieldBuilder();
          getLoadIdFieldBuilder();
          getTabletUidFieldBuilder();
          getSegmentsKeyBoundsFieldBuilder();
          getTabletSchemaFieldBuilder();
          getSchemaDictKeyListFieldBuilder();
          getInvertedIndexFileInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        rowsetId_ = 0L;
        partitionId_ = 0L;
        tabletId_ = 0L;
        txnId_ = 0L;
        tabletSchemaHash_ = 0;
        rowsetType_ = 0;
        rowsetState_ = 0;
        startVersion_ = 0L;
        endVersion_ = 0L;
        versionHash_ = 0L;
        numRows_ = 0L;
        totalDiskSize_ = 0L;
        dataDiskSize_ = 0L;
        indexDiskSize_ = 0L;
        if (zoneMapsBuilder_ == null) {
          zoneMaps_ = java.util.Collections.emptyList();
        } else {
          zoneMaps_ = null;
          zoneMapsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        deletePredicate_ = null;
        if (deletePredicateBuilder_ != null) {
          deletePredicateBuilder_.dispose();
          deletePredicateBuilder_ = null;
        }
        empty_ = false;
        loadId_ = null;
        if (loadIdBuilder_ != null) {
          loadIdBuilder_.dispose();
          loadIdBuilder_ = null;
        }
        deleteFlag_ = false;
        creationTime_ = 0L;
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        numSegments_ = 0L;
        rowsetIdV2_ = "";
        resourceId_ = "";
        newestWriteTimestamp_ = -1L;
        if (segmentsKeyBoundsBuilder_ == null) {
          segmentsKeyBounds_ = java.util.Collections.emptyList();
        } else {
          segmentsKeyBounds_ = null;
          segmentsKeyBoundsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x02000000);
        tabletSchema_ = null;
        if (tabletSchemaBuilder_ != null) {
          tabletSchemaBuilder_.dispose();
          tabletSchemaBuilder_ = null;
        }
        txnExpiration_ = 0L;
        segmentsOverlapPb_ = 0;
        compactionLevel_ = 0L;
        sourceTabletId_ = 0L;
        sourceRowsetId_ = "";
        segmentsFileSize_ = emptyLongList();
        indexId_ = 0L;
        schemaVersion_ = 0;
        enableSegmentsFileSize_ = false;
        hasVariantTypeInSchema_ = false;
        schemaDictKeyList_ = null;
        if (schemaDictKeyListBuilder_ != null) {
          schemaDictKeyListBuilder_.dispose();
          schemaDictKeyListBuilder_ = null;
        }
        enableInvertedIndexFileInfo_ = false;
        if (invertedIndexFileInfoBuilder_ == null) {
          invertedIndexFileInfo_ = java.util.Collections.emptyList();
        } else {
          invertedIndexFileInfo_ = null;
          invertedIndexFileInfoBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000080);
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.RowsetMetaCloudPB result) {
        if (zoneMapsBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0)) {
            zoneMaps_ = java.util.Collections.unmodifiableList(zoneMaps_);
            bitField0_ = (bitField0_ & ~0x00004000);
          }
          result.zoneMaps_ = zoneMaps_;
        } else {
          result.zoneMaps_ = zoneMapsBuilder_.build();
        }
        if (segmentsKeyBoundsBuilder_ == null) {
          if (((bitField0_ & 0x02000000) != 0)) {
            segmentsKeyBounds_ = java.util.Collections.unmodifiableList(segmentsKeyBounds_);
            bitField0_ = (bitField0_ & ~0x02000000);
          }
          result.segmentsKeyBounds_ = segmentsKeyBounds_;
        } else {
          result.segmentsKeyBounds_ = segmentsKeyBoundsBuilder_.build();
        }
        if (invertedIndexFileInfoBuilder_ == null) {
          if (((bitField1_ & 0x00000080) != 0)) {
            invertedIndexFileInfo_ = java.util.Collections.unmodifiableList(invertedIndexFileInfo_);
            bitField1_ = (bitField1_ & ~0x00000080);
          }
          result.invertedIndexFileInfo_ = invertedIndexFileInfo_;
        } else {
          result.invertedIndexFileInfo_ = invertedIndexFileInfoBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.RowsetMetaCloudPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.rowsetId_ = rowsetId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.partitionId_ = partitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.tabletId_ = tabletId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.txnId_ = txnId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.tabletSchemaHash_ = tabletSchemaHash_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.rowsetType_ = rowsetType_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.rowsetState_ = rowsetState_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.startVersion_ = startVersion_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.endVersion_ = endVersion_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.versionHash_ = versionHash_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.numRows_ = numRows_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.totalDiskSize_ = totalDiskSize_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.dataDiskSize_ = dataDiskSize_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.indexDiskSize_ = indexDiskSize_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.deletePredicate_ = deletePredicateBuilder_ == null
              ? deletePredicate_
              : deletePredicateBuilder_.build();
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.empty_ = empty_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.loadId_ = loadIdBuilder_ == null
              ? loadId_
              : loadIdBuilder_.build();
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.deleteFlag_ = deleteFlag_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.creationTime_ = creationTime_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.tabletUid_ = tabletUidBuilder_ == null
              ? tabletUid_
              : tabletUidBuilder_.build();
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.numSegments_ = numSegments_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.rowsetIdV2_ = rowsetIdV2_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.resourceId_ = resourceId_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.newestWriteTimestamp_ = newestWriteTimestamp_;
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.tabletSchema_ = tabletSchemaBuilder_ == null
              ? tabletSchema_
              : tabletSchemaBuilder_.build();
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.txnExpiration_ = txnExpiration_;
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.segmentsOverlapPb_ = segmentsOverlapPb_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.compactionLevel_ = compactionLevel_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.sourceTabletId_ = sourceTabletId_;
          to_bitField0_ |= 0x10000000;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.sourceRowsetId_ = sourceRowsetId_;
          to_bitField0_ |= 0x20000000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartial1(org.apache.doris.proto.OlapFile.RowsetMetaCloudPB result) {
        int from_bitField1_ = bitField1_;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          segmentsFileSize_.makeImmutable();
          result.segmentsFileSize_ = segmentsFileSize_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField1_ & 0x00000002) != 0)) {
          result.indexId_ = indexId_;
          to_bitField0_ |= 0x40000000;
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.schemaVersion_ = schemaVersion_;
          to_bitField0_ |= 0x80000000;
        }
        int to_bitField1_ = 0;
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.enableSegmentsFileSize_ = enableSegmentsFileSize_;
          to_bitField1_ |= 0x00000001;
        }
        if (((from_bitField1_ & 0x00000010) != 0)) {
          result.hasVariantTypeInSchema_ = hasVariantTypeInSchema_;
          to_bitField1_ |= 0x00000002;
        }
        if (((from_bitField1_ & 0x00000020) != 0)) {
          result.schemaDictKeyList_ = schemaDictKeyListBuilder_ == null
              ? schemaDictKeyList_
              : schemaDictKeyListBuilder_.build();
          to_bitField1_ |= 0x00000004;
        }
        if (((from_bitField1_ & 0x00000040) != 0)) {
          result.enableInvertedIndexFileInfo_ = enableInvertedIndexFileInfo_;
          to_bitField1_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
        result.bitField1_ |= to_bitField1_;
      }

      @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.OlapFile.RowsetMetaCloudPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.RowsetMetaCloudPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.RowsetMetaCloudPB other) {
        if (other == org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.getDefaultInstance()) return this;
        if (other.hasRowsetId()) {
          setRowsetId(other.getRowsetId());
        }
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasTabletId()) {
          setTabletId(other.getTabletId());
        }
        if (other.hasTxnId()) {
          setTxnId(other.getTxnId());
        }
        if (other.hasTabletSchemaHash()) {
          setTabletSchemaHash(other.getTabletSchemaHash());
        }
        if (other.hasRowsetType()) {
          setRowsetType(other.getRowsetType());
        }
        if (other.hasRowsetState()) {
          setRowsetState(other.getRowsetState());
        }
        if (other.hasStartVersion()) {
          setStartVersion(other.getStartVersion());
        }
        if (other.hasEndVersion()) {
          setEndVersion(other.getEndVersion());
        }
        if (other.hasVersionHash()) {
          setVersionHash(other.getVersionHash());
        }
        if (other.hasNumRows()) {
          setNumRows(other.getNumRows());
        }
        if (other.hasTotalDiskSize()) {
          setTotalDiskSize(other.getTotalDiskSize());
        }
        if (other.hasDataDiskSize()) {
          setDataDiskSize(other.getDataDiskSize());
        }
        if (other.hasIndexDiskSize()) {
          setIndexDiskSize(other.getIndexDiskSize());
        }
        if (zoneMapsBuilder_ == null) {
          if (!other.zoneMaps_.isEmpty()) {
            if (zoneMaps_.isEmpty()) {
              zoneMaps_ = other.zoneMaps_;
              bitField0_ = (bitField0_ & ~0x00004000);
            } else {
              ensureZoneMapsIsMutable();
              zoneMaps_.addAll(other.zoneMaps_);
            }
            onChanged();
          }
        } else {
          if (!other.zoneMaps_.isEmpty()) {
            if (zoneMapsBuilder_.isEmpty()) {
              zoneMapsBuilder_.dispose();
              zoneMapsBuilder_ = null;
              zoneMaps_ = other.zoneMaps_;
              bitField0_ = (bitField0_ & ~0x00004000);
              zoneMapsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getZoneMapsFieldBuilder() : null;
            } else {
              zoneMapsBuilder_.addAllMessages(other.zoneMaps_);
            }
          }
        }
        if (other.hasDeletePredicate()) {
          mergeDeletePredicate(other.getDeletePredicate());
        }
        if (other.hasEmpty()) {
          setEmpty(other.getEmpty());
        }
        if (other.hasLoadId()) {
          mergeLoadId(other.getLoadId());
        }
        if (other.hasDeleteFlag()) {
          setDeleteFlag(other.getDeleteFlag());
        }
        if (other.hasCreationTime()) {
          setCreationTime(other.getCreationTime());
        }
        if (other.hasTabletUid()) {
          mergeTabletUid(other.getTabletUid());
        }
        if (other.hasNumSegments()) {
          setNumSegments(other.getNumSegments());
        }
        if (other.hasRowsetIdV2()) {
          rowsetIdV2_ = other.rowsetIdV2_;
          bitField0_ |= 0x00400000;
          onChanged();
        }
        if (other.hasResourceId()) {
          resourceId_ = other.resourceId_;
          bitField0_ |= 0x00800000;
          onChanged();
        }
        if (other.hasNewestWriteTimestamp()) {
          setNewestWriteTimestamp(other.getNewestWriteTimestamp());
        }
        if (segmentsKeyBoundsBuilder_ == null) {
          if (!other.segmentsKeyBounds_.isEmpty()) {
            if (segmentsKeyBounds_.isEmpty()) {
              segmentsKeyBounds_ = other.segmentsKeyBounds_;
              bitField0_ = (bitField0_ & ~0x02000000);
            } else {
              ensureSegmentsKeyBoundsIsMutable();
              segmentsKeyBounds_.addAll(other.segmentsKeyBounds_);
            }
            onChanged();
          }
        } else {
          if (!other.segmentsKeyBounds_.isEmpty()) {
            if (segmentsKeyBoundsBuilder_.isEmpty()) {
              segmentsKeyBoundsBuilder_.dispose();
              segmentsKeyBoundsBuilder_ = null;
              segmentsKeyBounds_ = other.segmentsKeyBounds_;
              bitField0_ = (bitField0_ & ~0x02000000);
              segmentsKeyBoundsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSegmentsKeyBoundsFieldBuilder() : null;
            } else {
              segmentsKeyBoundsBuilder_.addAllMessages(other.segmentsKeyBounds_);
            }
          }
        }
        if (other.hasTabletSchema()) {
          mergeTabletSchema(other.getTabletSchema());
        }
        if (other.hasTxnExpiration()) {
          setTxnExpiration(other.getTxnExpiration());
        }
        if (other.hasSegmentsOverlapPb()) {
          setSegmentsOverlapPb(other.getSegmentsOverlapPb());
        }
        if (other.hasCompactionLevel()) {
          setCompactionLevel(other.getCompactionLevel());
        }
        if (other.hasSourceTabletId()) {
          setSourceTabletId(other.getSourceTabletId());
        }
        if (other.hasSourceRowsetId()) {
          sourceRowsetId_ = other.sourceRowsetId_;
          bitField0_ |= 0x80000000;
          onChanged();
        }
        if (!other.segmentsFileSize_.isEmpty()) {
          if (segmentsFileSize_.isEmpty()) {
            segmentsFileSize_ = other.segmentsFileSize_;
            segmentsFileSize_.makeImmutable();
            bitField1_ |= 0x00000001;
          } else {
            ensureSegmentsFileSizeIsMutable();
            segmentsFileSize_.addAll(other.segmentsFileSize_);
          }
          onChanged();
        }
        if (other.hasIndexId()) {
          setIndexId(other.getIndexId());
        }
        if (other.hasSchemaVersion()) {
          setSchemaVersion(other.getSchemaVersion());
        }
        if (other.hasEnableSegmentsFileSize()) {
          setEnableSegmentsFileSize(other.getEnableSegmentsFileSize());
        }
        if (other.hasHasVariantTypeInSchema()) {
          setHasVariantTypeInSchema(other.getHasVariantTypeInSchema());
        }
        if (other.hasSchemaDictKeyList()) {
          mergeSchemaDictKeyList(other.getSchemaDictKeyList());
        }
        if (other.hasEnableInvertedIndexFileInfo()) {
          setEnableInvertedIndexFileInfo(other.getEnableInvertedIndexFileInfo());
        }
        if (invertedIndexFileInfoBuilder_ == null) {
          if (!other.invertedIndexFileInfo_.isEmpty()) {
            if (invertedIndexFileInfo_.isEmpty()) {
              invertedIndexFileInfo_ = other.invertedIndexFileInfo_;
              bitField1_ = (bitField1_ & ~0x00000080);
            } else {
              ensureInvertedIndexFileInfoIsMutable();
              invertedIndexFileInfo_.addAll(other.invertedIndexFileInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.invertedIndexFileInfo_.isEmpty()) {
            if (invertedIndexFileInfoBuilder_.isEmpty()) {
              invertedIndexFileInfoBuilder_.dispose();
              invertedIndexFileInfoBuilder_ = null;
              invertedIndexFileInfo_ = other.invertedIndexFileInfo_;
              bitField1_ = (bitField1_ & ~0x00000080);
              invertedIndexFileInfoBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getInvertedIndexFileInfoFieldBuilder() : null;
            } else {
              invertedIndexFileInfoBuilder_.addAllMessages(other.invertedIndexFileInfo_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRowsetId()) {
          return false;
        }
        for (int i = 0; i < getZoneMapsCount(); i++) {
          if (!getZoneMaps(i).isInitialized()) {
            return false;
          }
        }
        if (hasDeletePredicate()) {
          if (!getDeletePredicate().isInitialized()) {
            return false;
          }
        }
        if (hasLoadId()) {
          if (!getLoadId().isInitialized()) {
            return false;
          }
        }
        if (hasTabletUid()) {
          if (!getTabletUid().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getSegmentsKeyBoundsCount(); i++) {
          if (!getSegmentsKeyBounds(i).isInitialized()) {
            return false;
          }
        }
        if (hasTabletSchema()) {
          if (!getTabletSchema().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getInvertedIndexFileInfoCount(); i++) {
          if (!getInvertedIndexFileInfo(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: {
                rowsetId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                partitionId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                tabletId_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                txnId_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                tabletSchemaHash_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.RowsetTypePB tmpValue =
                    org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(6, tmpRaw);
                } else {
                  rowsetType_ = tmpRaw;
                  bitField0_ |= 0x00000020;
                }
                break;
              } // case 48
              case 56: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.RowsetStatePB tmpValue =
                    org.apache.doris.proto.OlapFile.RowsetStatePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(7, tmpRaw);
                } else {
                  rowsetState_ = tmpRaw;
                  bitField0_ |= 0x00000040;
                }
                break;
              } // case 56
              case 64: {
                startVersion_ = input.readInt64();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                endVersion_ = input.readInt64();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                versionHash_ = input.readInt64();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                numRows_ = input.readInt64();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                totalDiskSize_ = input.readInt64();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                dataDiskSize_ = input.readInt64();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                indexDiskSize_ = input.readInt64();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 122: {
                org.apache.doris.proto.OlapFile.ZoneMap m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.ZoneMap.PARSER,
                        extensionRegistry);
                if (zoneMapsBuilder_ == null) {
                  ensureZoneMapsIsMutable();
                  zoneMaps_.add(m);
                } else {
                  zoneMapsBuilder_.addMessage(m);
                }
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    getDeletePredicateFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00008000;
                break;
              } // case 130
              case 136: {
                empty_ = input.readBool();
                bitField0_ |= 0x00010000;
                break;
              } // case 136
              case 146: {
                input.readMessage(
                    getLoadIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00020000;
                break;
              } // case 146
              case 152: {
                deleteFlag_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 152
              case 160: {
                creationTime_ = input.readInt64();
                bitField0_ |= 0x00080000;
                break;
              } // case 160
              case 170: {
                input.readMessage(
                    getTabletUidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00100000;
                break;
              } // case 170
              case 176: {
                numSegments_ = input.readInt64();
                bitField0_ |= 0x00200000;
                break;
              } // case 176
              case 186: {
                rowsetIdV2_ = input.readBytes();
                bitField0_ |= 0x00400000;
                break;
              } // case 186
              case 194: {
                resourceId_ = input.readBytes();
                bitField0_ |= 0x00800000;
                break;
              } // case 194
              case 208: {
                newestWriteTimestamp_ = input.readInt64();
                bitField0_ |= 0x01000000;
                break;
              } // case 208
              case 218: {
                org.apache.doris.proto.OlapFile.KeyBoundsPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.KeyBoundsPB.PARSER,
                        extensionRegistry);
                if (segmentsKeyBoundsBuilder_ == null) {
                  ensureSegmentsKeyBoundsIsMutable();
                  segmentsKeyBounds_.add(m);
                } else {
                  segmentsKeyBoundsBuilder_.addMessage(m);
                }
                break;
              } // case 218
              case 226: {
                input.readMessage(
                    getTabletSchemaFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x04000000;
                break;
              } // case 226
              case 232: {
                txnExpiration_ = input.readInt64();
                bitField0_ |= 0x08000000;
                break;
              } // case 232
              case 408: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.SegmentsOverlapPB tmpValue =
                    org.apache.doris.proto.OlapFile.SegmentsOverlapPB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(51, tmpRaw);
                } else {
                  segmentsOverlapPb_ = tmpRaw;
                  bitField0_ |= 0x10000000;
                }
                break;
              } // case 408
              case 416: {
                compactionLevel_ = input.readInt64();
                bitField0_ |= 0x20000000;
                break;
              } // case 416
              case 424: {
                sourceTabletId_ = input.readInt64();
                bitField0_ |= 0x40000000;
                break;
              } // case 424
              case 434: {
                sourceRowsetId_ = input.readBytes();
                bitField0_ |= 0x80000000;
                break;
              } // case 434
              case 800: {
                long v = input.readInt64();
                ensureSegmentsFileSizeIsMutable();
                segmentsFileSize_.addLong(v);
                break;
              } // case 800
              case 802: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureSegmentsFileSizeIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  segmentsFileSize_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 802
              case 808: {
                indexId_ = input.readInt64();
                bitField1_ |= 0x00000002;
                break;
              } // case 808
              case 816: {
                schemaVersion_ = input.readInt32();
                bitField1_ |= 0x00000004;
                break;
              } // case 816
              case 824: {
                enableSegmentsFileSize_ = input.readBool();
                bitField1_ |= 0x00000008;
                break;
              } // case 824
              case 832: {
                hasVariantTypeInSchema_ = input.readBool();
                bitField1_ |= 0x00000010;
                break;
              } // case 832
              case 842: {
                input.readMessage(
                    getSchemaDictKeyListFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000020;
                break;
              } // case 842
              case 848: {
                enableInvertedIndexFileInfo_ = input.readBool();
                bitField1_ |= 0x00000040;
                break;
              } // case 848
              case 858: {
                org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo m =
                    input.readMessage(
                        org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.PARSER,
                        extensionRegistry);
                if (invertedIndexFileInfoBuilder_ == null) {
                  ensureInvertedIndexFileInfoIsMutable();
                  invertedIndexFileInfo_.add(m);
                } else {
                  invertedIndexFileInfoBuilder_.addMessage(m);
                }
                break;
              } // case 858
              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 bitField1_;

      private long rowsetId_ ;
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @return Whether the rowsetId field is set.
       */
      @java.lang.Override
      public boolean hasRowsetId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @return The rowsetId.
       */
      @java.lang.Override
      public long getRowsetId() {
        return rowsetId_;
      }
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @param value The rowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetId(long value) {

        rowsetId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Deprecated. Use rowset_id_v2 instead.
       * </pre>
       *
       * <code>required int64 rowset_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rowsetId_ = 0L;
        onChanged();
        return this;
      }

      private long partitionId_ ;
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @return Whether the partitionId field is set.
       */
      @java.lang.Override
      public boolean hasPartitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @return The partitionId.
       */
      @java.lang.Override
      public long getPartitionId() {
        return partitionId_;
      }
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(long value) {

        partitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 partition_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        partitionId_ = 0L;
        onChanged();
        return this;
      }

      private long tabletId_ ;
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @return Whether the tabletId field is set.
       */
      @java.lang.Override
      public boolean hasTabletId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @return The tabletId.
       */
      @java.lang.Override
      public long getTabletId() {
        return tabletId_;
      }
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @param value The tabletId to set.
       * @return This builder for chaining.
       */
      public Builder setTabletId(long value) {

        tabletId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 tablet_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tabletId_ = 0L;
        onChanged();
        return this;
      }

      private long txnId_ ;
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @return Whether the txnId field is set.
       */
      @java.lang.Override
      public boolean hasTxnId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @return The txnId.
       */
      @java.lang.Override
      public long getTxnId() {
        return txnId_;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @param value The txnId to set.
       * @return This builder for chaining.
       */
      public Builder setTxnId(long value) {

        txnId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional int64 txn_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxnId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        txnId_ = 0L;
        onChanged();
        return this;
      }

      private int tabletSchemaHash_ ;
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @return Whether the tabletSchemaHash field is set.
       */
      @java.lang.Override
      public boolean hasTabletSchemaHash() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @return The tabletSchemaHash.
       */
      @java.lang.Override
      public int getTabletSchemaHash() {
        return tabletSchemaHash_;
      }
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @param value The tabletSchemaHash to set.
       * @return This builder for chaining.
       */
      public Builder setTabletSchemaHash(int value) {

        tabletSchemaHash_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet id and schema hash could find tablet
       * </pre>
       *
       * <code>optional int32 tablet_schema_hash = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletSchemaHash() {
        bitField0_ = (bitField0_ & ~0x00000010);
        tabletSchemaHash_ = 0;
        onChanged();
        return this;
      }

      private int rowsetType_ = 0;
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @return Whether the rowsetType field is set.
       */
      @java.lang.Override public boolean hasRowsetType() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @return The rowsetType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.RowsetTypePB getRowsetType() {
        org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(rowsetType_);
        return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
      }
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @param value The rowsetType to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetType(org.apache.doris.proto.OlapFile.RowsetTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        rowsetType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.RowsetTypePB rowset_type = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetType() {
        bitField0_ = (bitField0_ & ~0x00000020);
        rowsetType_ = 0;
        onChanged();
        return this;
      }

      private int rowsetState_ = 0;
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @return Whether the rowsetState field is set.
       */
      @java.lang.Override public boolean hasRowsetState() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @return The rowsetState.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.RowsetStatePB getRowsetState() {
        org.apache.doris.proto.OlapFile.RowsetStatePB result = org.apache.doris.proto.OlapFile.RowsetStatePB.forNumber(rowsetState_);
        return result == null ? org.apache.doris.proto.OlapFile.RowsetStatePB.PREPARED : result;
      }
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @param value The rowsetState to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetState(org.apache.doris.proto.OlapFile.RowsetStatePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        rowsetState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.RowsetStatePB rowset_state = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetState() {
        bitField0_ = (bitField0_ & ~0x00000040);
        rowsetState_ = 0;
        onChanged();
        return this;
      }

      private long startVersion_ ;
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @return Whether the startVersion field is set.
       */
      @java.lang.Override
      public boolean hasStartVersion() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @return The startVersion.
       */
      @java.lang.Override
      public long getStartVersion() {
        return startVersion_;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @param value The startVersion to set.
       * @return This builder for chaining.
       */
      public Builder setStartVersion(long value) {

        startVersion_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.start_version
       * </pre>
       *
       * <code>optional int64 start_version = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartVersion() {
        bitField0_ = (bitField0_ & ~0x00000080);
        startVersion_ = 0L;
        onChanged();
        return this;
      }

      private long endVersion_ ;
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @return Whether the endVersion field is set.
       */
      @java.lang.Override
      public boolean hasEndVersion() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @return The endVersion.
       */
      @java.lang.Override
      public long getEndVersion() {
        return endVersion_;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @param value The endVersion to set.
       * @return This builder for chaining.
       */
      public Builder setEndVersion(long value) {

        endVersion_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.end_version
       * </pre>
       *
       * <code>optional int64 end_version = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndVersion() {
        bitField0_ = (bitField0_ & ~0x00000100);
        endVersion_ = 0L;
        onChanged();
        return this;
      }

      private long versionHash_ ;
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @return Whether the versionHash field is set.
       */
      @java.lang.Override
      public boolean hasVersionHash() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @return The versionHash.
       */
      @java.lang.Override
      public long getVersionHash() {
        return versionHash_;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @param value The versionHash to set.
       * @return This builder for chaining.
       */
      public Builder setVersionHash(long value) {

        versionHash_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for visible rowset. For alpha rowset, it's the same as PDelta.version_hash
       * </pre>
       *
       * <code>optional int64 version_hash = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersionHash() {
        bitField0_ = (bitField0_ & ~0x00000200);
        versionHash_ = 0L;
        onChanged();
        return this;
      }

      private long numRows_ ;
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @return Whether the numRows field is set.
       */
      @java.lang.Override
      public boolean hasNumRows() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @return The numRows.
       */
      @java.lang.Override
      public long getNumRows() {
        return numRows_;
      }
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @param value The numRows to set.
       * @return This builder for chaining.
       */
      public Builder setNumRows(long value) {

        numRows_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * total number of rows. For alpha rowset, it's calculated from segment group
       * </pre>
       *
       * <code>optional int64 num_rows = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumRows() {
        bitField0_ = (bitField0_ & ~0x00000400);
        numRows_ = 0L;
        onChanged();
        return this;
      }

      private long totalDiskSize_ ;
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @return Whether the totalDiskSize field is set.
       */
      @java.lang.Override
      public boolean hasTotalDiskSize() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @return The totalDiskSize.
       */
      @java.lang.Override
      public long getTotalDiskSize() {
        return totalDiskSize_;
      }
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @param value The totalDiskSize to set.
       * @return This builder for chaining.
       */
      public Builder setTotalDiskSize(long value) {

        totalDiskSize_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated by index + data
       * </pre>
       *
       * <code>optional int64 total_disk_size = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalDiskSize() {
        bitField0_ = (bitField0_ & ~0x00000800);
        totalDiskSize_ = 0L;
        onChanged();
        return this;
      }

      private long dataDiskSize_ ;
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @return Whether the dataDiskSize field is set.
       */
      @java.lang.Override
      public boolean hasDataDiskSize() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @return The dataDiskSize.
       */
      @java.lang.Override
      public long getDataDiskSize() {
        return dataDiskSize_;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @param value The dataDiskSize to set.
       * @return This builder for chaining.
       */
      public Builder setDataDiskSize(long value) {

        dataDiskSize_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.data_size)
       * </pre>
       *
       * <code>optional int64 data_disk_size = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataDiskSize() {
        bitField0_ = (bitField0_ & ~0x00001000);
        dataDiskSize_ = 0L;
        onChanged();
        return this;
      }

      private long indexDiskSize_ ;
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @return Whether the indexDiskSize field is set.
       */
      @java.lang.Override
      public boolean hasIndexDiskSize() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @return The indexDiskSize.
       */
      @java.lang.Override
      public long getIndexDiskSize() {
        return indexDiskSize_;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @param value The indexDiskSize to set.
       * @return This builder for chaining.
       */
      public Builder setIndexDiskSize(long value) {

        indexDiskSize_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated sum(segmentgroup.index_size)
       * </pre>
       *
       * <code>optional int64 index_disk_size = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexDiskSize() {
        bitField0_ = (bitField0_ & ~0x00002000);
        indexDiskSize_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> zoneMaps_ =
        java.util.Collections.emptyList();
      private void ensureZoneMapsIsMutable() {
        if (!((bitField0_ & 0x00004000) != 0)) {
          zoneMaps_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.ZoneMap>(zoneMaps_);
          bitField0_ |= 0x00004000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ZoneMap, org.apache.doris.proto.OlapFile.ZoneMap.Builder, org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> zoneMapsBuilder_;

      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ZoneMap> getZoneMapsList() {
        if (zoneMapsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(zoneMaps_);
        } else {
          return zoneMapsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public int getZoneMapsCount() {
        if (zoneMapsBuilder_ == null) {
          return zoneMaps_.size();
        } else {
          return zoneMapsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap getZoneMaps(int index) {
        if (zoneMapsBuilder_ == null) {
          return zoneMaps_.get(index);
        } else {
          return zoneMapsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder setZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap value) {
        if (zoneMapsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureZoneMapsIsMutable();
          zoneMaps_.set(index, value);
          onChanged();
        } else {
          zoneMapsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder setZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap.Builder builderForValue) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.set(index, builderForValue.build());
          onChanged();
        } else {
          zoneMapsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(org.apache.doris.proto.OlapFile.ZoneMap value) {
        if (zoneMapsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureZoneMapsIsMutable();
          zoneMaps_.add(value);
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap value) {
        if (zoneMapsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureZoneMapsIsMutable();
          zoneMaps_.add(index, value);
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(
          org.apache.doris.proto.OlapFile.ZoneMap.Builder builderForValue) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.add(builderForValue.build());
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addZoneMaps(
          int index, org.apache.doris.proto.OlapFile.ZoneMap.Builder builderForValue) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.add(index, builderForValue.build());
          onChanged();
        } else {
          zoneMapsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder addAllZoneMaps(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.ZoneMap> values) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, zoneMaps_);
          onChanged();
        } else {
          zoneMapsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder clearZoneMaps() {
        if (zoneMapsBuilder_ == null) {
          zoneMaps_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00004000);
          onChanged();
        } else {
          zoneMapsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public Builder removeZoneMaps(int index) {
        if (zoneMapsBuilder_ == null) {
          ensureZoneMapsIsMutable();
          zoneMaps_.remove(index);
          onChanged();
        } else {
          zoneMapsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap.Builder getZoneMapsBuilder(
          int index) {
        return getZoneMapsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMapOrBuilder getZoneMapsOrBuilder(
          int index) {
        if (zoneMapsBuilder_ == null) {
          return zoneMaps_.get(index);  } else {
          return zoneMapsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
           getZoneMapsOrBuilderList() {
        if (zoneMapsBuilder_ != null) {
          return zoneMapsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(zoneMaps_);
        }
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap.Builder addZoneMapsBuilder() {
        return getZoneMapsFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.ZoneMap.getDefaultInstance());
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.ZoneMap.Builder addZoneMapsBuilder(
          int index) {
        return getZoneMapsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.ZoneMap.getDefaultInstance());
      }
      /**
       * <pre>
       * rowset level column min/max/null statistics, not not used currently
       * </pre>
       *
       * <code>repeated .doris.ZoneMap zone_maps = 15;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ZoneMap.Builder> 
           getZoneMapsBuilderList() {
        return getZoneMapsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ZoneMap, org.apache.doris.proto.OlapFile.ZoneMap.Builder, org.apache.doris.proto.OlapFile.ZoneMapOrBuilder> 
          getZoneMapsFieldBuilder() {
        if (zoneMapsBuilder_ == null) {
          zoneMapsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.ZoneMap, org.apache.doris.proto.OlapFile.ZoneMap.Builder, org.apache.doris.proto.OlapFile.ZoneMapOrBuilder>(
                  zoneMaps_,
                  ((bitField0_ & 0x00004000) != 0),
                  getParentForChildren(),
                  isClean());
          zoneMaps_ = null;
        }
        return zoneMapsBuilder_;
      }

      private org.apache.doris.proto.OlapFile.DeletePredicatePB deletePredicate_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeletePredicatePB, org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder, org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder> deletePredicateBuilder_;
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       * @return Whether the deletePredicate field is set.
       */
      public boolean hasDeletePredicate() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       * @return The deletePredicate.
       */
      public org.apache.doris.proto.OlapFile.DeletePredicatePB getDeletePredicate() {
        if (deletePredicateBuilder_ == null) {
          return deletePredicate_ == null ? org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
        } else {
          return deletePredicateBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder setDeletePredicate(org.apache.doris.proto.OlapFile.DeletePredicatePB value) {
        if (deletePredicateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deletePredicate_ = value;
        } else {
          deletePredicateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder setDeletePredicate(
          org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder builderForValue) {
        if (deletePredicateBuilder_ == null) {
          deletePredicate_ = builderForValue.build();
        } else {
          deletePredicateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder mergeDeletePredicate(org.apache.doris.proto.OlapFile.DeletePredicatePB value) {
        if (deletePredicateBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0) &&
            deletePredicate_ != null &&
            deletePredicate_ != org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance()) {
            getDeletePredicateBuilder().mergeFrom(value);
          } else {
            deletePredicate_ = value;
          }
        } else {
          deletePredicateBuilder_.mergeFrom(value);
        }
        if (deletePredicate_ != null) {
          bitField0_ |= 0x00008000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public Builder clearDeletePredicate() {
        bitField0_ = (bitField0_ & ~0x00008000);
        deletePredicate_ = null;
        if (deletePredicateBuilder_ != null) {
          deletePredicateBuilder_.dispose();
          deletePredicateBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder getDeletePredicateBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getDeletePredicateFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder getDeletePredicateOrBuilder() {
        if (deletePredicateBuilder_ != null) {
          return deletePredicateBuilder_.getMessageOrBuilder();
        } else {
          return deletePredicate_ == null ?
              org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance() : deletePredicate_;
        }
      }
      /**
       * <code>optional .doris.DeletePredicatePB delete_predicate = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeletePredicatePB, org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder, org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder> 
          getDeletePredicateFieldBuilder() {
        if (deletePredicateBuilder_ == null) {
          deletePredicateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.DeletePredicatePB, org.apache.doris.proto.OlapFile.DeletePredicatePB.Builder, org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder>(
                  getDeletePredicate(),
                  getParentForChildren(),
                  isClean());
          deletePredicate_ = null;
        }
        return deletePredicateBuilder_;
      }

      private boolean empty_ ;
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @return Whether the empty field is set.
       */
      @java.lang.Override
      public boolean hasEmpty() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @return The empty.
       */
      @java.lang.Override
      public boolean getEmpty() {
        return empty_;
      }
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @param value The empty to set.
       * @return This builder for chaining.
       */
      public Builder setEmpty(boolean value) {

        empty_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * calculated from segment group
       * </pre>
       *
       * <code>optional bool empty = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmpty() {
        bitField0_ = (bitField0_ & ~0x00010000);
        empty_ = false;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId loadId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> loadIdBuilder_;
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       * @return Whether the loadId field is set.
       */
      public boolean hasLoadId() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       * @return The loadId.
       */
      public org.apache.doris.proto.Types.PUniqueId getLoadId() {
        if (loadIdBuilder_ == null) {
          return loadId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
        } else {
          return loadIdBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder setLoadId(org.apache.doris.proto.Types.PUniqueId value) {
        if (loadIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          loadId_ = value;
        } else {
          loadIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder setLoadId(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (loadIdBuilder_ == null) {
          loadId_ = builderForValue.build();
        } else {
          loadIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder mergeLoadId(org.apache.doris.proto.Types.PUniqueId value) {
        if (loadIdBuilder_ == null) {
          if (((bitField0_ & 0x00020000) != 0) &&
            loadId_ != null &&
            loadId_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getLoadIdBuilder().mergeFrom(value);
          } else {
            loadId_ = value;
          }
        } else {
          loadIdBuilder_.mergeFrom(value);
        }
        if (loadId_ != null) {
          bitField0_ |= 0x00020000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public Builder clearLoadId() {
        bitField0_ = (bitField0_ & ~0x00020000);
        loadId_ = null;
        if (loadIdBuilder_ != null) {
          loadIdBuilder_.dispose();
          loadIdBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getLoadIdBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getLoadIdFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getLoadIdOrBuilder() {
        if (loadIdBuilder_ != null) {
          return loadIdBuilder_.getMessageOrBuilder();
        } else {
          return loadId_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : loadId_;
        }
      }
      /**
       * <pre>
       * only for pending rowset
       * </pre>
       *
       * <code>optional .doris.PUniqueId load_id = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getLoadIdFieldBuilder() {
        if (loadIdBuilder_ == null) {
          loadIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getLoadId(),
                  getParentForChildren(),
                  isClean());
          loadId_ = null;
        }
        return loadIdBuilder_;
      }

      private boolean deleteFlag_ ;
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @return Whether the deleteFlag field is set.
       */
      @java.lang.Override
      public boolean hasDeleteFlag() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @return The deleteFlag.
       */
      @java.lang.Override
      public boolean getDeleteFlag() {
        return deleteFlag_;
      }
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @param value The deleteFlag to set.
       * @return This builder for chaining.
       */
      public Builder setDeleteFlag(boolean value) {

        deleteFlag_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * not set, get from olap index header msg?
       * </pre>
       *
       * <code>optional bool delete_flag = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeleteFlag() {
        bitField0_ = (bitField0_ & ~0x00040000);
        deleteFlag_ = false;
        onChanged();
        return this;
      }

      private long creationTime_ ;
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @return Whether the creationTime field is set.
       */
      @java.lang.Override
      public boolean hasCreationTime() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @return The creationTime.
       */
      @java.lang.Override
      public long getCreationTime() {
        return creationTime_;
      }
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @param value The creationTime to set.
       * @return This builder for chaining.
       */
      public Builder setCreationTime(long value) {

        creationTime_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * For alpha rowset, it's the same as PDelta.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreationTime() {
        bitField0_ = (bitField0_ & ~0x00080000);
        creationTime_ = 0L;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId tabletUid_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> tabletUidBuilder_;
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       * @return Whether the tabletUid field is set.
       */
      public boolean hasTabletUid() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       * @return The tabletUid.
       */
      public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
        if (tabletUidBuilder_ == null) {
          return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        } else {
          return tabletUidBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder setTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tabletUid_ = value;
        } else {
          tabletUidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder setTabletUid(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (tabletUidBuilder_ == null) {
          tabletUid_ = builderForValue.build();
        } else {
          tabletUidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder mergeTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (((bitField0_ & 0x00100000) != 0) &&
            tabletUid_ != null &&
            tabletUid_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getTabletUidBuilder().mergeFrom(value);
          } else {
            tabletUid_ = value;
          }
        } else {
          tabletUidBuilder_.mergeFrom(value);
        }
        if (tabletUid_ != null) {
          bitField0_ |= 0x00100000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public Builder clearTabletUid() {
        bitField0_ = (bitField0_ & ~0x00100000);
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getTabletUidBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getTabletUidFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
        if (tabletUidBuilder_ != null) {
          return tabletUidBuilder_.getMessageOrBuilder();
        } else {
          return tabletUid_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        }
      }
      /**
       * <code>optional .doris.PUniqueId tablet_uid = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getTabletUidFieldBuilder() {
        if (tabletUidBuilder_ == null) {
          tabletUidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getTabletUid(),
                  getParentForChildren(),
                  isClean());
          tabletUid_ = null;
        }
        return tabletUidBuilder_;
      }

      private long numSegments_ ;
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @return Whether the numSegments field is set.
       */
      @java.lang.Override
      public boolean hasNumSegments() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @return The numSegments.
       */
      @java.lang.Override
      public long getNumSegments() {
        return numSegments_;
      }
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @param value The numSegments to set.
       * @return This builder for chaining.
       */
      public Builder setNumSegments(long value) {

        numSegments_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * total number of segments
       * </pre>
       *
       * <code>optional int64 num_segments = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumSegments() {
        bitField0_ = (bitField0_ & ~0x00200000);
        numSegments_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object rowsetIdV2_ = "";
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return Whether the rowsetIdV2 field is set.
       */
      public boolean hasRowsetIdV2() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return The rowsetIdV2.
       */
      public java.lang.String getRowsetIdV2() {
        java.lang.Object ref = rowsetIdV2_;
        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()) {
            rowsetIdV2_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return The bytes for rowsetIdV2.
       */
      public com.google.protobuf.ByteString
          getRowsetIdV2Bytes() {
        java.lang.Object ref = rowsetIdV2_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rowsetIdV2_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @param value The rowsetIdV2 to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetIdV2(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rowsetIdV2_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetIdV2() {
        rowsetIdV2_ = getDefaultInstance().getRowsetIdV2();
        bitField0_ = (bitField0_ & ~0x00400000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * rowset id definition, it will replace required rowset id
       * </pre>
       *
       * <code>optional string rowset_id_v2 = 23;</code>
       * @param value The bytes for rowsetIdV2 to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetIdV2Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        rowsetIdV2_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }

      private java.lang.Object resourceId_ = "";
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return Whether the resourceId field is set.
       */
      public boolean hasResourceId() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return The resourceId.
       */
      public java.lang.String getResourceId() {
        java.lang.Object ref = resourceId_;
        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()) {
            resourceId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return The bytes for resourceId.
       */
      public com.google.protobuf.ByteString
          getResourceIdBytes() {
        java.lang.Object ref = resourceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resourceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @param value The resourceId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        resourceId_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearResourceId() {
        resourceId_ = getDefaultInstance().getResourceId();
        bitField0_ = (bitField0_ & ~0x00800000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * resource id
       * </pre>
       *
       * <code>optional string resource_id = 24;</code>
       * @param value The bytes for resourceId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        resourceId_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }

      private long newestWriteTimestamp_ = -1L;
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @return Whether the newestWriteTimestamp field is set.
       */
      @java.lang.Override
      public boolean hasNewestWriteTimestamp() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @return The newestWriteTimestamp.
       */
      @java.lang.Override
      public long getNewestWriteTimestamp() {
        return newestWriteTimestamp_;
      }
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @param value The newestWriteTimestamp to set.
       * @return This builder for chaining.
       */
      public Builder setNewestWriteTimestamp(long value) {

        newestWriteTimestamp_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * latest write time
       * </pre>
       *
       * <code>optional int64 newest_write_timestamp = 26 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearNewestWriteTimestamp() {
        bitField0_ = (bitField0_ & ~0x01000000);
        newestWriteTimestamp_ = -1L;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> segmentsKeyBounds_ =
        java.util.Collections.emptyList();
      private void ensureSegmentsKeyBoundsIsMutable() {
        if (!((bitField0_ & 0x02000000) != 0)) {
          segmentsKeyBounds_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.KeyBoundsPB>(segmentsKeyBounds_);
          bitField0_ |= 0x02000000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> segmentsKeyBoundsBuilder_;

      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB> getSegmentsKeyBoundsList() {
        if (segmentsKeyBoundsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(segmentsKeyBounds_);
        } else {
          return segmentsKeyBoundsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public int getSegmentsKeyBoundsCount() {
        if (segmentsKeyBoundsBuilder_ == null) {
          return segmentsKeyBounds_.size();
        } else {
          return segmentsKeyBoundsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB getSegmentsKeyBounds(int index) {
        if (segmentsKeyBoundsBuilder_ == null) {
          return segmentsKeyBounds_.get(index);
        } else {
          return segmentsKeyBoundsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder setSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (segmentsKeyBoundsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.set(index, value);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder setSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder builderForValue) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.set(index, builderForValue.build());
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (segmentsKeyBoundsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(value);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (segmentsKeyBoundsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(index, value);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(
          org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder builderForValue) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(builderForValue.build());
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addSegmentsKeyBounds(
          int index, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder builderForValue) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.add(index, builderForValue.build());
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder addAllSegmentsKeyBounds(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.KeyBoundsPB> values) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, segmentsKeyBounds_);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder clearSegmentsKeyBounds() {
        if (segmentsKeyBoundsBuilder_ == null) {
          segmentsKeyBounds_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x02000000);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public Builder removeSegmentsKeyBounds(int index) {
        if (segmentsKeyBoundsBuilder_ == null) {
          ensureSegmentsKeyBoundsIsMutable();
          segmentsKeyBounds_.remove(index);
          onChanged();
        } else {
          segmentsKeyBoundsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder getSegmentsKeyBoundsBuilder(
          int index) {
        return getSegmentsKeyBoundsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getSegmentsKeyBoundsOrBuilder(
          int index) {
        if (segmentsKeyBoundsBuilder_ == null) {
          return segmentsKeyBounds_.get(index);  } else {
          return segmentsKeyBoundsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
           getSegmentsKeyBoundsOrBuilderList() {
        if (segmentsKeyBoundsBuilder_ != null) {
          return segmentsKeyBoundsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(segmentsKeyBounds_);
        }
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder addSegmentsKeyBoundsBuilder() {
        return getSegmentsKeyBoundsFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance());
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder addSegmentsKeyBoundsBuilder(
          int index) {
        return getSegmentsKeyBoundsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance());
      }
      /**
       * <pre>
       * the encoded segment min/max key of segments in this rowset,
       * only used in unique key data model with primary_key_index support.
       * </pre>
       *
       * <code>repeated .doris.KeyBoundsPB segments_key_bounds = 27;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder> 
           getSegmentsKeyBoundsBuilderList() {
        return getSegmentsKeyBoundsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
          getSegmentsKeyBoundsFieldBuilder() {
        if (segmentsKeyBoundsBuilder_ == null) {
          segmentsKeyBoundsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder>(
                  segmentsKeyBounds_,
                  ((bitField0_ & 0x02000000) != 0),
                  getParentForChildren(),
                  isClean());
          segmentsKeyBounds_ = null;
        }
        return segmentsKeyBoundsBuilder_;
      }

      private org.apache.doris.proto.OlapFile.TabletSchemaCloudPB tabletSchema_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaCloudPB, org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder> tabletSchemaBuilder_;
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       * @return Whether the tabletSchema field is set.
       */
      public boolean hasTabletSchema() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       * @return The tabletSchema.
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaCloudPB getTabletSchema() {
        if (tabletSchemaBuilder_ == null) {
          return tabletSchema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : tabletSchema_;
        } else {
          return tabletSchemaBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       */
      public Builder setTabletSchema(org.apache.doris.proto.OlapFile.TabletSchemaCloudPB value) {
        if (tabletSchemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tabletSchema_ = value;
        } else {
          tabletSchemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       */
      public Builder setTabletSchema(
          org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder builderForValue) {
        if (tabletSchemaBuilder_ == null) {
          tabletSchema_ = builderForValue.build();
        } else {
          tabletSchemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       */
      public Builder mergeTabletSchema(org.apache.doris.proto.OlapFile.TabletSchemaCloudPB value) {
        if (tabletSchemaBuilder_ == null) {
          if (((bitField0_ & 0x04000000) != 0) &&
            tabletSchema_ != null &&
            tabletSchema_ != org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance()) {
            getTabletSchemaBuilder().mergeFrom(value);
          } else {
            tabletSchema_ = value;
          }
        } else {
          tabletSchemaBuilder_.mergeFrom(value);
        }
        if (tabletSchema_ != null) {
          bitField0_ |= 0x04000000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       */
      public Builder clearTabletSchema() {
        bitField0_ = (bitField0_ & ~0x04000000);
        tabletSchema_ = null;
        if (tabletSchemaBuilder_ != null) {
          tabletSchemaBuilder_.dispose();
          tabletSchemaBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder getTabletSchemaBuilder() {
        bitField0_ |= 0x04000000;
        onChanged();
        return getTabletSchemaFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder getTabletSchemaOrBuilder() {
        if (tabletSchemaBuilder_ != null) {
          return tabletSchemaBuilder_.getMessageOrBuilder();
        } else {
          return tabletSchema_ == null ?
              org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : tabletSchema_;
        }
      }
      /**
       * <pre>
       * tablet meta pb, for compaction
       * </pre>
       *
       * <code>optional .doris.TabletSchemaCloudPB tablet_schema = 28;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaCloudPB, org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder> 
          getTabletSchemaFieldBuilder() {
        if (tabletSchemaBuilder_ == null) {
          tabletSchemaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.TabletSchemaCloudPB, org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder>(
                  getTabletSchema(),
                  getParentForChildren(),
                  isClean());
          tabletSchema_ = null;
        }
        return tabletSchemaBuilder_;
      }

      private long txnExpiration_ ;
      /**
       * <pre>
       * for data recycling in CLOUD_MODE
       * </pre>
       *
       * <code>optional int64 txn_expiration = 29;</code>
       * @return Whether the txnExpiration field is set.
       */
      @java.lang.Override
      public boolean hasTxnExpiration() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <pre>
       * for data recycling in CLOUD_MODE
       * </pre>
       *
       * <code>optional int64 txn_expiration = 29;</code>
       * @return The txnExpiration.
       */
      @java.lang.Override
      public long getTxnExpiration() {
        return txnExpiration_;
      }
      /**
       * <pre>
       * for data recycling in CLOUD_MODE
       * </pre>
       *
       * <code>optional int64 txn_expiration = 29;</code>
       * @param value The txnExpiration to set.
       * @return This builder for chaining.
       */
      public Builder setTxnExpiration(long value) {

        txnExpiration_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * for data recycling in CLOUD_MODE
       * </pre>
       *
       * <code>optional int64 txn_expiration = 29;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxnExpiration() {
        bitField0_ = (bitField0_ & ~0x08000000);
        txnExpiration_ = 0L;
        onChanged();
        return this;
      }

      private int segmentsOverlapPb_ = 0;
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @return Whether the segmentsOverlapPb field is set.
       */
      @java.lang.Override public boolean hasSegmentsOverlapPb() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @return The segmentsOverlapPb.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.SegmentsOverlapPB getSegmentsOverlapPb() {
        org.apache.doris.proto.OlapFile.SegmentsOverlapPB result = org.apache.doris.proto.OlapFile.SegmentsOverlapPB.forNumber(segmentsOverlapPb_);
        return result == null ? org.apache.doris.proto.OlapFile.SegmentsOverlapPB.OVERLAP_UNKNOWN : result;
      }
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @param value The segmentsOverlapPb to set.
       * @return This builder for chaining.
       */
      public Builder setSegmentsOverlapPb(org.apache.doris.proto.OlapFile.SegmentsOverlapPB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x10000000;
        segmentsOverlapPb_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * to indicate whether the data between the segments overlap
       * </pre>
       *
       * <code>optional .doris.SegmentsOverlapPB segments_overlap_pb = 51 [default = OVERLAP_UNKNOWN];</code>
       * @return This builder for chaining.
       */
      public Builder clearSegmentsOverlapPb() {
        bitField0_ = (bitField0_ & ~0x10000000);
        segmentsOverlapPb_ = 0;
        onChanged();
        return this;
      }

      private long compactionLevel_ ;
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @return Whether the compactionLevel field is set.
       */
      @java.lang.Override
      public boolean hasCompactionLevel() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @return The compactionLevel.
       */
      @java.lang.Override
      public long getCompactionLevel() {
        return compactionLevel_;
      }
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @param value The compactionLevel to set.
       * @return This builder for chaining.
       */
      public Builder setCompactionLevel(long value) {

        compactionLevel_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 compaction_level = 52 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompactionLevel() {
        bitField0_ = (bitField0_ & ~0x20000000);
        compactionLevel_ = 0L;
        onChanged();
        return this;
      }

      private long sourceTabletId_ ;
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @return Whether the sourceTabletId field is set.
       */
      @java.lang.Override
      public boolean hasSourceTabletId() {
        return ((bitField0_ & 0x40000000) != 0);
      }
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @return The sourceTabletId.
       */
      @java.lang.Override
      public long getSourceTabletId() {
        return sourceTabletId_;
      }
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @param value The sourceTabletId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceTabletId(long value) {

        sourceTabletId_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * For backup/restore, record the tablet id and rowset id of the source cluster.
       * </pre>
       *
       * <code>optional int64 source_tablet_id = 53;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceTabletId() {
        bitField0_ = (bitField0_ & ~0x40000000);
        sourceTabletId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object sourceRowsetId_ = "";
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return Whether the sourceRowsetId field is set.
       */
      public boolean hasSourceRowsetId() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return The sourceRowsetId.
       */
      public java.lang.String getSourceRowsetId() {
        java.lang.Object ref = sourceRowsetId_;
        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()) {
            sourceRowsetId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return The bytes for sourceRowsetId.
       */
      public com.google.protobuf.ByteString
          getSourceRowsetIdBytes() {
        java.lang.Object ref = sourceRowsetId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sourceRowsetId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @param value The sourceRowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceRowsetId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sourceRowsetId_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceRowsetId() {
        sourceRowsetId_ = getDefaultInstance().getSourceRowsetId();
        bitField0_ = (bitField0_ & ~0x80000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string source_rowset_id = 54;</code>
       * @param value The bytes for sourceRowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceRowsetIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        sourceRowsetId_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList segmentsFileSize_ = emptyLongList();
      private void ensureSegmentsFileSizeIsMutable() {
        if (!segmentsFileSize_.isModifiable()) {
          segmentsFileSize_ = makeMutableCopy(segmentsFileSize_);
        }
        bitField1_ |= 0x00000001;
      }
      /**
       * <pre>
       * cloud
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 100;</code>
       * @return A list containing the segmentsFileSize.
       */
      public java.util.List<java.lang.Long>
          getSegmentsFileSizeList() {
        segmentsFileSize_.makeImmutable();
        return segmentsFileSize_;
      }
      /**
       * <pre>
       * cloud
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 100;</code>
       * @return The count of segmentsFileSize.
       */
      public int getSegmentsFileSizeCount() {
        return segmentsFileSize_.size();
      }
      /**
       * <pre>
       * cloud
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 100;</code>
       * @param index The index of the element to return.
       * @return The segmentsFileSize at the given index.
       */
      public long getSegmentsFileSize(int index) {
        return segmentsFileSize_.getLong(index);
      }
      /**
       * <pre>
       * cloud
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 100;</code>
       * @param index The index to set the value at.
       * @param value The segmentsFileSize to set.
       * @return This builder for chaining.
       */
      public Builder setSegmentsFileSize(
          int index, long value) {

        ensureSegmentsFileSizeIsMutable();
        segmentsFileSize_.setLong(index, value);
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * cloud
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 100;</code>
       * @param value The segmentsFileSize to add.
       * @return This builder for chaining.
       */
      public Builder addSegmentsFileSize(long value) {

        ensureSegmentsFileSizeIsMutable();
        segmentsFileSize_.addLong(value);
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * cloud
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 100;</code>
       * @param values The segmentsFileSize to add.
       * @return This builder for chaining.
       */
      public Builder addAllSegmentsFileSize(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureSegmentsFileSizeIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, segmentsFileSize_);
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * cloud
       * the field is a vector, rename it
       * </pre>
       *
       * <code>repeated int64 segments_file_size = 100;</code>
       * @return This builder for chaining.
       */
      public Builder clearSegmentsFileSize() {
        segmentsFileSize_ = emptyLongList();
        bitField1_ = (bitField1_ & ~0x00000001);
        onChanged();
        return this;
      }

      private long indexId_ ;
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 101;</code>
       * @return Whether the indexId field is set.
       */
      @java.lang.Override
      public boolean hasIndexId() {
        return ((bitField1_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 101;</code>
       * @return The indexId.
       */
      @java.lang.Override
      public long getIndexId() {
        return indexId_;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 101;</code>
       * @param value The indexId to set.
       * @return This builder for chaining.
       */
      public Builder setIndexId(long value) {

        indexId_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int64 index_id = 101;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexId() {
        bitField1_ = (bitField1_ & ~0x00000002);
        indexId_ = 0L;
        onChanged();
        return this;
      }

      private int schemaVersion_ ;
      /**
       * <code>optional int32 schema_version = 102;</code>
       * @return Whether the schemaVersion field is set.
       */
      @java.lang.Override
      public boolean hasSchemaVersion() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int32 schema_version = 102;</code>
       * @return The schemaVersion.
       */
      @java.lang.Override
      public int getSchemaVersion() {
        return schemaVersion_;
      }
      /**
       * <code>optional int32 schema_version = 102;</code>
       * @param value The schemaVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaVersion(int value) {

        schemaVersion_ = value;
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 schema_version = 102;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaVersion() {
        bitField1_ = (bitField1_ & ~0x00000004);
        schemaVersion_ = 0;
        onChanged();
        return this;
      }

      private boolean enableSegmentsFileSize_ ;
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 103;</code>
       * @return Whether the enableSegmentsFileSize field is set.
       */
      @java.lang.Override
      public boolean hasEnableSegmentsFileSize() {
        return ((bitField1_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 103;</code>
       * @return The enableSegmentsFileSize.
       */
      @java.lang.Override
      public boolean getEnableSegmentsFileSize() {
        return enableSegmentsFileSize_;
      }
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 103;</code>
       * @param value The enableSegmentsFileSize to set.
       * @return This builder for chaining.
       */
      public Builder setEnableSegmentsFileSize(boolean value) {

        enableSegmentsFileSize_ = value;
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If enable_segments_file_size is false,
       * the segments_file_size maybe is empty or error
       * </pre>
       *
       * <code>optional bool enable_segments_file_size = 103;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableSegmentsFileSize() {
        bitField1_ = (bitField1_ & ~0x00000008);
        enableSegmentsFileSize_ = false;
        onChanged();
        return this;
      }

      private boolean hasVariantTypeInSchema_ ;
      /**
       * <pre>
       * extra info for variants
       * </pre>
       *
       * <code>optional bool has_variant_type_in_schema = 104;</code>
       * @return Whether the hasVariantTypeInSchema field is set.
       */
      @java.lang.Override
      public boolean hasHasVariantTypeInSchema() {
        return ((bitField1_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * extra info for variants
       * </pre>
       *
       * <code>optional bool has_variant_type_in_schema = 104;</code>
       * @return The hasVariantTypeInSchema.
       */
      @java.lang.Override
      public boolean getHasVariantTypeInSchema() {
        return hasVariantTypeInSchema_;
      }
      /**
       * <pre>
       * extra info for variants
       * </pre>
       *
       * <code>optional bool has_variant_type_in_schema = 104;</code>
       * @param value The hasVariantTypeInSchema to set.
       * @return This builder for chaining.
       */
      public Builder setHasVariantTypeInSchema(boolean value) {

        hasVariantTypeInSchema_ = value;
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * extra info for variants
       * </pre>
       *
       * <code>optional bool has_variant_type_in_schema = 104;</code>
       * @return This builder for chaining.
       */
      public Builder clearHasVariantTypeInSchema() {
        bitField1_ = (bitField1_ & ~0x00000010);
        hasVariantTypeInSchema_ = false;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.OlapFile.SchemaDictKeyList schemaDictKeyList_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.SchemaDictKeyList, org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder, org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder> schemaDictKeyListBuilder_;
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       * @return Whether the schemaDictKeyList field is set.
       */
      public boolean hasSchemaDictKeyList() {
        return ((bitField1_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       * @return The schemaDictKeyList.
       */
      public org.apache.doris.proto.OlapFile.SchemaDictKeyList getSchemaDictKeyList() {
        if (schemaDictKeyListBuilder_ == null) {
          return schemaDictKeyList_ == null ? org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
        } else {
          return schemaDictKeyListBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       */
      public Builder setSchemaDictKeyList(org.apache.doris.proto.OlapFile.SchemaDictKeyList value) {
        if (schemaDictKeyListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schemaDictKeyList_ = value;
        } else {
          schemaDictKeyListBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       */
      public Builder setSchemaDictKeyList(
          org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder builderForValue) {
        if (schemaDictKeyListBuilder_ == null) {
          schemaDictKeyList_ = builderForValue.build();
        } else {
          schemaDictKeyListBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       */
      public Builder mergeSchemaDictKeyList(org.apache.doris.proto.OlapFile.SchemaDictKeyList value) {
        if (schemaDictKeyListBuilder_ == null) {
          if (((bitField1_ & 0x00000020) != 0) &&
            schemaDictKeyList_ != null &&
            schemaDictKeyList_ != org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance()) {
            getSchemaDictKeyListBuilder().mergeFrom(value);
          } else {
            schemaDictKeyList_ = value;
          }
        } else {
          schemaDictKeyListBuilder_.mergeFrom(value);
        }
        if (schemaDictKeyList_ != null) {
          bitField1_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       */
      public Builder clearSchemaDictKeyList() {
        bitField1_ = (bitField1_ & ~0x00000020);
        schemaDictKeyList_ = null;
        if (schemaDictKeyListBuilder_ != null) {
          schemaDictKeyListBuilder_.dispose();
          schemaDictKeyListBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       */
      public org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder getSchemaDictKeyListBuilder() {
        bitField1_ |= 0x00000020;
        onChanged();
        return getSchemaDictKeyListFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       */
      public org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder getSchemaDictKeyListOrBuilder() {
        if (schemaDictKeyListBuilder_ != null) {
          return schemaDictKeyListBuilder_.getMessageOrBuilder();
        } else {
          return schemaDictKeyList_ == null ?
              org.apache.doris.proto.OlapFile.SchemaDictKeyList.getDefaultInstance() : schemaDictKeyList_;
        }
      }
      /**
       * <pre>
       * dict key lists for compress schema info
       * </pre>
       *
       * <code>optional .doris.SchemaDictKeyList schema_dict_key_list = 105;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.SchemaDictKeyList, org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder, org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder> 
          getSchemaDictKeyListFieldBuilder() {
        if (schemaDictKeyListBuilder_ == null) {
          schemaDictKeyListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.SchemaDictKeyList, org.apache.doris.proto.OlapFile.SchemaDictKeyList.Builder, org.apache.doris.proto.OlapFile.SchemaDictKeyListOrBuilder>(
                  getSchemaDictKeyList(),
                  getParentForChildren(),
                  isClean());
          schemaDictKeyList_ = null;
        }
        return schemaDictKeyListBuilder_;
      }

      private boolean enableInvertedIndexFileInfo_ ;
      /**
       * <code>optional bool enable_inverted_index_file_info = 106;</code>
       * @return Whether the enableInvertedIndexFileInfo field is set.
       */
      @java.lang.Override
      public boolean hasEnableInvertedIndexFileInfo() {
        return ((bitField1_ & 0x00000040) != 0);
      }
      /**
       * <code>optional bool enable_inverted_index_file_info = 106;</code>
       * @return The enableInvertedIndexFileInfo.
       */
      @java.lang.Override
      public boolean getEnableInvertedIndexFileInfo() {
        return enableInvertedIndexFileInfo_;
      }
      /**
       * <code>optional bool enable_inverted_index_file_info = 106;</code>
       * @param value The enableInvertedIndexFileInfo to set.
       * @return This builder for chaining.
       */
      public Builder setEnableInvertedIndexFileInfo(boolean value) {

        enableInvertedIndexFileInfo_ = value;
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable_inverted_index_file_info = 106;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableInvertedIndexFileInfo() {
        bitField1_ = (bitField1_ & ~0x00000040);
        enableInvertedIndexFileInfo_ = false;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> invertedIndexFileInfo_ =
        java.util.Collections.emptyList();
      private void ensureInvertedIndexFileInfoIsMutable() {
        if (!((bitField1_ & 0x00000080) != 0)) {
          invertedIndexFileInfo_ = new java.util.ArrayList<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo>(invertedIndexFileInfo_);
          bitField1_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> invertedIndexFileInfoBuilder_;

      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> getInvertedIndexFileInfoList() {
        if (invertedIndexFileInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(invertedIndexFileInfo_);
        } else {
          return invertedIndexFileInfoBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public int getInvertedIndexFileInfoCount() {
        if (invertedIndexFileInfoBuilder_ == null) {
          return invertedIndexFileInfo_.size();
        } else {
          return invertedIndexFileInfoBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo getInvertedIndexFileInfo(int index) {
        if (invertedIndexFileInfoBuilder_ == null) {
          return invertedIndexFileInfo_.get(index);
        } else {
          return invertedIndexFileInfoBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder setInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo value) {
        if (invertedIndexFileInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.set(index, value);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder setInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder builderForValue) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder addInvertedIndexFileInfo(org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo value) {
        if (invertedIndexFileInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(value);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder addInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo value) {
        if (invertedIndexFileInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(index, value);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder addInvertedIndexFileInfo(
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder builderForValue) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(builderForValue.build());
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder addInvertedIndexFileInfo(
          int index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder builderForValue) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder addAllInvertedIndexFileInfo(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo> values) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, invertedIndexFileInfo_);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder clearInvertedIndexFileInfo() {
        if (invertedIndexFileInfoBuilder_ == null) {
          invertedIndexFileInfo_ = java.util.Collections.emptyList();
          bitField1_ = (bitField1_ & ~0x00000080);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public Builder removeInvertedIndexFileInfo(int index) {
        if (invertedIndexFileInfoBuilder_ == null) {
          ensureInvertedIndexFileInfoIsMutable();
          invertedIndexFileInfo_.remove(index);
          onChanged();
        } else {
          invertedIndexFileInfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder getInvertedIndexFileInfoBuilder(
          int index) {
        return getInvertedIndexFileInfoFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder getInvertedIndexFileInfoOrBuilder(
          int index) {
        if (invertedIndexFileInfoBuilder_ == null) {
          return invertedIndexFileInfo_.get(index);  } else {
          return invertedIndexFileInfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
           getInvertedIndexFileInfoOrBuilderList() {
        if (invertedIndexFileInfoBuilder_ != null) {
          return invertedIndexFileInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(invertedIndexFileInfo_);
        }
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder addInvertedIndexFileInfoBuilder() {
        return getInvertedIndexFileInfoFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder addInvertedIndexFileInfoBuilder(
          int index) {
        return getInvertedIndexFileInfoFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.InvertedIndexFileInfo inverted_index_file_info = 107;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder> 
           getInvertedIndexFileInfoBuilderList() {
        return getInvertedIndexFileInfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder> 
          getInvertedIndexFileInfoFieldBuilder() {
        if (invertedIndexFileInfoBuilder_ == null) {
          invertedIndexFileInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfo.Builder, org.apache.doris.proto.OlapCommon.InvertedIndexFileInfoOrBuilder>(
                  invertedIndexFileInfo_,
                  ((bitField1_ & 0x00000080) != 0),
                  getParentForChildren(),
                  isClean());
          invertedIndexFileInfo_ = null;
        }
        return invertedIndexFileInfoBuilder_;
      }
      @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.RowsetMetaCloudPB)
    }

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

    public static org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RowsetMetaCloudPB>
        PARSER = new com.google.protobuf.AbstractParser<RowsetMetaCloudPB>() {
      @java.lang.Override
      public RowsetMetaCloudPB 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<RowsetMetaCloudPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional int64 row_num = 1;</code>
     * @return Whether the rowNum field is set.
     */
    boolean hasRowNum();
    /**
     * <code>optional int64 row_num = 1;</code>
     * @return The rowNum.
     */
    long getRowNum();

    /**
     * <code>optional int64 data_size = 2;</code>
     * @return Whether the dataSize field is set.
     */
    boolean hasDataSize();
    /**
     * <code>optional int64 data_size = 2;</code>
     * @return The dataSize.
     */
    long getDataSize();

    /**
     * <code>optional int64 index_size = 3;</code>
     * @return Whether the indexSize field is set.
     */
    boolean hasIndexSize();
    /**
     * <code>optional int64 index_size = 3;</code>
     * @return The indexSize.
     */
    long getIndexSize();

    /**
     * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
     * @return Whether the keyBounds field is set.
     */
    boolean hasKeyBounds();
    /**
     * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
     * @return The keyBounds.
     */
    org.apache.doris.proto.OlapFile.KeyBoundsPB getKeyBounds();
    /**
     * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
     */
    org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getKeyBoundsOrBuilder();
  }
  /**
   * Protobuf type {@code doris.SegmentStatisticsPB}
   */
  public static final class SegmentStatisticsPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.SegmentStatisticsPB)
      SegmentStatisticsPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SegmentStatisticsPB.newBuilder() to construct.
    private SegmentStatisticsPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SegmentStatisticsPB() {
    }

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

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

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

    private int bitField0_;
    public static final int ROW_NUM_FIELD_NUMBER = 1;
    private long rowNum_ = 0L;
    /**
     * <code>optional int64 row_num = 1;</code>
     * @return Whether the rowNum field is set.
     */
    @java.lang.Override
    public boolean hasRowNum() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 row_num = 1;</code>
     * @return The rowNum.
     */
    @java.lang.Override
    public long getRowNum() {
      return rowNum_;
    }

    public static final int DATA_SIZE_FIELD_NUMBER = 2;
    private long dataSize_ = 0L;
    /**
     * <code>optional int64 data_size = 2;</code>
     * @return Whether the dataSize field is set.
     */
    @java.lang.Override
    public boolean hasDataSize() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 data_size = 2;</code>
     * @return The dataSize.
     */
    @java.lang.Override
    public long getDataSize() {
      return dataSize_;
    }

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

    public static final int KEY_BOUNDS_FIELD_NUMBER = 4;
    private org.apache.doris.proto.OlapFile.KeyBoundsPB keyBounds_;
    /**
     * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
     * @return Whether the keyBounds field is set.
     */
    @java.lang.Override
    public boolean hasKeyBounds() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
     * @return The keyBounds.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.KeyBoundsPB getKeyBounds() {
      return keyBounds_ == null ? org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance() : keyBounds_;
    }
    /**
     * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getKeyBoundsOrBuilder() {
      return keyBounds_ == null ? org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance() : keyBounds_;
    }

    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 (hasKeyBounds()) {
        if (!getKeyBounds().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.writeInt64(1, rowNum_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, dataSize_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, indexSize_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(4, getKeyBounds());
      }
      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, rowNum_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, dataSize_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, indexSize_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getKeyBounds());
      }
      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.OlapFile.SegmentStatisticsPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.SegmentStatisticsPB other = (org.apache.doris.proto.OlapFile.SegmentStatisticsPB) obj;

      if (hasRowNum() != other.hasRowNum()) return false;
      if (hasRowNum()) {
        if (getRowNum()
            != other.getRowNum()) return false;
      }
      if (hasDataSize() != other.hasDataSize()) return false;
      if (hasDataSize()) {
        if (getDataSize()
            != other.getDataSize()) return false;
      }
      if (hasIndexSize() != other.hasIndexSize()) return false;
      if (hasIndexSize()) {
        if (getIndexSize()
            != other.getIndexSize()) return false;
      }
      if (hasKeyBounds() != other.hasKeyBounds()) return false;
      if (hasKeyBounds()) {
        if (!getKeyBounds()
            .equals(other.getKeyBounds())) 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 (hasRowNum()) {
        hash = (37 * hash) + ROW_NUM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRowNum());
      }
      if (hasDataSize()) {
        hash = (37 * hash) + DATA_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDataSize());
      }
      if (hasIndexSize()) {
        hash = (37 * hash) + INDEX_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexSize());
      }
      if (hasKeyBounds()) {
        hash = (37 * hash) + KEY_BOUNDS_FIELD_NUMBER;
        hash = (53 * hash) + getKeyBounds().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB 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.OlapFile.SegmentStatisticsPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB 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.OlapFile.SegmentStatisticsPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB 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.OlapFile.SegmentStatisticsPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB 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.OlapFile.SegmentStatisticsPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB 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.OlapFile.SegmentStatisticsPB 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.SegmentStatisticsPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.SegmentStatisticsPB)
        org.apache.doris.proto.OlapFile.SegmentStatisticsPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_SegmentStatisticsPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.SegmentStatisticsPB.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyBoundsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        rowNum_ = 0L;
        dataSize_ = 0L;
        indexSize_ = 0L;
        keyBounds_ = null;
        if (keyBoundsBuilder_ != null) {
          keyBoundsBuilder_.dispose();
          keyBoundsBuilder_ = null;
        }
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.SegmentStatisticsPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.rowNum_ = rowNum_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.dataSize_ = dataSize_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.indexSize_ = indexSize_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.keyBounds_ = keyBoundsBuilder_ == null
              ? keyBounds_
              : keyBoundsBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        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.OlapFile.SegmentStatisticsPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.SegmentStatisticsPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.SegmentStatisticsPB other) {
        if (other == org.apache.doris.proto.OlapFile.SegmentStatisticsPB.getDefaultInstance()) return this;
        if (other.hasRowNum()) {
          setRowNum(other.getRowNum());
        }
        if (other.hasDataSize()) {
          setDataSize(other.getDataSize());
        }
        if (other.hasIndexSize()) {
          setIndexSize(other.getIndexSize());
        }
        if (other.hasKeyBounds()) {
          mergeKeyBounds(other.getKeyBounds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (hasKeyBounds()) {
          if (!getKeyBounds().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: {
                rowNum_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                dataSize_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                indexSize_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                input.readMessage(
                    getKeyBoundsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 rowNum_ ;
      /**
       * <code>optional int64 row_num = 1;</code>
       * @return Whether the rowNum field is set.
       */
      @java.lang.Override
      public boolean hasRowNum() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 row_num = 1;</code>
       * @return The rowNum.
       */
      @java.lang.Override
      public long getRowNum() {
        return rowNum_;
      }
      /**
       * <code>optional int64 row_num = 1;</code>
       * @param value The rowNum to set.
       * @return This builder for chaining.
       */
      public Builder setRowNum(long value) {

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

      private long dataSize_ ;
      /**
       * <code>optional int64 data_size = 2;</code>
       * @return Whether the dataSize field is set.
       */
      @java.lang.Override
      public boolean hasDataSize() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 data_size = 2;</code>
       * @return The dataSize.
       */
      @java.lang.Override
      public long getDataSize() {
        return dataSize_;
      }
      /**
       * <code>optional int64 data_size = 2;</code>
       * @param value The dataSize to set.
       * @return This builder for chaining.
       */
      public Builder setDataSize(long value) {

        dataSize_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 data_size = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataSize() {
        bitField0_ = (bitField0_ & ~0x00000002);
        dataSize_ = 0L;
        onChanged();
        return this;
      }

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

        indexSize_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 index_size = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        indexSize_ = 0L;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.OlapFile.KeyBoundsPB keyBounds_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> keyBoundsBuilder_;
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       * @return Whether the keyBounds field is set.
       */
      public boolean hasKeyBounds() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       * @return The keyBounds.
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB getKeyBounds() {
        if (keyBoundsBuilder_ == null) {
          return keyBounds_ == null ? org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance() : keyBounds_;
        } else {
          return keyBoundsBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       */
      public Builder setKeyBounds(org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (keyBoundsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          keyBounds_ = value;
        } else {
          keyBoundsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       */
      public Builder setKeyBounds(
          org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder builderForValue) {
        if (keyBoundsBuilder_ == null) {
          keyBounds_ = builderForValue.build();
        } else {
          keyBoundsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       */
      public Builder mergeKeyBounds(org.apache.doris.proto.OlapFile.KeyBoundsPB value) {
        if (keyBoundsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            keyBounds_ != null &&
            keyBounds_ != org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance()) {
            getKeyBoundsBuilder().mergeFrom(value);
          } else {
            keyBounds_ = value;
          }
        } else {
          keyBoundsBuilder_.mergeFrom(value);
        }
        if (keyBounds_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       */
      public Builder clearKeyBounds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        keyBounds_ = null;
        if (keyBoundsBuilder_ != null) {
          keyBoundsBuilder_.dispose();
          keyBoundsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder getKeyBoundsBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getKeyBoundsFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder getKeyBoundsOrBuilder() {
        if (keyBoundsBuilder_ != null) {
          return keyBoundsBuilder_.getMessageOrBuilder();
        } else {
          return keyBounds_ == null ?
              org.apache.doris.proto.OlapFile.KeyBoundsPB.getDefaultInstance() : keyBounds_;
        }
      }
      /**
       * <code>optional .doris.KeyBoundsPB key_bounds = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder> 
          getKeyBoundsFieldBuilder() {
        if (keyBoundsBuilder_ == null) {
          keyBoundsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.KeyBoundsPB, org.apache.doris.proto.OlapFile.KeyBoundsPB.Builder, org.apache.doris.proto.OlapFile.KeyBoundsPBOrBuilder>(
                  getKeyBounds(),
                  getParentForChildren(),
                  isClean());
          keyBounds_ = null;
        }
        return keyBoundsBuilder_;
      }
      @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.SegmentStatisticsPB)
    }

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

    public static org.apache.doris.proto.OlapFile.SegmentStatisticsPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<SegmentStatisticsPB>
        PARSER = new com.google.protobuf.AbstractParser<SegmentStatisticsPB>() {
      @java.lang.Override
      public SegmentStatisticsPB 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<SegmentStatisticsPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>required string resource_id = 1;</code>
     * @return Whether the resourceId field is set.
     */
    boolean hasResourceId();
    /**
     * <code>required string resource_id = 1;</code>
     * @return The resourceId.
     */
    java.lang.String getResourceId();
    /**
     * <code>required string resource_id = 1;</code>
     * @return The bytes for resourceId.
     */
    com.google.protobuf.ByteString
        getResourceIdBytes();

    /**
     * <code>required int64 tablet_id = 2;</code>
     * @return Whether the tabletId field is set.
     */
    boolean hasTabletId();
    /**
     * <code>required int64 tablet_id = 2;</code>
     * @return The tabletId.
     */
    long getTabletId();

    /**
     * <code>required int64 num_segments = 3;</code>
     * @return Whether the numSegments field is set.
     */
    boolean hasNumSegments();
    /**
     * <code>required int64 num_segments = 3;</code>
     * @return The numSegments.
     */
    long getNumSegments();
  }
  /**
   * <pre>
   * kv value for reclaiming remote rowset
   * </pre>
   *
   * Protobuf type {@code doris.RemoteRowsetGcPB}
   */
  public static final class RemoteRowsetGcPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.RemoteRowsetGcPB)
      RemoteRowsetGcPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RemoteRowsetGcPB.newBuilder() to construct.
    private RemoteRowsetGcPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RemoteRowsetGcPB() {
      resourceId_ = "";
    }

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

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

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

    private int bitField0_;
    public static final int RESOURCE_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object resourceId_ = "";
    /**
     * <code>required string resource_id = 1;</code>
     * @return Whether the resourceId field is set.
     */
    @java.lang.Override
    public boolean hasResourceId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string resource_id = 1;</code>
     * @return The resourceId.
     */
    @java.lang.Override
    public java.lang.String getResourceId() {
      java.lang.Object ref = resourceId_;
      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()) {
          resourceId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string resource_id = 1;</code>
     * @return The bytes for resourceId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getResourceIdBytes() {
      java.lang.Object ref = resourceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resourceId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TABLET_ID_FIELD_NUMBER = 2;
    private long tabletId_ = 0L;
    /**
     * <code>required int64 tablet_id = 2;</code>
     * @return Whether the tabletId field is set.
     */
    @java.lang.Override
    public boolean hasTabletId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int64 tablet_id = 2;</code>
     * @return The tabletId.
     */
    @java.lang.Override
    public long getTabletId() {
      return tabletId_;
    }

    public static final int NUM_SEGMENTS_FIELD_NUMBER = 3;
    private long numSegments_ = 0L;
    /**
     * <code>required int64 num_segments = 3;</code>
     * @return Whether the numSegments field is set.
     */
    @java.lang.Override
    public boolean hasNumSegments() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required int64 num_segments = 3;</code>
     * @return The numSegments.
     */
    @java.lang.Override
    public long getNumSegments() {
      return numSegments_;
    }

    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 (!hasResourceId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTabletId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumSegments()) {
        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, resourceId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, tabletId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, numSegments_);
      }
      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, resourceId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, tabletId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, numSegments_);
      }
      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.OlapFile.RemoteRowsetGcPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.RemoteRowsetGcPB other = (org.apache.doris.proto.OlapFile.RemoteRowsetGcPB) obj;

      if (hasResourceId() != other.hasResourceId()) return false;
      if (hasResourceId()) {
        if (!getResourceId()
            .equals(other.getResourceId())) return false;
      }
      if (hasTabletId() != other.hasTabletId()) return false;
      if (hasTabletId()) {
        if (getTabletId()
            != other.getTabletId()) return false;
      }
      if (hasNumSegments() != other.hasNumSegments()) return false;
      if (hasNumSegments()) {
        if (getNumSegments()
            != other.getNumSegments()) 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 (hasResourceId()) {
        hash = (37 * hash) + RESOURCE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getResourceId().hashCode();
      }
      if (hasTabletId()) {
        hash = (37 * hash) + TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTabletId());
      }
      if (hasNumSegments()) {
        hash = (37 * hash) + NUM_SEGMENTS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNumSegments());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB 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.OlapFile.RemoteRowsetGcPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB 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.OlapFile.RemoteRowsetGcPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB 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.OlapFile.RemoteRowsetGcPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB 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.OlapFile.RemoteRowsetGcPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB 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.OlapFile.RemoteRowsetGcPB 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;
    }
    /**
     * <pre>
     * kv value for reclaiming remote rowset
     * </pre>
     *
     * Protobuf type {@code doris.RemoteRowsetGcPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.RemoteRowsetGcPB)
        org.apache.doris.proto.OlapFile.RemoteRowsetGcPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_RemoteRowsetGcPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.RemoteRowsetGcPB.newBuilder()
      private Builder() {

      }

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

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

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.RemoteRowsetGcPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.resourceId_ = resourceId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tabletId_ = tabletId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.numSegments_ = numSegments_;
          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.OlapFile.RemoteRowsetGcPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.RemoteRowsetGcPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.RemoteRowsetGcPB other) {
        if (other == org.apache.doris.proto.OlapFile.RemoteRowsetGcPB.getDefaultInstance()) return this;
        if (other.hasResourceId()) {
          resourceId_ = other.resourceId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasTabletId()) {
          setTabletId(other.getTabletId());
        }
        if (other.hasNumSegments()) {
          setNumSegments(other.getNumSegments());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasResourceId()) {
          return false;
        }
        if (!hasTabletId()) {
          return false;
        }
        if (!hasNumSegments()) {
          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: {
                resourceId_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                tabletId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                numSegments_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              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 resourceId_ = "";
      /**
       * <code>required string resource_id = 1;</code>
       * @return Whether the resourceId field is set.
       */
      public boolean hasResourceId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string resource_id = 1;</code>
       * @return The resourceId.
       */
      public java.lang.String getResourceId() {
        java.lang.Object ref = resourceId_;
        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()) {
            resourceId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string resource_id = 1;</code>
       * @return The bytes for resourceId.
       */
      public com.google.protobuf.ByteString
          getResourceIdBytes() {
        java.lang.Object ref = resourceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resourceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string resource_id = 1;</code>
       * @param value The resourceId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        resourceId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required string resource_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearResourceId() {
        resourceId_ = getDefaultInstance().getResourceId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>required string resource_id = 1;</code>
       * @param value The bytes for resourceId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        resourceId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private long tabletId_ ;
      /**
       * <code>required int64 tablet_id = 2;</code>
       * @return Whether the tabletId field is set.
       */
      @java.lang.Override
      public boolean hasTabletId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 tablet_id = 2;</code>
       * @return The tabletId.
       */
      @java.lang.Override
      public long getTabletId() {
        return tabletId_;
      }
      /**
       * <code>required int64 tablet_id = 2;</code>
       * @param value The tabletId to set.
       * @return This builder for chaining.
       */
      public Builder setTabletId(long value) {

        tabletId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 tablet_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        tabletId_ = 0L;
        onChanged();
        return this;
      }

      private long numSegments_ ;
      /**
       * <code>required int64 num_segments = 3;</code>
       * @return Whether the numSegments field is set.
       */
      @java.lang.Override
      public boolean hasNumSegments() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required int64 num_segments = 3;</code>
       * @return The numSegments.
       */
      @java.lang.Override
      public long getNumSegments() {
        return numSegments_;
      }
      /**
       * <code>required int64 num_segments = 3;</code>
       * @param value The numSegments to set.
       * @return This builder for chaining.
       */
      public Builder setNumSegments(long value) {

        numSegments_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 num_segments = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumSegments() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numSegments_ = 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.RemoteRowsetGcPB)
    }

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

    public static org.apache.doris.proto.OlapFile.RemoteRowsetGcPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RemoteRowsetGcPB>
        PARSER = new com.google.protobuf.AbstractParser<RemoteRowsetGcPB>() {
      @java.lang.Override
      public RemoteRowsetGcPB 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<RemoteRowsetGcPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>repeated string resource_ids = 1;</code>
     * @return A list containing the resourceIds.
     */
    java.util.List<java.lang.String>
        getResourceIdsList();
    /**
     * <code>repeated string resource_ids = 1;</code>
     * @return The count of resourceIds.
     */
    int getResourceIdsCount();
    /**
     * <code>repeated string resource_ids = 1;</code>
     * @param index The index of the element to return.
     * @return The resourceIds at the given index.
     */
    java.lang.String getResourceIds(int index);
    /**
     * <code>repeated string resource_ids = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the resourceIds at the given index.
     */
    com.google.protobuf.ByteString
        getResourceIdsBytes(int index);
  }
  /**
   * <pre>
   * kv value for reclaiming all remote rowsets of tablet
   * </pre>
   *
   * Protobuf type {@code doris.RemoteTabletGcPB}
   */
  public static final class RemoteTabletGcPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.RemoteTabletGcPB)
      RemoteTabletGcPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RemoteTabletGcPB.newBuilder() to construct.
    private RemoteTabletGcPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RemoteTabletGcPB() {
      resourceIds_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

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

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

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

    public static final int RESOURCE_IDS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList resourceIds_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string resource_ids = 1;</code>
     * @return A list containing the resourceIds.
     */
    public com.google.protobuf.ProtocolStringList
        getResourceIdsList() {
      return resourceIds_;
    }
    /**
     * <code>repeated string resource_ids = 1;</code>
     * @return The count of resourceIds.
     */
    public int getResourceIdsCount() {
      return resourceIds_.size();
    }
    /**
     * <code>repeated string resource_ids = 1;</code>
     * @param index The index of the element to return.
     * @return The resourceIds at the given index.
     */
    public java.lang.String getResourceIds(int index) {
      return resourceIds_.get(index);
    }
    /**
     * <code>repeated string resource_ids = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the resourceIds at the given index.
     */
    public com.google.protobuf.ByteString
        getResourceIdsBytes(int index) {
      return resourceIds_.getByteString(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;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < resourceIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, resourceIds_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < resourceIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(resourceIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getResourceIdsList().size();
      }
      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.OlapFile.RemoteTabletGcPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.RemoteTabletGcPB other = (org.apache.doris.proto.OlapFile.RemoteTabletGcPB) obj;

      if (!getResourceIdsList()
          .equals(other.getResourceIdsList())) 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 (getResourceIdsCount() > 0) {
        hash = (37 * hash) + RESOURCE_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getResourceIdsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB 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.OlapFile.RemoteTabletGcPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB 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.OlapFile.RemoteTabletGcPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB 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.OlapFile.RemoteTabletGcPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB 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.OlapFile.RemoteTabletGcPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB 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.OlapFile.RemoteTabletGcPB 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;
    }
    /**
     * <pre>
     * kv value for reclaiming all remote rowsets of tablet
     * </pre>
     *
     * Protobuf type {@code doris.RemoteTabletGcPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.RemoteTabletGcPB)
        org.apache.doris.proto.OlapFile.RemoteTabletGcPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_RemoteTabletGcPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.RemoteTabletGcPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        resourceIds_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.RemoteTabletGcPB result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          resourceIds_.makeImmutable();
          result.resourceIds_ = resourceIds_;
        }
      }

      @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.OlapFile.RemoteTabletGcPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.RemoteTabletGcPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.RemoteTabletGcPB other) {
        if (other == org.apache.doris.proto.OlapFile.RemoteTabletGcPB.getDefaultInstance()) return this;
        if (!other.resourceIds_.isEmpty()) {
          if (resourceIds_.isEmpty()) {
            resourceIds_ = other.resourceIds_;
            bitField0_ |= 0x00000001;
          } else {
            ensureResourceIdsIsMutable();
            resourceIds_.addAll(other.resourceIds_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureResourceIdsIsMutable();
                resourceIds_.add(bs);
                break;
              } // case 10
              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 com.google.protobuf.LazyStringArrayList resourceIds_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureResourceIdsIsMutable() {
        if (!resourceIds_.isModifiable()) {
          resourceIds_ = new com.google.protobuf.LazyStringArrayList(resourceIds_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @return A list containing the resourceIds.
       */
      public com.google.protobuf.ProtocolStringList
          getResourceIdsList() {
        resourceIds_.makeImmutable();
        return resourceIds_;
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @return The count of resourceIds.
       */
      public int getResourceIdsCount() {
        return resourceIds_.size();
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @param index The index of the element to return.
       * @return The resourceIds at the given index.
       */
      public java.lang.String getResourceIds(int index) {
        return resourceIds_.get(index);
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the resourceIds at the given index.
       */
      public com.google.protobuf.ByteString
          getResourceIdsBytes(int index) {
        return resourceIds_.getByteString(index);
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @param index The index to set the value at.
       * @param value The resourceIds to set.
       * @return This builder for chaining.
       */
      public Builder setResourceIds(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureResourceIdsIsMutable();
        resourceIds_.set(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @param value The resourceIds to add.
       * @return This builder for chaining.
       */
      public Builder addResourceIds(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureResourceIdsIsMutable();
        resourceIds_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @param values The resourceIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllResourceIds(
          java.lang.Iterable<java.lang.String> values) {
        ensureResourceIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, resourceIds_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearResourceIds() {
        resourceIds_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string resource_ids = 1;</code>
       * @param value The bytes of the resourceIds to add.
       * @return This builder for chaining.
       */
      public Builder addResourceIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureResourceIdsIsMutable();
        resourceIds_.add(value);
        bitField0_ |= 0x00000001;
        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.RemoteTabletGcPB)
    }

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

    public static org.apache.doris.proto.OlapFile.RemoteTabletGcPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RemoteTabletGcPB>
        PARSER = new com.google.protobuf.AbstractParser<RemoteTabletGcPB>() {
      @java.lang.Override
      public RemoteTabletGcPB 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<RemoteTabletGcPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * This field is useless, but could not removed, not depend on it
     * </pre>
     *
     * <code>required int32 version = 1;</code>
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * <pre>
     * This field is useless, but could not removed, not depend on it
     * </pre>
     *
     * <code>required int32 version = 1;</code>
     * @return The version.
     */
    int getVersion();

    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @return A list containing the subPredicates.
     */
    java.util.List<java.lang.String>
        getSubPredicatesList();
    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @return The count of subPredicates.
     */
    int getSubPredicatesCount();
    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @param index The index of the element to return.
     * @return The subPredicates at the given index.
     */
    java.lang.String getSubPredicates(int index);
    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the subPredicates at the given index.
     */
    com.google.protobuf.ByteString
        getSubPredicatesBytes(int index);

    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.InPredicatePB> 
        getInPredicatesList();
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    org.apache.doris.proto.OlapFile.InPredicatePB getInPredicates(int index);
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    int getInPredicatesCount();
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder> 
        getInPredicatesOrBuilderList();
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder getInPredicatesOrBuilder(
        int index);

    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.DeleteSubPredicatePB> 
        getSubPredicatesV2List();
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    org.apache.doris.proto.OlapFile.DeleteSubPredicatePB getSubPredicatesV2(int index);
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    int getSubPredicatesV2Count();
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder> 
        getSubPredicatesV2OrBuilderList();
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder getSubPredicatesV2OrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code doris.DeletePredicatePB}
   */
  public static final class DeletePredicatePB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.DeletePredicatePB)
      DeletePredicatePBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeletePredicatePB.newBuilder() to construct.
    private DeletePredicatePB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeletePredicatePB() {
      subPredicates_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      inPredicates_ = java.util.Collections.emptyList();
      subPredicatesV2_ = java.util.Collections.emptyList();
    }

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

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

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

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private int version_ = 0;
    /**
     * <pre>
     * This field is useless, but could not removed, not depend on it
     * </pre>
     *
     * <code>required int32 version = 1;</code>
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * This field is useless, but could not removed, not depend on it
     * </pre>
     *
     * <code>required int32 version = 1;</code>
     * @return The version.
     */
    @java.lang.Override
    public int getVersion() {
      return version_;
    }

    public static final int SUB_PREDICATES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList subPredicates_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @return A list containing the subPredicates.
     */
    public com.google.protobuf.ProtocolStringList
        getSubPredicatesList() {
      return subPredicates_;
    }
    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @return The count of subPredicates.
     */
    public int getSubPredicatesCount() {
      return subPredicates_.size();
    }
    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @param index The index of the element to return.
     * @return The subPredicates at the given index.
     */
    public java.lang.String getSubPredicates(int index) {
      return subPredicates_.get(index);
    }
    /**
     * <code>repeated string sub_predicates = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the subPredicates at the given index.
     */
    public com.google.protobuf.ByteString
        getSubPredicatesBytes(int index) {
      return subPredicates_.getByteString(index);
    }

    public static final int IN_PREDICATES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.InPredicatePB> inPredicates_;
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.InPredicatePB> getInPredicatesList() {
      return inPredicates_;
    }
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder> 
        getInPredicatesOrBuilderList() {
      return inPredicates_;
    }
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    @java.lang.Override
    public int getInPredicatesCount() {
      return inPredicates_.size();
    }
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.InPredicatePB getInPredicates(int index) {
      return inPredicates_.get(index);
    }
    /**
     * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder getInPredicatesOrBuilder(
        int index) {
      return inPredicates_.get(index);
    }

    public static final int SUB_PREDICATES_V2_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.DeleteSubPredicatePB> subPredicatesV2_;
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.DeleteSubPredicatePB> getSubPredicatesV2List() {
      return subPredicatesV2_;
    }
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder> 
        getSubPredicatesV2OrBuilderList() {
      return subPredicatesV2_;
    }
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    @java.lang.Override
    public int getSubPredicatesV2Count() {
      return subPredicatesV2_.size();
    }
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeleteSubPredicatePB getSubPredicatesV2(int index) {
      return subPredicatesV2_.get(index);
    }
    /**
     * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder getSubPredicatesV2OrBuilder(
        int index) {
      return subPredicatesV2_.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 (!hasVersion()) {
        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.writeInt32(1, version_);
      }
      for (int i = 0; i < subPredicates_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, subPredicates_.getRaw(i));
      }
      for (int i = 0; i < inPredicates_.size(); i++) {
        output.writeMessage(3, inPredicates_.get(i));
      }
      for (int i = 0; i < subPredicatesV2_.size(); i++) {
        output.writeMessage(4, subPredicatesV2_.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
          .computeInt32Size(1, version_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < subPredicates_.size(); i++) {
          dataSize += computeStringSizeNoTag(subPredicates_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getSubPredicatesList().size();
      }
      for (int i = 0; i < inPredicates_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, inPredicates_.get(i));
      }
      for (int i = 0; i < subPredicatesV2_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, subPredicatesV2_.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.OlapFile.DeletePredicatePB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.DeletePredicatePB other = (org.apache.doris.proto.OlapFile.DeletePredicatePB) obj;

      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (!getSubPredicatesList()
          .equals(other.getSubPredicatesList())) return false;
      if (!getInPredicatesList()
          .equals(other.getInPredicatesList())) return false;
      if (!getSubPredicatesV2List()
          .equals(other.getSubPredicatesV2List())) 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 (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion();
      }
      if (getSubPredicatesCount() > 0) {
        hash = (37 * hash) + SUB_PREDICATES_FIELD_NUMBER;
        hash = (53 * hash) + getSubPredicatesList().hashCode();
      }
      if (getInPredicatesCount() > 0) {
        hash = (37 * hash) + IN_PREDICATES_FIELD_NUMBER;
        hash = (53 * hash) + getInPredicatesList().hashCode();
      }
      if (getSubPredicatesV2Count() > 0) {
        hash = (37 * hash) + SUB_PREDICATES_V2_FIELD_NUMBER;
        hash = (53 * hash) + getSubPredicatesV2List().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.DeletePredicatePB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeletePredicatePB 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.OlapFile.DeletePredicatePB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeletePredicatePB 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.OlapFile.DeletePredicatePB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeletePredicatePB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.DeletePredicatePB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.DeletePredicatePB 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.OlapFile.DeletePredicatePB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.DeletePredicatePB 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.OlapFile.DeletePredicatePB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.DeletePredicatePB 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.OlapFile.DeletePredicatePB 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.DeletePredicatePB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.DeletePredicatePB)
        org.apache.doris.proto.OlapFile.DeletePredicatePBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_DeletePredicatePB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.DeletePredicatePB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        version_ = 0;
        subPredicates_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        if (inPredicatesBuilder_ == null) {
          inPredicates_ = java.util.Collections.emptyList();
        } else {
          inPredicates_ = null;
          inPredicatesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (subPredicatesV2Builder_ == null) {
          subPredicatesV2_ = java.util.Collections.emptyList();
        } else {
          subPredicatesV2_ = null;
          subPredicatesV2Builder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.DeletePredicatePB result) {
        if (inPredicatesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            inPredicates_ = java.util.Collections.unmodifiableList(inPredicates_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.inPredicates_ = inPredicates_;
        } else {
          result.inPredicates_ = inPredicatesBuilder_.build();
        }
        if (subPredicatesV2Builder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            subPredicatesV2_ = java.util.Collections.unmodifiableList(subPredicatesV2_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.subPredicatesV2_ = subPredicatesV2_;
        } else {
          result.subPredicatesV2_ = subPredicatesV2Builder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.DeletePredicatePB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          subPredicates_.makeImmutable();
          result.subPredicates_ = subPredicates_;
        }
        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.OlapFile.DeletePredicatePB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.DeletePredicatePB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.DeletePredicatePB other) {
        if (other == org.apache.doris.proto.OlapFile.DeletePredicatePB.getDefaultInstance()) return this;
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (!other.subPredicates_.isEmpty()) {
          if (subPredicates_.isEmpty()) {
            subPredicates_ = other.subPredicates_;
            bitField0_ |= 0x00000002;
          } else {
            ensureSubPredicatesIsMutable();
            subPredicates_.addAll(other.subPredicates_);
          }
          onChanged();
        }
        if (inPredicatesBuilder_ == null) {
          if (!other.inPredicates_.isEmpty()) {
            if (inPredicates_.isEmpty()) {
              inPredicates_ = other.inPredicates_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureInPredicatesIsMutable();
              inPredicates_.addAll(other.inPredicates_);
            }
            onChanged();
          }
        } else {
          if (!other.inPredicates_.isEmpty()) {
            if (inPredicatesBuilder_.isEmpty()) {
              inPredicatesBuilder_.dispose();
              inPredicatesBuilder_ = null;
              inPredicates_ = other.inPredicates_;
              bitField0_ = (bitField0_ & ~0x00000004);
              inPredicatesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getInPredicatesFieldBuilder() : null;
            } else {
              inPredicatesBuilder_.addAllMessages(other.inPredicates_);
            }
          }
        }
        if (subPredicatesV2Builder_ == null) {
          if (!other.subPredicatesV2_.isEmpty()) {
            if (subPredicatesV2_.isEmpty()) {
              subPredicatesV2_ = other.subPredicatesV2_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureSubPredicatesV2IsMutable();
              subPredicatesV2_.addAll(other.subPredicatesV2_);
            }
            onChanged();
          }
        } else {
          if (!other.subPredicatesV2_.isEmpty()) {
            if (subPredicatesV2Builder_.isEmpty()) {
              subPredicatesV2Builder_.dispose();
              subPredicatesV2Builder_ = null;
              subPredicatesV2_ = other.subPredicatesV2_;
              bitField0_ = (bitField0_ & ~0x00000008);
              subPredicatesV2Builder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSubPredicatesV2FieldBuilder() : null;
            } else {
              subPredicatesV2Builder_.addAllMessages(other.subPredicatesV2_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasVersion()) {
          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: {
                version_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureSubPredicatesIsMutable();
                subPredicates_.add(bs);
                break;
              } // case 18
              case 26: {
                org.apache.doris.proto.OlapFile.InPredicatePB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.InPredicatePB.PARSER,
                        extensionRegistry);
                if (inPredicatesBuilder_ == null) {
                  ensureInPredicatesIsMutable();
                  inPredicates_.add(m);
                } else {
                  inPredicatesBuilder_.addMessage(m);
                }
                break;
              } // case 26
              case 34: {
                org.apache.doris.proto.OlapFile.DeleteSubPredicatePB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.PARSER,
                        extensionRegistry);
                if (subPredicatesV2Builder_ == null) {
                  ensureSubPredicatesV2IsMutable();
                  subPredicatesV2_.add(m);
                } else {
                  subPredicatesV2Builder_.addMessage(m);
                }
                break;
              } // case 34
              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 version_ ;
      /**
       * <pre>
       * This field is useless, but could not removed, not depend on it
       * </pre>
       *
       * <code>required int32 version = 1;</code>
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * This field is useless, but could not removed, not depend on it
       * </pre>
       *
       * <code>required int32 version = 1;</code>
       * @return The version.
       */
      @java.lang.Override
      public int getVersion() {
        return version_;
      }
      /**
       * <pre>
       * This field is useless, but could not removed, not depend on it
       * </pre>
       *
       * <code>required int32 version = 1;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(int value) {

        version_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * This field is useless, but could not removed, not depend on it
       * </pre>
       *
       * <code>required int32 version = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList subPredicates_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureSubPredicatesIsMutable() {
        if (!subPredicates_.isModifiable()) {
          subPredicates_ = new com.google.protobuf.LazyStringArrayList(subPredicates_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @return A list containing the subPredicates.
       */
      public com.google.protobuf.ProtocolStringList
          getSubPredicatesList() {
        subPredicates_.makeImmutable();
        return subPredicates_;
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @return The count of subPredicates.
       */
      public int getSubPredicatesCount() {
        return subPredicates_.size();
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @param index The index of the element to return.
       * @return The subPredicates at the given index.
       */
      public java.lang.String getSubPredicates(int index) {
        return subPredicates_.get(index);
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the subPredicates at the given index.
       */
      public com.google.protobuf.ByteString
          getSubPredicatesBytes(int index) {
        return subPredicates_.getByteString(index);
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @param index The index to set the value at.
       * @param value The subPredicates to set.
       * @return This builder for chaining.
       */
      public Builder setSubPredicates(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureSubPredicatesIsMutable();
        subPredicates_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @param value The subPredicates to add.
       * @return This builder for chaining.
       */
      public Builder addSubPredicates(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureSubPredicatesIsMutable();
        subPredicates_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @param values The subPredicates to add.
       * @return This builder for chaining.
       */
      public Builder addAllSubPredicates(
          java.lang.Iterable<java.lang.String> values) {
        ensureSubPredicatesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, subPredicates_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubPredicates() {
        subPredicates_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string sub_predicates = 2;</code>
       * @param value The bytes of the subPredicates to add.
       * @return This builder for chaining.
       */
      public Builder addSubPredicatesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureSubPredicatesIsMutable();
        subPredicates_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.InPredicatePB> inPredicates_ =
        java.util.Collections.emptyList();
      private void ensureInPredicatesIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          inPredicates_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.InPredicatePB>(inPredicates_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.InPredicatePB, org.apache.doris.proto.OlapFile.InPredicatePB.Builder, org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder> inPredicatesBuilder_;

      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.InPredicatePB> getInPredicatesList() {
        if (inPredicatesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(inPredicates_);
        } else {
          return inPredicatesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public int getInPredicatesCount() {
        if (inPredicatesBuilder_ == null) {
          return inPredicates_.size();
        } else {
          return inPredicatesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public org.apache.doris.proto.OlapFile.InPredicatePB getInPredicates(int index) {
        if (inPredicatesBuilder_ == null) {
          return inPredicates_.get(index);
        } else {
          return inPredicatesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder setInPredicates(
          int index, org.apache.doris.proto.OlapFile.InPredicatePB value) {
        if (inPredicatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInPredicatesIsMutable();
          inPredicates_.set(index, value);
          onChanged();
        } else {
          inPredicatesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder setInPredicates(
          int index, org.apache.doris.proto.OlapFile.InPredicatePB.Builder builderForValue) {
        if (inPredicatesBuilder_ == null) {
          ensureInPredicatesIsMutable();
          inPredicates_.set(index, builderForValue.build());
          onChanged();
        } else {
          inPredicatesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder addInPredicates(org.apache.doris.proto.OlapFile.InPredicatePB value) {
        if (inPredicatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInPredicatesIsMutable();
          inPredicates_.add(value);
          onChanged();
        } else {
          inPredicatesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder addInPredicates(
          int index, org.apache.doris.proto.OlapFile.InPredicatePB value) {
        if (inPredicatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInPredicatesIsMutable();
          inPredicates_.add(index, value);
          onChanged();
        } else {
          inPredicatesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder addInPredicates(
          org.apache.doris.proto.OlapFile.InPredicatePB.Builder builderForValue) {
        if (inPredicatesBuilder_ == null) {
          ensureInPredicatesIsMutable();
          inPredicates_.add(builderForValue.build());
          onChanged();
        } else {
          inPredicatesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder addInPredicates(
          int index, org.apache.doris.proto.OlapFile.InPredicatePB.Builder builderForValue) {
        if (inPredicatesBuilder_ == null) {
          ensureInPredicatesIsMutable();
          inPredicates_.add(index, builderForValue.build());
          onChanged();
        } else {
          inPredicatesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder addAllInPredicates(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.InPredicatePB> values) {
        if (inPredicatesBuilder_ == null) {
          ensureInPredicatesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, inPredicates_);
          onChanged();
        } else {
          inPredicatesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder clearInPredicates() {
        if (inPredicatesBuilder_ == null) {
          inPredicates_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          inPredicatesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public Builder removeInPredicates(int index) {
        if (inPredicatesBuilder_ == null) {
          ensureInPredicatesIsMutable();
          inPredicates_.remove(index);
          onChanged();
        } else {
          inPredicatesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public org.apache.doris.proto.OlapFile.InPredicatePB.Builder getInPredicatesBuilder(
          int index) {
        return getInPredicatesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder getInPredicatesOrBuilder(
          int index) {
        if (inPredicatesBuilder_ == null) {
          return inPredicates_.get(index);  } else {
          return inPredicatesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder> 
           getInPredicatesOrBuilderList() {
        if (inPredicatesBuilder_ != null) {
          return inPredicatesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(inPredicates_);
        }
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public org.apache.doris.proto.OlapFile.InPredicatePB.Builder addInPredicatesBuilder() {
        return getInPredicatesFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.InPredicatePB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public org.apache.doris.proto.OlapFile.InPredicatePB.Builder addInPredicatesBuilder(
          int index) {
        return getInPredicatesFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.InPredicatePB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.InPredicatePB in_predicates = 3;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.InPredicatePB.Builder> 
           getInPredicatesBuilderList() {
        return getInPredicatesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.InPredicatePB, org.apache.doris.proto.OlapFile.InPredicatePB.Builder, org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder> 
          getInPredicatesFieldBuilder() {
        if (inPredicatesBuilder_ == null) {
          inPredicatesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.InPredicatePB, org.apache.doris.proto.OlapFile.InPredicatePB.Builder, org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder>(
                  inPredicates_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          inPredicates_ = null;
        }
        return inPredicatesBuilder_;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.DeleteSubPredicatePB> subPredicatesV2_ =
        java.util.Collections.emptyList();
      private void ensureSubPredicatesV2IsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          subPredicatesV2_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.DeleteSubPredicatePB>(subPredicatesV2_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeleteSubPredicatePB, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder, org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder> subPredicatesV2Builder_;

      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.DeleteSubPredicatePB> getSubPredicatesV2List() {
        if (subPredicatesV2Builder_ == null) {
          return java.util.Collections.unmodifiableList(subPredicatesV2_);
        } else {
          return subPredicatesV2Builder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public int getSubPredicatesV2Count() {
        if (subPredicatesV2Builder_ == null) {
          return subPredicatesV2_.size();
        } else {
          return subPredicatesV2Builder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteSubPredicatePB getSubPredicatesV2(int index) {
        if (subPredicatesV2Builder_ == null) {
          return subPredicatesV2_.get(index);
        } else {
          return subPredicatesV2Builder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder setSubPredicatesV2(
          int index, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB value) {
        if (subPredicatesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubPredicatesV2IsMutable();
          subPredicatesV2_.set(index, value);
          onChanged();
        } else {
          subPredicatesV2Builder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder setSubPredicatesV2(
          int index, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder builderForValue) {
        if (subPredicatesV2Builder_ == null) {
          ensureSubPredicatesV2IsMutable();
          subPredicatesV2_.set(index, builderForValue.build());
          onChanged();
        } else {
          subPredicatesV2Builder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder addSubPredicatesV2(org.apache.doris.proto.OlapFile.DeleteSubPredicatePB value) {
        if (subPredicatesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubPredicatesV2IsMutable();
          subPredicatesV2_.add(value);
          onChanged();
        } else {
          subPredicatesV2Builder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder addSubPredicatesV2(
          int index, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB value) {
        if (subPredicatesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubPredicatesV2IsMutable();
          subPredicatesV2_.add(index, value);
          onChanged();
        } else {
          subPredicatesV2Builder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder addSubPredicatesV2(
          org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder builderForValue) {
        if (subPredicatesV2Builder_ == null) {
          ensureSubPredicatesV2IsMutable();
          subPredicatesV2_.add(builderForValue.build());
          onChanged();
        } else {
          subPredicatesV2Builder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder addSubPredicatesV2(
          int index, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder builderForValue) {
        if (subPredicatesV2Builder_ == null) {
          ensureSubPredicatesV2IsMutable();
          subPredicatesV2_.add(index, builderForValue.build());
          onChanged();
        } else {
          subPredicatesV2Builder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder addAllSubPredicatesV2(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.DeleteSubPredicatePB> values) {
        if (subPredicatesV2Builder_ == null) {
          ensureSubPredicatesV2IsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, subPredicatesV2_);
          onChanged();
        } else {
          subPredicatesV2Builder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder clearSubPredicatesV2() {
        if (subPredicatesV2Builder_ == null) {
          subPredicatesV2_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          subPredicatesV2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public Builder removeSubPredicatesV2(int index) {
        if (subPredicatesV2Builder_ == null) {
          ensureSubPredicatesV2IsMutable();
          subPredicatesV2_.remove(index);
          onChanged();
        } else {
          subPredicatesV2Builder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder getSubPredicatesV2Builder(
          int index) {
        return getSubPredicatesV2FieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder getSubPredicatesV2OrBuilder(
          int index) {
        if (subPredicatesV2Builder_ == null) {
          return subPredicatesV2_.get(index);  } else {
          return subPredicatesV2Builder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder> 
           getSubPredicatesV2OrBuilderList() {
        if (subPredicatesV2Builder_ != null) {
          return subPredicatesV2Builder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(subPredicatesV2_);
        }
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder addSubPredicatesV2Builder() {
        return getSubPredicatesV2FieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder addSubPredicatesV2Builder(
          int index) {
        return getSubPredicatesV2FieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.DeleteSubPredicatePB sub_predicates_v2 = 4;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder> 
           getSubPredicatesV2BuilderList() {
        return getSubPredicatesV2FieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeleteSubPredicatePB, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder, org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder> 
          getSubPredicatesV2FieldBuilder() {
        if (subPredicatesV2Builder_ == null) {
          subPredicatesV2Builder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.DeleteSubPredicatePB, org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.Builder, org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder>(
                  subPredicatesV2_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          subPredicatesV2_ = null;
        }
        return subPredicatesV2Builder_;
      }
      @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.DeletePredicatePB)
    }

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

    public static org.apache.doris.proto.OlapFile.DeletePredicatePB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DeletePredicatePB>
        PARSER = new com.google.protobuf.AbstractParser<DeletePredicatePB>() {
      @java.lang.Override
      public DeletePredicatePB 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<DeletePredicatePB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional int32 column_unique_id = 1;</code>
     * @return Whether the columnUniqueId field is set.
     */
    boolean hasColumnUniqueId();
    /**
     * <code>optional int32 column_unique_id = 1;</code>
     * @return The columnUniqueId.
     */
    int getColumnUniqueId();

    /**
     * <code>optional string column_name = 2;</code>
     * @return Whether the columnName field is set.
     */
    boolean hasColumnName();
    /**
     * <code>optional string column_name = 2;</code>
     * @return The columnName.
     */
    java.lang.String getColumnName();
    /**
     * <code>optional string column_name = 2;</code>
     * @return The bytes for columnName.
     */
    com.google.protobuf.ByteString
        getColumnNameBytes();

    /**
     * <code>optional string op = 3;</code>
     * @return Whether the op field is set.
     */
    boolean hasOp();
    /**
     * <code>optional string op = 3;</code>
     * @return The op.
     */
    java.lang.String getOp();
    /**
     * <code>optional string op = 3;</code>
     * @return The bytes for op.
     */
    com.google.protobuf.ByteString
        getOpBytes();

    /**
     * <code>optional string cond_value = 4;</code>
     * @return Whether the condValue field is set.
     */
    boolean hasCondValue();
    /**
     * <code>optional string cond_value = 4;</code>
     * @return The condValue.
     */
    java.lang.String getCondValue();
    /**
     * <code>optional string cond_value = 4;</code>
     * @return The bytes for condValue.
     */
    com.google.protobuf.ByteString
        getCondValueBytes();
  }
  /**
   * Protobuf type {@code doris.DeleteSubPredicatePB}
   */
  public static final class DeleteSubPredicatePB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.DeleteSubPredicatePB)
      DeleteSubPredicatePBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteSubPredicatePB.newBuilder() to construct.
    private DeleteSubPredicatePB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteSubPredicatePB() {
      columnName_ = "";
      op_ = "";
      condValue_ = "";
    }

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

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

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

    private int bitField0_;
    public static final int COLUMN_UNIQUE_ID_FIELD_NUMBER = 1;
    private int columnUniqueId_ = 0;
    /**
     * <code>optional int32 column_unique_id = 1;</code>
     * @return Whether the columnUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasColumnUniqueId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 column_unique_id = 1;</code>
     * @return The columnUniqueId.
     */
    @java.lang.Override
    public int getColumnUniqueId() {
      return columnUniqueId_;
    }

    public static final int COLUMN_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object columnName_ = "";
    /**
     * <code>optional string column_name = 2;</code>
     * @return Whether the columnName field is set.
     */
    @java.lang.Override
    public boolean hasColumnName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string column_name = 2;</code>
     * @return The columnName.
     */
    @java.lang.Override
    public java.lang.String getColumnName() {
      java.lang.Object ref = columnName_;
      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()) {
          columnName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string column_name = 2;</code>
     * @return The bytes for columnName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColumnNameBytes() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        columnName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OP_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object op_ = "";
    /**
     * <code>optional string op = 3;</code>
     * @return Whether the op field is set.
     */
    @java.lang.Override
    public boolean hasOp() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string op = 3;</code>
     * @return The op.
     */
    @java.lang.Override
    public java.lang.String getOp() {
      java.lang.Object ref = op_;
      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()) {
          op_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string op = 3;</code>
     * @return The bytes for op.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOpBytes() {
      java.lang.Object ref = op_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        op_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COND_VALUE_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object condValue_ = "";
    /**
     * <code>optional string cond_value = 4;</code>
     * @return Whether the condValue field is set.
     */
    @java.lang.Override
    public boolean hasCondValue() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string cond_value = 4;</code>
     * @return The condValue.
     */
    @java.lang.Override
    public java.lang.String getCondValue() {
      java.lang.Object ref = condValue_;
      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()) {
          condValue_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string cond_value = 4;</code>
     * @return The bytes for condValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCondValueBytes() {
      java.lang.Object ref = condValue_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        condValue_ = 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;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, columnUniqueId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, columnName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, op_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, condValue_);
      }
      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
          .computeInt32Size(1, columnUniqueId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, columnName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, op_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, condValue_);
      }
      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.OlapFile.DeleteSubPredicatePB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.DeleteSubPredicatePB other = (org.apache.doris.proto.OlapFile.DeleteSubPredicatePB) obj;

      if (hasColumnUniqueId() != other.hasColumnUniqueId()) return false;
      if (hasColumnUniqueId()) {
        if (getColumnUniqueId()
            != other.getColumnUniqueId()) return false;
      }
      if (hasColumnName() != other.hasColumnName()) return false;
      if (hasColumnName()) {
        if (!getColumnName()
            .equals(other.getColumnName())) return false;
      }
      if (hasOp() != other.hasOp()) return false;
      if (hasOp()) {
        if (!getOp()
            .equals(other.getOp())) return false;
      }
      if (hasCondValue() != other.hasCondValue()) return false;
      if (hasCondValue()) {
        if (!getCondValue()
            .equals(other.getCondValue())) 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 (hasColumnUniqueId()) {
        hash = (37 * hash) + COLUMN_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getColumnUniqueId();
      }
      if (hasColumnName()) {
        hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getColumnName().hashCode();
      }
      if (hasOp()) {
        hash = (37 * hash) + OP_FIELD_NUMBER;
        hash = (53 * hash) + getOp().hashCode();
      }
      if (hasCondValue()) {
        hash = (37 * hash) + COND_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getCondValue().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB 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.OlapFile.DeleteSubPredicatePB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB 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.OlapFile.DeleteSubPredicatePB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB 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.OlapFile.DeleteSubPredicatePB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB 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.OlapFile.DeleteSubPredicatePB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB 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.OlapFile.DeleteSubPredicatePB 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.DeleteSubPredicatePB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.DeleteSubPredicatePB)
        org.apache.doris.proto.OlapFile.DeleteSubPredicatePBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_DeleteSubPredicatePB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        columnUniqueId_ = 0;
        columnName_ = "";
        op_ = "";
        condValue_ = "";
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.DeleteSubPredicatePB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.columnUniqueId_ = columnUniqueId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.columnName_ = columnName_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.op_ = op_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.condValue_ = condValue_;
          to_bitField0_ |= 0x00000008;
        }
        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.OlapFile.DeleteSubPredicatePB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.DeleteSubPredicatePB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.DeleteSubPredicatePB other) {
        if (other == org.apache.doris.proto.OlapFile.DeleteSubPredicatePB.getDefaultInstance()) return this;
        if (other.hasColumnUniqueId()) {
          setColumnUniqueId(other.getColumnUniqueId());
        }
        if (other.hasColumnName()) {
          columnName_ = other.columnName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasOp()) {
          op_ = other.op_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasCondValue()) {
          condValue_ = other.condValue_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                columnUniqueId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                columnName_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                op_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                condValue_ = input.readBytes();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 columnUniqueId_ ;
      /**
       * <code>optional int32 column_unique_id = 1;</code>
       * @return Whether the columnUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasColumnUniqueId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int32 column_unique_id = 1;</code>
       * @return The columnUniqueId.
       */
      @java.lang.Override
      public int getColumnUniqueId() {
        return columnUniqueId_;
      }
      /**
       * <code>optional int32 column_unique_id = 1;</code>
       * @param value The columnUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setColumnUniqueId(int value) {

        columnUniqueId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 column_unique_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnUniqueId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        columnUniqueId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object columnName_ = "";
      /**
       * <code>optional string column_name = 2;</code>
       * @return Whether the columnName field is set.
       */
      public boolean hasColumnName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string column_name = 2;</code>
       * @return The columnName.
       */
      public java.lang.String getColumnName() {
        java.lang.Object ref = columnName_;
        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()) {
            columnName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string column_name = 2;</code>
       * @return The bytes for columnName.
       */
      public com.google.protobuf.ByteString
          getColumnNameBytes() {
        java.lang.Object ref = columnName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string column_name = 2;</code>
       * @param value The columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        columnName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional string column_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnName() {
        columnName_ = getDefaultInstance().getColumnName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>optional string column_name = 2;</code>
       * @param value The bytes for columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        columnName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object op_ = "";
      /**
       * <code>optional string op = 3;</code>
       * @return Whether the op field is set.
       */
      public boolean hasOp() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string op = 3;</code>
       * @return The op.
       */
      public java.lang.String getOp() {
        java.lang.Object ref = op_;
        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()) {
            op_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string op = 3;</code>
       * @return The bytes for op.
       */
      public com.google.protobuf.ByteString
          getOpBytes() {
        java.lang.Object ref = op_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          op_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string op = 3;</code>
       * @param value The op to set.
       * @return This builder for chaining.
       */
      public Builder setOp(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        op_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional string op = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOp() {
        op_ = getDefaultInstance().getOp();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>optional string op = 3;</code>
       * @param value The bytes for op to set.
       * @return This builder for chaining.
       */
      public Builder setOpBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        op_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object condValue_ = "";
      /**
       * <code>optional string cond_value = 4;</code>
       * @return Whether the condValue field is set.
       */
      public boolean hasCondValue() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string cond_value = 4;</code>
       * @return The condValue.
       */
      public java.lang.String getCondValue() {
        java.lang.Object ref = condValue_;
        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()) {
            condValue_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string cond_value = 4;</code>
       * @return The bytes for condValue.
       */
      public com.google.protobuf.ByteString
          getCondValueBytes() {
        java.lang.Object ref = condValue_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          condValue_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string cond_value = 4;</code>
       * @param value The condValue to set.
       * @return This builder for chaining.
       */
      public Builder setCondValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        condValue_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional string cond_value = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearCondValue() {
        condValue_ = getDefaultInstance().getCondValue();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>optional string cond_value = 4;</code>
       * @param value The bytes for condValue to set.
       * @return This builder for chaining.
       */
      public Builder setCondValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        condValue_ = value;
        bitField0_ |= 0x00000008;
        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.DeleteSubPredicatePB)
    }

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

    public static org.apache.doris.proto.OlapFile.DeleteSubPredicatePB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DeleteSubPredicatePB>
        PARSER = new com.google.protobuf.AbstractParser<DeleteSubPredicatePB>() {
      @java.lang.Override
      public DeleteSubPredicatePB 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<DeleteSubPredicatePB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional string column_name = 1;</code>
     * @return Whether the columnName field is set.
     */
    boolean hasColumnName();
    /**
     * <code>optional string column_name = 1;</code>
     * @return The columnName.
     */
    java.lang.String getColumnName();
    /**
     * <code>optional string column_name = 1;</code>
     * @return The bytes for columnName.
     */
    com.google.protobuf.ByteString
        getColumnNameBytes();

    /**
     * <code>optional bool is_not_in = 2;</code>
     * @return Whether the isNotIn field is set.
     */
    boolean hasIsNotIn();
    /**
     * <code>optional bool is_not_in = 2;</code>
     * @return The isNotIn.
     */
    boolean getIsNotIn();

    /**
     * <code>repeated string values = 3;</code>
     * @return A list containing the values.
     */
    java.util.List<java.lang.String>
        getValuesList();
    /**
     * <code>repeated string values = 3;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated string values = 3;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    java.lang.String getValues(int index);
    /**
     * <code>repeated string values = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the values at the given index.
     */
    com.google.protobuf.ByteString
        getValuesBytes(int index);

    /**
     * <code>optional int32 column_unique_id = 4;</code>
     * @return Whether the columnUniqueId field is set.
     */
    boolean hasColumnUniqueId();
    /**
     * <code>optional int32 column_unique_id = 4;</code>
     * @return The columnUniqueId.
     */
    int getColumnUniqueId();
  }
  /**
   * Protobuf type {@code doris.InPredicatePB}
   */
  public static final class InPredicatePB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.InPredicatePB)
      InPredicatePBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InPredicatePB.newBuilder() to construct.
    private InPredicatePB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InPredicatePB() {
      columnName_ = "";
      values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

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

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

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

    private int bitField0_;
    public static final int COLUMN_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object columnName_ = "";
    /**
     * <code>optional string column_name = 1;</code>
     * @return Whether the columnName field is set.
     */
    @java.lang.Override
    public boolean hasColumnName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string column_name = 1;</code>
     * @return The columnName.
     */
    @java.lang.Override
    public java.lang.String getColumnName() {
      java.lang.Object ref = columnName_;
      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()) {
          columnName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string column_name = 1;</code>
     * @return The bytes for columnName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColumnNameBytes() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        columnName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS_NOT_IN_FIELD_NUMBER = 2;
    private boolean isNotIn_ = false;
    /**
     * <code>optional bool is_not_in = 2;</code>
     * @return Whether the isNotIn field is set.
     */
    @java.lang.Override
    public boolean hasIsNotIn() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bool is_not_in = 2;</code>
     * @return The isNotIn.
     */
    @java.lang.Override
    public boolean getIsNotIn() {
      return isNotIn_;
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList values_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string values = 3;</code>
     * @return A list containing the values.
     */
    public com.google.protobuf.ProtocolStringList
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated string values = 3;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated string values = 3;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public java.lang.String getValues(int index) {
      return values_.get(index);
    }
    /**
     * <code>repeated string values = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the values at the given index.
     */
    public com.google.protobuf.ByteString
        getValuesBytes(int index) {
      return values_.getByteString(index);
    }

    public static final int COLUMN_UNIQUE_ID_FIELD_NUMBER = 4;
    private int columnUniqueId_ = 0;
    /**
     * <code>optional int32 column_unique_id = 4;</code>
     * @return Whether the columnUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasColumnUniqueId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int32 column_unique_id = 4;</code>
     * @return The columnUniqueId.
     */
    @java.lang.Override
    public int getColumnUniqueId() {
      return columnUniqueId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 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, columnName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, isNotIn_);
      }
      for (int i = 0; i < values_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, values_.getRaw(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(4, columnUniqueId_);
      }
      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, columnName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isNotIn_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += computeStringSizeNoTag(values_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, columnUniqueId_);
      }
      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.OlapFile.InPredicatePB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.InPredicatePB other = (org.apache.doris.proto.OlapFile.InPredicatePB) obj;

      if (hasColumnName() != other.hasColumnName()) return false;
      if (hasColumnName()) {
        if (!getColumnName()
            .equals(other.getColumnName())) return false;
      }
      if (hasIsNotIn() != other.hasIsNotIn()) return false;
      if (hasIsNotIn()) {
        if (getIsNotIn()
            != other.getIsNotIn()) return false;
      }
      if (!getValuesList()
          .equals(other.getValuesList())) return false;
      if (hasColumnUniqueId() != other.hasColumnUniqueId()) return false;
      if (hasColumnUniqueId()) {
        if (getColumnUniqueId()
            != other.getColumnUniqueId()) 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 (hasColumnName()) {
        hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getColumnName().hashCode();
      }
      if (hasIsNotIn()) {
        hash = (37 * hash) + IS_NOT_IN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsNotIn());
      }
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      if (hasColumnUniqueId()) {
        hash = (37 * hash) + COLUMN_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getColumnUniqueId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.InPredicatePB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.InPredicatePB 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.OlapFile.InPredicatePB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.InPredicatePB 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.OlapFile.InPredicatePB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.InPredicatePB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.InPredicatePB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.InPredicatePB 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.OlapFile.InPredicatePB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.InPredicatePB 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.OlapFile.InPredicatePB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.InPredicatePB 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.OlapFile.InPredicatePB 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.InPredicatePB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.InPredicatePB)
        org.apache.doris.proto.OlapFile.InPredicatePBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_InPredicatePB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.InPredicatePB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        columnName_ = "";
        isNotIn_ = false;
        values_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        columnUniqueId_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.InPredicatePB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.columnName_ = columnName_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.isNotIn_ = isNotIn_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.columnUniqueId_ = columnUniqueId_;
          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.OlapFile.InPredicatePB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.InPredicatePB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.InPredicatePB other) {
        if (other == org.apache.doris.proto.OlapFile.InPredicatePB.getDefaultInstance()) return this;
        if (other.hasColumnName()) {
          columnName_ = other.columnName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasIsNotIn()) {
          setIsNotIn(other.getIsNotIn());
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            bitField0_ |= 0x00000004;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        if (other.hasColumnUniqueId()) {
          setColumnUniqueId(other.getColumnUniqueId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                columnName_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                isNotIn_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureValuesIsMutable();
                values_.add(bs);
                break;
              } // case 26
              case 32: {
                columnUniqueId_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              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 columnName_ = "";
      /**
       * <code>optional string column_name = 1;</code>
       * @return Whether the columnName field is set.
       */
      public boolean hasColumnName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string column_name = 1;</code>
       * @return The columnName.
       */
      public java.lang.String getColumnName() {
        java.lang.Object ref = columnName_;
        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()) {
            columnName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string column_name = 1;</code>
       * @return The bytes for columnName.
       */
      public com.google.protobuf.ByteString
          getColumnNameBytes() {
        java.lang.Object ref = columnName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string column_name = 1;</code>
       * @param value The columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        columnName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional string column_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnName() {
        columnName_ = getDefaultInstance().getColumnName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>optional string column_name = 1;</code>
       * @param value The bytes for columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        columnName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private boolean isNotIn_ ;
      /**
       * <code>optional bool is_not_in = 2;</code>
       * @return Whether the isNotIn field is set.
       */
      @java.lang.Override
      public boolean hasIsNotIn() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional bool is_not_in = 2;</code>
       * @return The isNotIn.
       */
      @java.lang.Override
      public boolean getIsNotIn() {
        return isNotIn_;
      }
      /**
       * <code>optional bool is_not_in = 2;</code>
       * @param value The isNotIn to set.
       * @return This builder for chaining.
       */
      public Builder setIsNotIn(boolean value) {

        isNotIn_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_not_in = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsNotIn() {
        bitField0_ = (bitField0_ & ~0x00000002);
        isNotIn_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = new com.google.protobuf.LazyStringArrayList(values_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>repeated string values = 3;</code>
       * @return A list containing the values.
       */
      public com.google.protobuf.ProtocolStringList
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated string values = 3;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated string values = 3;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated string values = 3;</code>
       * @param index The index of the value to return.
       * @return The bytes of the values at the given index.
       */
      public com.google.protobuf.ByteString
          getValuesBytes(int index) {
        return values_.getByteString(index);
      }
      /**
       * <code>repeated string values = 3;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.set(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 3;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.add(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 3;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<java.lang.String> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 3;</code>
       * @param value The bytes of the values to add.
       * @return This builder for chaining.
       */
      public Builder addValuesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.add(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private int columnUniqueId_ ;
      /**
       * <code>optional int32 column_unique_id = 4;</code>
       * @return Whether the columnUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasColumnUniqueId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int32 column_unique_id = 4;</code>
       * @return The columnUniqueId.
       */
      @java.lang.Override
      public int getColumnUniqueId() {
        return columnUniqueId_;
      }
      /**
       * <code>optional int32 column_unique_id = 4;</code>
       * @param value The columnUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setColumnUniqueId(int value) {

        columnUniqueId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 column_unique_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnUniqueId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        columnUniqueId_ = 0;
        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.InPredicatePB)
    }

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

    public static org.apache.doris.proto.OlapFile.InPredicatePB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<InPredicatePB>
        PARSER = new com.google.protobuf.AbstractParser<InPredicatePB>() {
      @java.lang.Override
      public InPredicatePB 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<InPredicatePB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional .doris.AlterTabletState alter_state = 1;</code>
     * @return Whether the alterState field is set.
     */
    boolean hasAlterState();
    /**
     * <code>optional .doris.AlterTabletState alter_state = 1;</code>
     * @return The alterState.
     */
    org.apache.doris.proto.OlapFile.AlterTabletState getAlterState();

    /**
     * <code>required int64 related_tablet_id = 2;</code>
     * @return Whether the relatedTabletId field is set.
     */
    boolean hasRelatedTabletId();
    /**
     * <code>required int64 related_tablet_id = 2;</code>
     * @return The relatedTabletId.
     */
    long getRelatedTabletId();

    /**
     * <code>optional int32 related_schema_hash = 3;</code>
     * @return Whether the relatedSchemaHash field is set.
     */
    boolean hasRelatedSchemaHash();
    /**
     * <code>optional int32 related_schema_hash = 3;</code>
     * @return The relatedSchemaHash.
     */
    int getRelatedSchemaHash();

    /**
     * <code>optional .doris.AlterTabletType alter_type = 4;</code>
     * @return Whether the alterType field is set.
     */
    boolean hasAlterType();
    /**
     * <code>optional .doris.AlterTabletType alter_type = 4;</code>
     * @return The alterType.
     */
    org.apache.doris.proto.OlapFile.AlterTabletType getAlterType();
  }
  /**
   * Protobuf type {@code doris.AlterTabletPB}
   */
  public static final class AlterTabletPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.AlterTabletPB)
      AlterTabletPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AlterTabletPB.newBuilder() to construct.
    private AlterTabletPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AlterTabletPB() {
      alterState_ = 0;
      alterType_ = 1;
    }

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

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

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

    private int bitField0_;
    public static final int ALTER_STATE_FIELD_NUMBER = 1;
    private int alterState_ = 0;
    /**
     * <code>optional .doris.AlterTabletState alter_state = 1;</code>
     * @return Whether the alterState field is set.
     */
    @java.lang.Override public boolean hasAlterState() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .doris.AlterTabletState alter_state = 1;</code>
     * @return The alterState.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.AlterTabletState getAlterState() {
      org.apache.doris.proto.OlapFile.AlterTabletState result = org.apache.doris.proto.OlapFile.AlterTabletState.forNumber(alterState_);
      return result == null ? org.apache.doris.proto.OlapFile.AlterTabletState.ALTER_PREPARED : result;
    }

    public static final int RELATED_TABLET_ID_FIELD_NUMBER = 2;
    private long relatedTabletId_ = 0L;
    /**
     * <code>required int64 related_tablet_id = 2;</code>
     * @return Whether the relatedTabletId field is set.
     */
    @java.lang.Override
    public boolean hasRelatedTabletId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int64 related_tablet_id = 2;</code>
     * @return The relatedTabletId.
     */
    @java.lang.Override
    public long getRelatedTabletId() {
      return relatedTabletId_;
    }

    public static final int RELATED_SCHEMA_HASH_FIELD_NUMBER = 3;
    private int relatedSchemaHash_ = 0;
    /**
     * <code>optional int32 related_schema_hash = 3;</code>
     * @return Whether the relatedSchemaHash field is set.
     */
    @java.lang.Override
    public boolean hasRelatedSchemaHash() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int32 related_schema_hash = 3;</code>
     * @return The relatedSchemaHash.
     */
    @java.lang.Override
    public int getRelatedSchemaHash() {
      return relatedSchemaHash_;
    }

    public static final int ALTER_TYPE_FIELD_NUMBER = 4;
    private int alterType_ = 1;
    /**
     * <code>optional .doris.AlterTabletType alter_type = 4;</code>
     * @return Whether the alterType field is set.
     */
    @java.lang.Override public boolean hasAlterType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .doris.AlterTabletType alter_type = 4;</code>
     * @return The alterType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.AlterTabletType getAlterType() {
      org.apache.doris.proto.OlapFile.AlterTabletType result = org.apache.doris.proto.OlapFile.AlterTabletType.forNumber(alterType_);
      return result == null ? org.apache.doris.proto.OlapFile.AlterTabletType.SCHEMA_CHANGE : result;
    }

    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 (!hasRelatedTabletId()) {
        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.writeEnum(1, alterState_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, relatedTabletId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(3, relatedSchemaHash_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(4, alterType_);
      }
      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
          .computeEnumSize(1, alterState_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, relatedTabletId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, relatedSchemaHash_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, alterType_);
      }
      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.OlapFile.AlterTabletPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.AlterTabletPB other = (org.apache.doris.proto.OlapFile.AlterTabletPB) obj;

      if (hasAlterState() != other.hasAlterState()) return false;
      if (hasAlterState()) {
        if (alterState_ != other.alterState_) return false;
      }
      if (hasRelatedTabletId() != other.hasRelatedTabletId()) return false;
      if (hasRelatedTabletId()) {
        if (getRelatedTabletId()
            != other.getRelatedTabletId()) return false;
      }
      if (hasRelatedSchemaHash() != other.hasRelatedSchemaHash()) return false;
      if (hasRelatedSchemaHash()) {
        if (getRelatedSchemaHash()
            != other.getRelatedSchemaHash()) return false;
      }
      if (hasAlterType() != other.hasAlterType()) return false;
      if (hasAlterType()) {
        if (alterType_ != other.alterType_) 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 (hasAlterState()) {
        hash = (37 * hash) + ALTER_STATE_FIELD_NUMBER;
        hash = (53 * hash) + alterState_;
      }
      if (hasRelatedTabletId()) {
        hash = (37 * hash) + RELATED_TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRelatedTabletId());
      }
      if (hasRelatedSchemaHash()) {
        hash = (37 * hash) + RELATED_SCHEMA_HASH_FIELD_NUMBER;
        hash = (53 * hash) + getRelatedSchemaHash();
      }
      if (hasAlterType()) {
        hash = (37 * hash) + ALTER_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + alterType_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.AlterTabletPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.AlterTabletPB 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.OlapFile.AlterTabletPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.AlterTabletPB 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.OlapFile.AlterTabletPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.AlterTabletPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.AlterTabletPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.AlterTabletPB 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.OlapFile.AlterTabletPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.AlterTabletPB 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.OlapFile.AlterTabletPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.AlterTabletPB 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.OlapFile.AlterTabletPB 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.AlterTabletPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.AlterTabletPB)
        org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_AlterTabletPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.AlterTabletPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        alterState_ = 0;
        relatedTabletId_ = 0L;
        relatedSchemaHash_ = 0;
        alterType_ = 1;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.AlterTabletPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.alterState_ = alterState_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.relatedTabletId_ = relatedTabletId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.relatedSchemaHash_ = relatedSchemaHash_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.alterType_ = alterType_;
          to_bitField0_ |= 0x00000008;
        }
        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.OlapFile.AlterTabletPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.AlterTabletPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.AlterTabletPB other) {
        if (other == org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance()) return this;
        if (other.hasAlterState()) {
          setAlterState(other.getAlterState());
        }
        if (other.hasRelatedTabletId()) {
          setRelatedTabletId(other.getRelatedTabletId());
        }
        if (other.hasRelatedSchemaHash()) {
          setRelatedSchemaHash(other.getRelatedSchemaHash());
        }
        if (other.hasAlterType()) {
          setAlterType(other.getAlterType());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRelatedTabletId()) {
          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: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.AlterTabletState tmpValue =
                    org.apache.doris.proto.OlapFile.AlterTabletState.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  alterState_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              case 16: {
                relatedTabletId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                relatedSchemaHash_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.AlterTabletType tmpValue =
                    org.apache.doris.proto.OlapFile.AlterTabletType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(4, tmpRaw);
                } else {
                  alterType_ = tmpRaw;
                  bitField0_ |= 0x00000008;
                }
                break;
              } // case 32
              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 alterState_ = 0;
      /**
       * <code>optional .doris.AlterTabletState alter_state = 1;</code>
       * @return Whether the alterState field is set.
       */
      @java.lang.Override public boolean hasAlterState() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .doris.AlterTabletState alter_state = 1;</code>
       * @return The alterState.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.AlterTabletState getAlterState() {
        org.apache.doris.proto.OlapFile.AlterTabletState result = org.apache.doris.proto.OlapFile.AlterTabletState.forNumber(alterState_);
        return result == null ? org.apache.doris.proto.OlapFile.AlterTabletState.ALTER_PREPARED : result;
      }
      /**
       * <code>optional .doris.AlterTabletState alter_state = 1;</code>
       * @param value The alterState to set.
       * @return This builder for chaining.
       */
      public Builder setAlterState(org.apache.doris.proto.OlapFile.AlterTabletState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        alterState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletState alter_state = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlterState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        alterState_ = 0;
        onChanged();
        return this;
      }

      private long relatedTabletId_ ;
      /**
       * <code>required int64 related_tablet_id = 2;</code>
       * @return Whether the relatedTabletId field is set.
       */
      @java.lang.Override
      public boolean hasRelatedTabletId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 related_tablet_id = 2;</code>
       * @return The relatedTabletId.
       */
      @java.lang.Override
      public long getRelatedTabletId() {
        return relatedTabletId_;
      }
      /**
       * <code>required int64 related_tablet_id = 2;</code>
       * @param value The relatedTabletId to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedTabletId(long value) {

        relatedTabletId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 related_tablet_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRelatedTabletId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        relatedTabletId_ = 0L;
        onChanged();
        return this;
      }

      private int relatedSchemaHash_ ;
      /**
       * <code>optional int32 related_schema_hash = 3;</code>
       * @return Whether the relatedSchemaHash field is set.
       */
      @java.lang.Override
      public boolean hasRelatedSchemaHash() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int32 related_schema_hash = 3;</code>
       * @return The relatedSchemaHash.
       */
      @java.lang.Override
      public int getRelatedSchemaHash() {
        return relatedSchemaHash_;
      }
      /**
       * <code>optional int32 related_schema_hash = 3;</code>
       * @param value The relatedSchemaHash to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedSchemaHash(int value) {

        relatedSchemaHash_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 related_schema_hash = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRelatedSchemaHash() {
        bitField0_ = (bitField0_ & ~0x00000004);
        relatedSchemaHash_ = 0;
        onChanged();
        return this;
      }

      private int alterType_ = 1;
      /**
       * <code>optional .doris.AlterTabletType alter_type = 4;</code>
       * @return Whether the alterType field is set.
       */
      @java.lang.Override public boolean hasAlterType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .doris.AlterTabletType alter_type = 4;</code>
       * @return The alterType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.AlterTabletType getAlterType() {
        org.apache.doris.proto.OlapFile.AlterTabletType result = org.apache.doris.proto.OlapFile.AlterTabletType.forNumber(alterType_);
        return result == null ? org.apache.doris.proto.OlapFile.AlterTabletType.SCHEMA_CHANGE : result;
      }
      /**
       * <code>optional .doris.AlterTabletType alter_type = 4;</code>
       * @param value The alterType to set.
       * @return This builder for chaining.
       */
      public Builder setAlterType(org.apache.doris.proto.OlapFile.AlterTabletType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        alterType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletType alter_type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlterType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        alterType_ = 1;
        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.AlterTabletPB)
    }

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

    public static org.apache.doris.proto.OlapFile.AlterTabletPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AlterTabletPB>
        PARSER = new com.google.protobuf.AbstractParser<AlterTabletPB>() {
      @java.lang.Override
      public AlterTabletPB 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<AlterTabletPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * ColumnMessage.unique_id
     * </pre>
     *
     * <code>required int32 unique_id = 1;</code>
     * @return Whether the uniqueId field is set.
     */
    boolean hasUniqueId();
    /**
     * <pre>
     * ColumnMessage.unique_id
     * </pre>
     *
     * <code>required int32 unique_id = 1;</code>
     * @return The uniqueId.
     */
    int getUniqueId();

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

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

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

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

    /**
     * <pre>
     * ColumnMessage.is_allow_null
     * </pre>
     *
     * <code>optional bool is_nullable = 6;</code>
     * @return Whether the isNullable field is set.
     */
    boolean hasIsNullable();
    /**
     * <pre>
     * ColumnMessage.is_allow_null
     * </pre>
     *
     * <code>optional bool is_nullable = 6;</code>
     * @return The isNullable.
     */
    boolean getIsNullable();

    /**
     * <pre>
     * ColumnMessage.default_value ?
     * </pre>
     *
     * <code>optional bytes default_value = 7;</code>
     * @return Whether the defaultValue field is set.
     */
    boolean hasDefaultValue();
    /**
     * <pre>
     * ColumnMessage.default_value ?
     * </pre>
     *
     * <code>optional bytes default_value = 7;</code>
     * @return The defaultValue.
     */
    com.google.protobuf.ByteString getDefaultValue();

    /**
     * <pre>
     * ColumnMessage.precision
     * </pre>
     *
     * <code>optional int32 precision = 8;</code>
     * @return Whether the precision field is set.
     */
    boolean hasPrecision();
    /**
     * <pre>
     * ColumnMessage.precision
     * </pre>
     *
     * <code>optional int32 precision = 8;</code>
     * @return The precision.
     */
    int getPrecision();

    /**
     * <pre>
     * ColumnMessage.frac
     * </pre>
     *
     * <code>optional int32 frac = 9;</code>
     * @return Whether the frac field is set.
     */
    boolean hasFrac();
    /**
     * <pre>
     * ColumnMessage.frac
     * </pre>
     *
     * <code>optional int32 frac = 9;</code>
     * @return The frac.
     */
    int getFrac();

    /**
     * <pre>
     * ColumnMessage.length
     * </pre>
     *
     * <code>optional int32 length = 10;</code>
     * @return Whether the length field is set.
     */
    boolean hasLength();
    /**
     * <pre>
     * ColumnMessage.length
     * </pre>
     *
     * <code>optional int32 length = 10;</code>
     * @return The length.
     */
    int getLength();

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

    /**
     * <pre>
     * ColumnMessage.is_bf_column
     * </pre>
     *
     * <code>optional bool is_bf_column = 12;</code>
     * @return Whether the isBfColumn field is set.
     */
    boolean hasIsBfColumn();
    /**
     * <pre>
     * ColumnMessage.is_bf_column
     * </pre>
     *
     * <code>optional bool is_bf_column = 12;</code>
     * @return The isBfColumn.
     */
    boolean getIsBfColumn();

    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 referenced_column_id = 13;</code>
     * @return Whether the referencedColumnId field is set.
     */
    boolean hasReferencedColumnId();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 referenced_column_id = 13;</code>
     * @return The referencedColumnId.
     */
    int getReferencedColumnId();

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

    /**
     * <pre>
     * ColumnMessage.has_bitmap_index
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 15 [default = false];</code>
     * @return Whether the hasBitmapIndex field is set.
     */
    boolean hasHasBitmapIndex();
    /**
     * <pre>
     * ColumnMessage.has_bitmap_index
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 15 [default = false];</code>
     * @return The hasBitmapIndex.
     */
    boolean getHasBitmapIndex();

    /**
     * <code>optional bool visible = 16 [default = true];</code>
     * @return Whether the visible field is set.
     */
    boolean hasVisible();
    /**
     * <code>optional bool visible = 16 [default = true];</code>
     * @return The visible.
     */
    boolean getVisible();

    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> 
        getChildrenColumnsList();
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPB getChildrenColumns(int index);
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    int getChildrenColumnsCount();
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getChildrenColumnsOrBuilderList();
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getChildrenColumnsOrBuilder(
        int index);

    /**
     * <code>repeated string children_column_names = 18;</code>
     * @return A list containing the childrenColumnNames.
     */
    java.util.List<java.lang.String>
        getChildrenColumnNamesList();
    /**
     * <code>repeated string children_column_names = 18;</code>
     * @return The count of childrenColumnNames.
     */
    int getChildrenColumnNamesCount();
    /**
     * <code>repeated string children_column_names = 18;</code>
     * @param index The index of the element to return.
     * @return The childrenColumnNames at the given index.
     */
    java.lang.String getChildrenColumnNames(int index);
    /**
     * <code>repeated string children_column_names = 18;</code>
     * @param index The index of the value to return.
     * @return The bytes of the childrenColumnNames at the given index.
     */
    com.google.protobuf.ByteString
        getChildrenColumnNamesBytes(int index);

    /**
     * <code>optional bool result_is_nullable = 19;</code>
     * @return Whether the resultIsNullable field is set.
     */
    boolean hasResultIsNullable();
    /**
     * <code>optional bool result_is_nullable = 19;</code>
     * @return The resultIsNullable.
     */
    boolean getResultIsNullable();

    /**
     * <pre>
     * persist info for PathInData that represents path in document, e.g. JSON.
     * </pre>
     *
     * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
     * @return Whether the columnPathInfo field is set.
     */
    boolean hasColumnPathInfo();
    /**
     * <pre>
     * persist info for PathInData that represents path in document, e.g. JSON.
     * </pre>
     *
     * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
     * @return The columnPathInfo.
     */
    doris.segment_v2.SegmentV2.ColumnPathInfo getColumnPathInfo();
    /**
     * <pre>
     * persist info for PathInData that represents path in document, e.g. JSON.
     * </pre>
     *
     * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
     */
    doris.segment_v2.SegmentV2.ColumnPathInfoOrBuilder getColumnPathInfoOrBuilder();

    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> 
        getSparseColumnsList();
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPB getSparseColumns(int index);
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    int getSparseColumnsCount();
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getSparseColumnsOrBuilderList();
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getSparseColumnsOrBuilder(
        int index);

    /**
     * <code>optional bool is_auto_increment = 22;</code>
     * @return Whether the isAutoIncrement field is set.
     */
    boolean hasIsAutoIncrement();
    /**
     * <code>optional bool is_auto_increment = 22;</code>
     * @return The isAutoIncrement.
     */
    boolean getIsAutoIncrement();

    /**
     * <pre>
     * only reference by variant sparse columns
     * </pre>
     *
     * <code>optional int32 parent_unique_id = 23;</code>
     * @return Whether the parentUniqueId field is set.
     */
    boolean hasParentUniqueId();
    /**
     * <pre>
     * only reference by variant sparse columns
     * </pre>
     *
     * <code>optional int32 parent_unique_id = 23;</code>
     * @return The parentUniqueId.
     */
    int getParentUniqueId();

    /**
     * <code>optional int32 be_exec_version = 24;</code>
     * @return Whether the beExecVersion field is set.
     */
    boolean hasBeExecVersion();
    /**
     * <code>optional int32 be_exec_version = 24;</code>
     * @return The beExecVersion.
     */
    int getBeExecVersion();
  }
  /**
   * Protobuf type {@code doris.ColumnPB}
   */
  public static final class ColumnPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.ColumnPB)
      ColumnPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ColumnPB.newBuilder() to construct.
    private ColumnPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ColumnPB() {
      name_ = "";
      type_ = "";
      aggregation_ = "";
      defaultValue_ = com.google.protobuf.ByteString.EMPTY;
      referencedColumn_ = "";
      visible_ = true;
      childrenColumns_ = java.util.Collections.emptyList();
      childrenColumnNames_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      sparseColumns_ = java.util.Collections.emptyList();
    }

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

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

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

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

    public static final int NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object name_ = "";
    /**
     * <pre>
     * ColumnMessage.name
     * </pre>
     *
     * <code>optional string name = 2;</code>
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.name
     * </pre>
     *
     * <code>optional string name = 2;</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>
     * ColumnMessage.name
     * </pre>
     *
     * <code>optional string name = 2;</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 = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object type_ = "";
    /**
     * <pre>
     * ColumnMessage.type
     * </pre>
     *
     * <code>required string type = 3;</code>
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.type
     * </pre>
     *
     * <code>required string type = 3;</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>
     * ColumnMessage.type
     * </pre>
     *
     * <code>required string type = 3;</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 IS_KEY_FIELD_NUMBER = 4;
    private boolean isKey_ = false;
    /**
     * <pre>
     * ColumnMessage.is_key
     * </pre>
     *
     * <code>optional bool is_key = 4;</code>
     * @return Whether the isKey field is set.
     */
    @java.lang.Override
    public boolean hasIsKey() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.is_key
     * </pre>
     *
     * <code>optional bool is_key = 4;</code>
     * @return The isKey.
     */
    @java.lang.Override
    public boolean getIsKey() {
      return isKey_;
    }

    public static final int AGGREGATION_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object aggregation_ = "";
    /**
     * <pre>
     * ColumnMessage.aggregation
     * </pre>
     *
     * <code>optional string aggregation = 5;</code>
     * @return Whether the aggregation field is set.
     */
    @java.lang.Override
    public boolean hasAggregation() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.aggregation
     * </pre>
     *
     * <code>optional string aggregation = 5;</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>
     * ColumnMessage.aggregation
     * </pre>
     *
     * <code>optional string aggregation = 5;</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 IS_NULLABLE_FIELD_NUMBER = 6;
    private boolean isNullable_ = false;
    /**
     * <pre>
     * ColumnMessage.is_allow_null
     * </pre>
     *
     * <code>optional bool is_nullable = 6;</code>
     * @return Whether the isNullable field is set.
     */
    @java.lang.Override
    public boolean hasIsNullable() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.is_allow_null
     * </pre>
     *
     * <code>optional bool is_nullable = 6;</code>
     * @return The isNullable.
     */
    @java.lang.Override
    public boolean getIsNullable() {
      return isNullable_;
    }

    public static final int DEFAULT_VALUE_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString defaultValue_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <pre>
     * ColumnMessage.default_value ?
     * </pre>
     *
     * <code>optional bytes default_value = 7;</code>
     * @return Whether the defaultValue field is set.
     */
    @java.lang.Override
    public boolean hasDefaultValue() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.default_value ?
     * </pre>
     *
     * <code>optional bytes default_value = 7;</code>
     * @return The defaultValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getDefaultValue() {
      return defaultValue_;
    }

    public static final int PRECISION_FIELD_NUMBER = 8;
    private int precision_ = 0;
    /**
     * <pre>
     * ColumnMessage.precision
     * </pre>
     *
     * <code>optional int32 precision = 8;</code>
     * @return Whether the precision field is set.
     */
    @java.lang.Override
    public boolean hasPrecision() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.precision
     * </pre>
     *
     * <code>optional int32 precision = 8;</code>
     * @return The precision.
     */
    @java.lang.Override
    public int getPrecision() {
      return precision_;
    }

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

    public static final int LENGTH_FIELD_NUMBER = 10;
    private int length_ = 0;
    /**
     * <pre>
     * ColumnMessage.length
     * </pre>
     *
     * <code>optional int32 length = 10;</code>
     * @return Whether the length field is set.
     */
    @java.lang.Override
    public boolean hasLength() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.length
     * </pre>
     *
     * <code>optional int32 length = 10;</code>
     * @return The length.
     */
    @java.lang.Override
    public int getLength() {
      return length_;
    }

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

    public static final int IS_BF_COLUMN_FIELD_NUMBER = 12;
    private boolean isBfColumn_ = false;
    /**
     * <pre>
     * ColumnMessage.is_bf_column
     * </pre>
     *
     * <code>optional bool is_bf_column = 12;</code>
     * @return Whether the isBfColumn field is set.
     */
    @java.lang.Override
    public boolean hasIsBfColumn() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.is_bf_column
     * </pre>
     *
     * <code>optional bool is_bf_column = 12;</code>
     * @return The isBfColumn.
     */
    @java.lang.Override
    public boolean getIsBfColumn() {
      return isBfColumn_;
    }

    public static final int REFERENCED_COLUMN_ID_FIELD_NUMBER = 13;
    private int referencedColumnId_ = 0;
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 referenced_column_id = 13;</code>
     * @return Whether the referencedColumnId field is set.
     */
    @java.lang.Override
    public boolean hasReferencedColumnId() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 referenced_column_id = 13;</code>
     * @return The referencedColumnId.
     */
    @java.lang.Override
    public int getReferencedColumnId() {
      return referencedColumnId_;
    }

    public static final int REFERENCED_COLUMN_FIELD_NUMBER = 14;
    @SuppressWarnings("serial")
    private volatile java.lang.Object referencedColumn_ = "";
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 14;</code>
     * @return Whether the referencedColumn field is set.
     */
    @java.lang.Override
    public boolean hasReferencedColumn() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional string referenced_column = 14;</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 = 14;</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 HAS_BITMAP_INDEX_FIELD_NUMBER = 15;
    private boolean hasBitmapIndex_ = false;
    /**
     * <pre>
     * ColumnMessage.has_bitmap_index
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 15 [default = false];</code>
     * @return Whether the hasBitmapIndex field is set.
     */
    @java.lang.Override
    public boolean hasHasBitmapIndex() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * ColumnMessage.has_bitmap_index
     * </pre>
     *
     * <code>optional bool has_bitmap_index = 15 [default = false];</code>
     * @return The hasBitmapIndex.
     */
    @java.lang.Override
    public boolean getHasBitmapIndex() {
      return hasBitmapIndex_;
    }

    public static final int VISIBLE_FIELD_NUMBER = 16;
    private boolean visible_ = true;
    /**
     * <code>optional bool visible = 16 [default = true];</code>
     * @return Whether the visible field is set.
     */
    @java.lang.Override
    public boolean hasVisible() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional bool visible = 16 [default = true];</code>
     * @return The visible.
     */
    @java.lang.Override
    public boolean getVisible() {
      return visible_;
    }

    public static final int CHILDREN_COLUMNS_FIELD_NUMBER = 17;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> childrenColumns_;
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getChildrenColumnsList() {
      return childrenColumns_;
    }
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getChildrenColumnsOrBuilderList() {
      return childrenColumns_;
    }
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    @java.lang.Override
    public int getChildrenColumnsCount() {
      return childrenColumns_.size();
    }
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPB getChildrenColumns(int index) {
      return childrenColumns_.get(index);
    }
    /**
     * <code>repeated .doris.ColumnPB children_columns = 17;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getChildrenColumnsOrBuilder(
        int index) {
      return childrenColumns_.get(index);
    }

    public static final int CHILDREN_COLUMN_NAMES_FIELD_NUMBER = 18;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList childrenColumnNames_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string children_column_names = 18;</code>
     * @return A list containing the childrenColumnNames.
     */
    public com.google.protobuf.ProtocolStringList
        getChildrenColumnNamesList() {
      return childrenColumnNames_;
    }
    /**
     * <code>repeated string children_column_names = 18;</code>
     * @return The count of childrenColumnNames.
     */
    public int getChildrenColumnNamesCount() {
      return childrenColumnNames_.size();
    }
    /**
     * <code>repeated string children_column_names = 18;</code>
     * @param index The index of the element to return.
     * @return The childrenColumnNames at the given index.
     */
    public java.lang.String getChildrenColumnNames(int index) {
      return childrenColumnNames_.get(index);
    }
    /**
     * <code>repeated string children_column_names = 18;</code>
     * @param index The index of the value to return.
     * @return The bytes of the childrenColumnNames at the given index.
     */
    public com.google.protobuf.ByteString
        getChildrenColumnNamesBytes(int index) {
      return childrenColumnNames_.getByteString(index);
    }

    public static final int RESULT_IS_NULLABLE_FIELD_NUMBER = 19;
    private boolean resultIsNullable_ = false;
    /**
     * <code>optional bool result_is_nullable = 19;</code>
     * @return Whether the resultIsNullable field is set.
     */
    @java.lang.Override
    public boolean hasResultIsNullable() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional bool result_is_nullable = 19;</code>
     * @return The resultIsNullable.
     */
    @java.lang.Override
    public boolean getResultIsNullable() {
      return resultIsNullable_;
    }

    public static final int COLUMN_PATH_INFO_FIELD_NUMBER = 20;
    private doris.segment_v2.SegmentV2.ColumnPathInfo columnPathInfo_;
    /**
     * <pre>
     * persist info for PathInData that represents path in document, e.g. JSON.
     * </pre>
     *
     * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
     * @return Whether the columnPathInfo field is set.
     */
    @java.lang.Override
    public boolean hasColumnPathInfo() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * persist info for PathInData that represents path in document, e.g. JSON.
     * </pre>
     *
     * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
     * @return The columnPathInfo.
     */
    @java.lang.Override
    public doris.segment_v2.SegmentV2.ColumnPathInfo getColumnPathInfo() {
      return columnPathInfo_ == null ? doris.segment_v2.SegmentV2.ColumnPathInfo.getDefaultInstance() : columnPathInfo_;
    }
    /**
     * <pre>
     * persist info for PathInData that represents path in document, e.g. JSON.
     * </pre>
     *
     * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
     */
    @java.lang.Override
    public doris.segment_v2.SegmentV2.ColumnPathInfoOrBuilder getColumnPathInfoOrBuilder() {
      return columnPathInfo_ == null ? doris.segment_v2.SegmentV2.ColumnPathInfo.getDefaultInstance() : columnPathInfo_;
    }

    public static final int SPARSE_COLUMNS_FIELD_NUMBER = 21;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> sparseColumns_;
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getSparseColumnsList() {
      return sparseColumns_;
    }
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getSparseColumnsOrBuilderList() {
      return sparseColumns_;
    }
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    @java.lang.Override
    public int getSparseColumnsCount() {
      return sparseColumns_.size();
    }
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPB getSparseColumns(int index) {
      return sparseColumns_.get(index);
    }
    /**
     * <pre>
     * sparse column within a variant column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getSparseColumnsOrBuilder(
        int index) {
      return sparseColumns_.get(index);
    }

    public static final int IS_AUTO_INCREMENT_FIELD_NUMBER = 22;
    private boolean isAutoIncrement_ = false;
    /**
     * <code>optional bool is_auto_increment = 22;</code>
     * @return Whether the isAutoIncrement field is set.
     */
    @java.lang.Override
    public boolean hasIsAutoIncrement() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional bool is_auto_increment = 22;</code>
     * @return The isAutoIncrement.
     */
    @java.lang.Override
    public boolean getIsAutoIncrement() {
      return isAutoIncrement_;
    }

    public static final int PARENT_UNIQUE_ID_FIELD_NUMBER = 23;
    private int parentUniqueId_ = 0;
    /**
     * <pre>
     * only reference by variant sparse columns
     * </pre>
     *
     * <code>optional int32 parent_unique_id = 23;</code>
     * @return Whether the parentUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasParentUniqueId() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <pre>
     * only reference by variant sparse columns
     * </pre>
     *
     * <code>optional int32 parent_unique_id = 23;</code>
     * @return The parentUniqueId.
     */
    @java.lang.Override
    public int getParentUniqueId() {
      return parentUniqueId_;
    }

    public static final int BE_EXEC_VERSION_FIELD_NUMBER = 24;
    private int beExecVersion_ = 0;
    /**
     * <code>optional int32 be_exec_version = 24;</code>
     * @return Whether the beExecVersion field is set.
     */
    @java.lang.Override
    public boolean hasBeExecVersion() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional int32 be_exec_version = 24;</code>
     * @return The beExecVersion.
     */
    @java.lang.Override
    public int getBeExecVersion() {
      return beExecVersion_;
    }

    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 (!hasUniqueId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getChildrenColumnsCount(); i++) {
        if (!getChildrenColumns(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getSparseColumnsCount(); i++) {
        if (!getSparseColumns(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.writeInt32(1, uniqueId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeBool(4, isKey_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, aggregation_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeBool(6, isNullable_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeBytes(7, defaultValue_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt32(8, precision_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(9, frac_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt32(10, length_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeInt32(11, indexLength_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeBool(12, isBfColumn_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt32(13, referencedColumnId_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, referencedColumn_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeBool(15, hasBitmapIndex_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeBool(16, visible_);
      }
      for (int i = 0; i < childrenColumns_.size(); i++) {
        output.writeMessage(17, childrenColumns_.get(i));
      }
      for (int i = 0; i < childrenColumnNames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, childrenColumnNames_.getRaw(i));
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeBool(19, resultIsNullable_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeMessage(20, getColumnPathInfo());
      }
      for (int i = 0; i < sparseColumns_.size(); i++) {
        output.writeMessage(21, sparseColumns_.get(i));
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeBool(22, isAutoIncrement_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeInt32(23, parentUniqueId_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeInt32(24, beExecVersion_);
      }
      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
          .computeInt32Size(1, uniqueId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, type_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, isKey_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, aggregation_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, isNullable_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, defaultValue_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, precision_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, frac_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, length_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(11, indexLength_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, isBfColumn_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, referencedColumnId_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, referencedColumn_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(15, hasBitmapIndex_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(16, visible_);
      }
      for (int i = 0; i < childrenColumns_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, childrenColumns_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < childrenColumnNames_.size(); i++) {
          dataSize += computeStringSizeNoTag(childrenColumnNames_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getChildrenColumnNamesList().size();
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, resultIsNullable_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, getColumnPathInfo());
      }
      for (int i = 0; i < sparseColumns_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, sparseColumns_.get(i));
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(22, isAutoIncrement_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(23, parentUniqueId_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(24, beExecVersion_);
      }
      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.OlapFile.ColumnPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.ColumnPB other = (org.apache.doris.proto.OlapFile.ColumnPB) obj;

      if (hasUniqueId() != other.hasUniqueId()) return false;
      if (hasUniqueId()) {
        if (getUniqueId()
            != other.getUniqueId()) return false;
      }
      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 (hasIsKey() != other.hasIsKey()) return false;
      if (hasIsKey()) {
        if (getIsKey()
            != other.getIsKey()) return false;
      }
      if (hasAggregation() != other.hasAggregation()) return false;
      if (hasAggregation()) {
        if (!getAggregation()
            .equals(other.getAggregation())) return false;
      }
      if (hasIsNullable() != other.hasIsNullable()) return false;
      if (hasIsNullable()) {
        if (getIsNullable()
            != other.getIsNullable()) return false;
      }
      if (hasDefaultValue() != other.hasDefaultValue()) return false;
      if (hasDefaultValue()) {
        if (!getDefaultValue()
            .equals(other.getDefaultValue())) 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 (hasLength() != other.hasLength()) return false;
      if (hasLength()) {
        if (getLength()
            != other.getLength()) return false;
      }
      if (hasIndexLength() != other.hasIndexLength()) return false;
      if (hasIndexLength()) {
        if (getIndexLength()
            != other.getIndexLength()) return false;
      }
      if (hasIsBfColumn() != other.hasIsBfColumn()) return false;
      if (hasIsBfColumn()) {
        if (getIsBfColumn()
            != other.getIsBfColumn()) return false;
      }
      if (hasReferencedColumnId() != other.hasReferencedColumnId()) return false;
      if (hasReferencedColumnId()) {
        if (getReferencedColumnId()
            != other.getReferencedColumnId()) return false;
      }
      if (hasReferencedColumn() != other.hasReferencedColumn()) return false;
      if (hasReferencedColumn()) {
        if (!getReferencedColumn()
            .equals(other.getReferencedColumn())) return false;
      }
      if (hasHasBitmapIndex() != other.hasHasBitmapIndex()) return false;
      if (hasHasBitmapIndex()) {
        if (getHasBitmapIndex()
            != other.getHasBitmapIndex()) return false;
      }
      if (hasVisible() != other.hasVisible()) return false;
      if (hasVisible()) {
        if (getVisible()
            != other.getVisible()) return false;
      }
      if (!getChildrenColumnsList()
          .equals(other.getChildrenColumnsList())) return false;
      if (!getChildrenColumnNamesList()
          .equals(other.getChildrenColumnNamesList())) return false;
      if (hasResultIsNullable() != other.hasResultIsNullable()) return false;
      if (hasResultIsNullable()) {
        if (getResultIsNullable()
            != other.getResultIsNullable()) return false;
      }
      if (hasColumnPathInfo() != other.hasColumnPathInfo()) return false;
      if (hasColumnPathInfo()) {
        if (!getColumnPathInfo()
            .equals(other.getColumnPathInfo())) return false;
      }
      if (!getSparseColumnsList()
          .equals(other.getSparseColumnsList())) return false;
      if (hasIsAutoIncrement() != other.hasIsAutoIncrement()) return false;
      if (hasIsAutoIncrement()) {
        if (getIsAutoIncrement()
            != other.getIsAutoIncrement()) return false;
      }
      if (hasParentUniqueId() != other.hasParentUniqueId()) return false;
      if (hasParentUniqueId()) {
        if (getParentUniqueId()
            != other.getParentUniqueId()) return false;
      }
      if (hasBeExecVersion() != other.hasBeExecVersion()) return false;
      if (hasBeExecVersion()) {
        if (getBeExecVersion()
            != other.getBeExecVersion()) 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 (hasUniqueId()) {
        hash = (37 * hash) + UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getUniqueId();
      }
      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 (hasIsKey()) {
        hash = (37 * hash) + IS_KEY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsKey());
      }
      if (hasAggregation()) {
        hash = (37 * hash) + AGGREGATION_FIELD_NUMBER;
        hash = (53 * hash) + getAggregation().hashCode();
      }
      if (hasIsNullable()) {
        hash = (37 * hash) + IS_NULLABLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsNullable());
      }
      if (hasDefaultValue()) {
        hash = (37 * hash) + DEFAULT_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultValue().hashCode();
      }
      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 (hasLength()) {
        hash = (37 * hash) + LENGTH_FIELD_NUMBER;
        hash = (53 * hash) + getLength();
      }
      if (hasIndexLength()) {
        hash = (37 * hash) + INDEX_LENGTH_FIELD_NUMBER;
        hash = (53 * hash) + getIndexLength();
      }
      if (hasIsBfColumn()) {
        hash = (37 * hash) + IS_BF_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsBfColumn());
      }
      if (hasReferencedColumnId()) {
        hash = (37 * hash) + REFERENCED_COLUMN_ID_FIELD_NUMBER;
        hash = (53 * hash) + getReferencedColumnId();
      }
      if (hasReferencedColumn()) {
        hash = (37 * hash) + REFERENCED_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getReferencedColumn().hashCode();
      }
      if (hasHasBitmapIndex()) {
        hash = (37 * hash) + HAS_BITMAP_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getHasBitmapIndex());
      }
      if (hasVisible()) {
        hash = (37 * hash) + VISIBLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getVisible());
      }
      if (getChildrenColumnsCount() > 0) {
        hash = (37 * hash) + CHILDREN_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getChildrenColumnsList().hashCode();
      }
      if (getChildrenColumnNamesCount() > 0) {
        hash = (37 * hash) + CHILDREN_COLUMN_NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getChildrenColumnNamesList().hashCode();
      }
      if (hasResultIsNullable()) {
        hash = (37 * hash) + RESULT_IS_NULLABLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getResultIsNullable());
      }
      if (hasColumnPathInfo()) {
        hash = (37 * hash) + COLUMN_PATH_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getColumnPathInfo().hashCode();
      }
      if (getSparseColumnsCount() > 0) {
        hash = (37 * hash) + SPARSE_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getSparseColumnsList().hashCode();
      }
      if (hasIsAutoIncrement()) {
        hash = (37 * hash) + IS_AUTO_INCREMENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsAutoIncrement());
      }
      if (hasParentUniqueId()) {
        hash = (37 * hash) + PARENT_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getParentUniqueId();
      }
      if (hasBeExecVersion()) {
        hash = (37 * hash) + BE_EXEC_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getBeExecVersion();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.ColumnPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.ColumnPB 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.OlapFile.ColumnPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.ColumnPB 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.OlapFile.ColumnPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.ColumnPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.ColumnPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.ColumnPB 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.OlapFile.ColumnPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.ColumnPB 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.OlapFile.ColumnPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.ColumnPB 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.OlapFile.ColumnPB 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.ColumnPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.ColumnPB)
        org.apache.doris.proto.OlapFile.ColumnPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_ColumnPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.ColumnPB.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getChildrenColumnsFieldBuilder();
          getColumnPathInfoFieldBuilder();
          getSparseColumnsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        uniqueId_ = 0;
        name_ = "";
        type_ = "";
        isKey_ = false;
        aggregation_ = "";
        isNullable_ = false;
        defaultValue_ = com.google.protobuf.ByteString.EMPTY;
        precision_ = 0;
        frac_ = 0;
        length_ = 0;
        indexLength_ = 0;
        isBfColumn_ = false;
        referencedColumnId_ = 0;
        referencedColumn_ = "";
        hasBitmapIndex_ = false;
        visible_ = true;
        if (childrenColumnsBuilder_ == null) {
          childrenColumns_ = java.util.Collections.emptyList();
        } else {
          childrenColumns_ = null;
          childrenColumnsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        childrenColumnNames_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        resultIsNullable_ = false;
        columnPathInfo_ = null;
        if (columnPathInfoBuilder_ != null) {
          columnPathInfoBuilder_.dispose();
          columnPathInfoBuilder_ = null;
        }
        if (sparseColumnsBuilder_ == null) {
          sparseColumns_ = java.util.Collections.emptyList();
        } else {
          sparseColumns_ = null;
          sparseColumnsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        isAutoIncrement_ = false;
        parentUniqueId_ = 0;
        beExecVersion_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.ColumnPB result) {
        if (childrenColumnsBuilder_ == null) {
          if (((bitField0_ & 0x00010000) != 0)) {
            childrenColumns_ = java.util.Collections.unmodifiableList(childrenColumns_);
            bitField0_ = (bitField0_ & ~0x00010000);
          }
          result.childrenColumns_ = childrenColumns_;
        } else {
          result.childrenColumns_ = childrenColumnsBuilder_.build();
        }
        if (sparseColumnsBuilder_ == null) {
          if (((bitField0_ & 0x00100000) != 0)) {
            sparseColumns_ = java.util.Collections.unmodifiableList(sparseColumns_);
            bitField0_ = (bitField0_ & ~0x00100000);
          }
          result.sparseColumns_ = sparseColumns_;
        } else {
          result.sparseColumns_ = sparseColumnsBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.ColumnPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.uniqueId_ = uniqueId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.name_ = name_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.type_ = type_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.isKey_ = isKey_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.aggregation_ = aggregation_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.isNullable_ = isNullable_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.defaultValue_ = defaultValue_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.precision_ = precision_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.frac_ = frac_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.length_ = length_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.indexLength_ = indexLength_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.isBfColumn_ = isBfColumn_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.referencedColumnId_ = referencedColumnId_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.referencedColumn_ = referencedColumn_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.hasBitmapIndex_ = hasBitmapIndex_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.visible_ = visible_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          childrenColumnNames_.makeImmutable();
          result.childrenColumnNames_ = childrenColumnNames_;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.resultIsNullable_ = resultIsNullable_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.columnPathInfo_ = columnPathInfoBuilder_ == null
              ? columnPathInfo_
              : columnPathInfoBuilder_.build();
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.isAutoIncrement_ = isAutoIncrement_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.parentUniqueId_ = parentUniqueId_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.beExecVersion_ = beExecVersion_;
          to_bitField0_ |= 0x00100000;
        }
        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.OlapFile.ColumnPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.ColumnPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.ColumnPB other) {
        if (other == org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance()) return this;
        if (other.hasUniqueId()) {
          setUniqueId(other.getUniqueId());
        }
        if (other.hasName()) {
          name_ = other.name_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasType()) {
          type_ = other.type_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasIsKey()) {
          setIsKey(other.getIsKey());
        }
        if (other.hasAggregation()) {
          aggregation_ = other.aggregation_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.hasIsNullable()) {
          setIsNullable(other.getIsNullable());
        }
        if (other.hasDefaultValue()) {
          setDefaultValue(other.getDefaultValue());
        }
        if (other.hasPrecision()) {
          setPrecision(other.getPrecision());
        }
        if (other.hasFrac()) {
          setFrac(other.getFrac());
        }
        if (other.hasLength()) {
          setLength(other.getLength());
        }
        if (other.hasIndexLength()) {
          setIndexLength(other.getIndexLength());
        }
        if (other.hasIsBfColumn()) {
          setIsBfColumn(other.getIsBfColumn());
        }
        if (other.hasReferencedColumnId()) {
          setReferencedColumnId(other.getReferencedColumnId());
        }
        if (other.hasReferencedColumn()) {
          referencedColumn_ = other.referencedColumn_;
          bitField0_ |= 0x00002000;
          onChanged();
        }
        if (other.hasHasBitmapIndex()) {
          setHasBitmapIndex(other.getHasBitmapIndex());
        }
        if (other.hasVisible()) {
          setVisible(other.getVisible());
        }
        if (childrenColumnsBuilder_ == null) {
          if (!other.childrenColumns_.isEmpty()) {
            if (childrenColumns_.isEmpty()) {
              childrenColumns_ = other.childrenColumns_;
              bitField0_ = (bitField0_ & ~0x00010000);
            } else {
              ensureChildrenColumnsIsMutable();
              childrenColumns_.addAll(other.childrenColumns_);
            }
            onChanged();
          }
        } else {
          if (!other.childrenColumns_.isEmpty()) {
            if (childrenColumnsBuilder_.isEmpty()) {
              childrenColumnsBuilder_.dispose();
              childrenColumnsBuilder_ = null;
              childrenColumns_ = other.childrenColumns_;
              bitField0_ = (bitField0_ & ~0x00010000);
              childrenColumnsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getChildrenColumnsFieldBuilder() : null;
            } else {
              childrenColumnsBuilder_.addAllMessages(other.childrenColumns_);
            }
          }
        }
        if (!other.childrenColumnNames_.isEmpty()) {
          if (childrenColumnNames_.isEmpty()) {
            childrenColumnNames_ = other.childrenColumnNames_;
            bitField0_ |= 0x00020000;
          } else {
            ensureChildrenColumnNamesIsMutable();
            childrenColumnNames_.addAll(other.childrenColumnNames_);
          }
          onChanged();
        }
        if (other.hasResultIsNullable()) {
          setResultIsNullable(other.getResultIsNullable());
        }
        if (other.hasColumnPathInfo()) {
          mergeColumnPathInfo(other.getColumnPathInfo());
        }
        if (sparseColumnsBuilder_ == null) {
          if (!other.sparseColumns_.isEmpty()) {
            if (sparseColumns_.isEmpty()) {
              sparseColumns_ = other.sparseColumns_;
              bitField0_ = (bitField0_ & ~0x00100000);
            } else {
              ensureSparseColumnsIsMutable();
              sparseColumns_.addAll(other.sparseColumns_);
            }
            onChanged();
          }
        } else {
          if (!other.sparseColumns_.isEmpty()) {
            if (sparseColumnsBuilder_.isEmpty()) {
              sparseColumnsBuilder_.dispose();
              sparseColumnsBuilder_ = null;
              sparseColumns_ = other.sparseColumns_;
              bitField0_ = (bitField0_ & ~0x00100000);
              sparseColumnsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSparseColumnsFieldBuilder() : null;
            } else {
              sparseColumnsBuilder_.addAllMessages(other.sparseColumns_);
            }
          }
        }
        if (other.hasIsAutoIncrement()) {
          setIsAutoIncrement(other.getIsAutoIncrement());
        }
        if (other.hasParentUniqueId()) {
          setParentUniqueId(other.getParentUniqueId());
        }
        if (other.hasBeExecVersion()) {
          setBeExecVersion(other.getBeExecVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasUniqueId()) {
          return false;
        }
        if (!hasType()) {
          return false;
        }
        for (int i = 0; i < getChildrenColumnsCount(); i++) {
          if (!getChildrenColumns(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getSparseColumnsCount(); i++) {
          if (!getSparseColumns(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: {
                uniqueId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                name_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                type_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                isKey_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                aggregation_ = input.readBytes();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                isNullable_ = input.readBool();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                defaultValue_ = input.readBytes();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 64: {
                precision_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                frac_ = input.readInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                length_ = input.readInt32();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                indexLength_ = input.readInt32();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                isBfColumn_ = input.readBool();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                referencedColumnId_ = input.readInt32();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 114: {
                referencedColumn_ = input.readBytes();
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 120: {
                hasBitmapIndex_ = input.readBool();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              case 128: {
                visible_ = input.readBool();
                bitField0_ |= 0x00008000;
                break;
              } // case 128
              case 138: {
                org.apache.doris.proto.OlapFile.ColumnPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.ColumnPB.PARSER,
                        extensionRegistry);
                if (childrenColumnsBuilder_ == null) {
                  ensureChildrenColumnsIsMutable();
                  childrenColumns_.add(m);
                } else {
                  childrenColumnsBuilder_.addMessage(m);
                }
                break;
              } // case 138
              case 146: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureChildrenColumnNamesIsMutable();
                childrenColumnNames_.add(bs);
                break;
              } // case 146
              case 152: {
                resultIsNullable_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 152
              case 162: {
                input.readMessage(
                    getColumnPathInfoFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00080000;
                break;
              } // case 162
              case 170: {
                org.apache.doris.proto.OlapFile.ColumnPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.ColumnPB.PARSER,
                        extensionRegistry);
                if (sparseColumnsBuilder_ == null) {
                  ensureSparseColumnsIsMutable();
                  sparseColumns_.add(m);
                } else {
                  sparseColumnsBuilder_.addMessage(m);
                }
                break;
              } // case 170
              case 176: {
                isAutoIncrement_ = input.readBool();
                bitField0_ |= 0x00200000;
                break;
              } // case 176
              case 184: {
                parentUniqueId_ = input.readInt32();
                bitField0_ |= 0x00400000;
                break;
              } // case 184
              case 192: {
                beExecVersion_ = input.readInt32();
                bitField0_ |= 0x00800000;
                break;
              } // case 192
              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 uniqueId_ ;
      /**
       * <pre>
       * ColumnMessage.unique_id
       * </pre>
       *
       * <code>required int32 unique_id = 1;</code>
       * @return Whether the uniqueId field is set.
       */
      @java.lang.Override
      public boolean hasUniqueId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.unique_id
       * </pre>
       *
       * <code>required int32 unique_id = 1;</code>
       * @return The uniqueId.
       */
      @java.lang.Override
      public int getUniqueId() {
        return uniqueId_;
      }
      /**
       * <pre>
       * ColumnMessage.unique_id
       * </pre>
       *
       * <code>required int32 unique_id = 1;</code>
       * @param value The uniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setUniqueId(int value) {

        uniqueId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.unique_id
       * </pre>
       *
       * <code>required int32 unique_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUniqueId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uniqueId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * <pre>
       * ColumnMessage.name
       * </pre>
       *
       * <code>optional string name = 2;</code>
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.name
       * </pre>
       *
       * <code>optional string name = 2;</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>
       * ColumnMessage.name
       * </pre>
       *
       * <code>optional string name = 2;</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>
       * ColumnMessage.name
       * </pre>
       *
       * <code>optional string name = 2;</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_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.name
       * </pre>
       *
       * <code>optional string name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = getDefaultInstance().getName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.name
       * </pre>
       *
       * <code>optional string name = 2;</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_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       * <pre>
       * ColumnMessage.type
       * </pre>
       *
       * <code>required string type = 3;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.type
       * </pre>
       *
       * <code>required string type = 3;</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>
       * ColumnMessage.type
       * </pre>
       *
       * <code>required string type = 3;</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>
       * ColumnMessage.type
       * </pre>
       *
       * <code>required string type = 3;</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_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.type
       * </pre>
       *
       * <code>required string type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        type_ = getDefaultInstance().getType();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.type
       * </pre>
       *
       * <code>required string type = 3;</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_ |= 0x00000004;
        onChanged();
        return this;
      }

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

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

      private java.lang.Object aggregation_ = "";
      /**
       * <pre>
       * ColumnMessage.aggregation
       * </pre>
       *
       * <code>optional string aggregation = 5;</code>
       * @return Whether the aggregation field is set.
       */
      public boolean hasAggregation() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.aggregation
       * </pre>
       *
       * <code>optional string aggregation = 5;</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>
       * ColumnMessage.aggregation
       * </pre>
       *
       * <code>optional string aggregation = 5;</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>
       * ColumnMessage.aggregation
       * </pre>
       *
       * <code>optional string aggregation = 5;</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_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.aggregation
       * </pre>
       *
       * <code>optional string aggregation = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearAggregation() {
        aggregation_ = getDefaultInstance().getAggregation();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.aggregation
       * </pre>
       *
       * <code>optional string aggregation = 5;</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_ |= 0x00000010;
        onChanged();
        return this;
      }

      private boolean isNullable_ ;
      /**
       * <pre>
       * ColumnMessage.is_allow_null
       * </pre>
       *
       * <code>optional bool is_nullable = 6;</code>
       * @return Whether the isNullable field is set.
       */
      @java.lang.Override
      public boolean hasIsNullable() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.is_allow_null
       * </pre>
       *
       * <code>optional bool is_nullable = 6;</code>
       * @return The isNullable.
       */
      @java.lang.Override
      public boolean getIsNullable() {
        return isNullable_;
      }
      /**
       * <pre>
       * ColumnMessage.is_allow_null
       * </pre>
       *
       * <code>optional bool is_nullable = 6;</code>
       * @param value The isNullable to set.
       * @return This builder for chaining.
       */
      public Builder setIsNullable(boolean value) {

        isNullable_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.is_allow_null
       * </pre>
       *
       * <code>optional bool is_nullable = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsNullable() {
        bitField0_ = (bitField0_ & ~0x00000020);
        isNullable_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString defaultValue_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * ColumnMessage.default_value ?
       * </pre>
       *
       * <code>optional bytes default_value = 7;</code>
       * @return Whether the defaultValue field is set.
       */
      @java.lang.Override
      public boolean hasDefaultValue() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.default_value ?
       * </pre>
       *
       * <code>optional bytes default_value = 7;</code>
       * @return The defaultValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getDefaultValue() {
        return defaultValue_;
      }
      /**
       * <pre>
       * ColumnMessage.default_value ?
       * </pre>
       *
       * <code>optional bytes default_value = 7;</code>
       * @param value The defaultValue to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultValue(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        defaultValue_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.default_value ?
       * </pre>
       *
       * <code>optional bytes default_value = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearDefaultValue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        defaultValue_ = getDefaultInstance().getDefaultValue();
        onChanged();
        return this;
      }

      private int precision_ ;
      /**
       * <pre>
       * ColumnMessage.precision
       * </pre>
       *
       * <code>optional int32 precision = 8;</code>
       * @return Whether the precision field is set.
       */
      @java.lang.Override
      public boolean hasPrecision() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.precision
       * </pre>
       *
       * <code>optional int32 precision = 8;</code>
       * @return The precision.
       */
      @java.lang.Override
      public int getPrecision() {
        return precision_;
      }
      /**
       * <pre>
       * ColumnMessage.precision
       * </pre>
       *
       * <code>optional int32 precision = 8;</code>
       * @param value The precision to set.
       * @return This builder for chaining.
       */
      public Builder setPrecision(int value) {

        precision_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.precision
       * </pre>
       *
       * <code>optional int32 precision = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrecision() {
        bitField0_ = (bitField0_ & ~0x00000080);
        precision_ = 0;
        onChanged();
        return this;
      }

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

        frac_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.frac
       * </pre>
       *
       * <code>optional int32 frac = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearFrac() {
        bitField0_ = (bitField0_ & ~0x00000100);
        frac_ = 0;
        onChanged();
        return this;
      }

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

        length_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.length
       * </pre>
       *
       * <code>optional int32 length = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearLength() {
        bitField0_ = (bitField0_ & ~0x00000200);
        length_ = 0;
        onChanged();
        return this;
      }

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

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

      private boolean isBfColumn_ ;
      /**
       * <pre>
       * ColumnMessage.is_bf_column
       * </pre>
       *
       * <code>optional bool is_bf_column = 12;</code>
       * @return Whether the isBfColumn field is set.
       */
      @java.lang.Override
      public boolean hasIsBfColumn() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * ColumnMessage.is_bf_column
       * </pre>
       *
       * <code>optional bool is_bf_column = 12;</code>
       * @return The isBfColumn.
       */
      @java.lang.Override
      public boolean getIsBfColumn() {
        return isBfColumn_;
      }
      /**
       * <pre>
       * ColumnMessage.is_bf_column
       * </pre>
       *
       * <code>optional bool is_bf_column = 12;</code>
       * @param value The isBfColumn to set.
       * @return This builder for chaining.
       */
      public Builder setIsBfColumn(boolean value) {

        isBfColumn_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.is_bf_column
       * </pre>
       *
       * <code>optional bool is_bf_column = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsBfColumn() {
        bitField0_ = (bitField0_ & ~0x00000800);
        isBfColumn_ = false;
        onChanged();
        return this;
      }

      private int referencedColumnId_ ;
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 referenced_column_id = 13;</code>
       * @return Whether the referencedColumnId field is set.
       */
      @java.lang.Override
      public boolean hasReferencedColumnId() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 referenced_column_id = 13;</code>
       * @return The referencedColumnId.
       */
      @java.lang.Override
      public int getReferencedColumnId() {
        return referencedColumnId_;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 referenced_column_id = 13;</code>
       * @param value The referencedColumnId to set.
       * @return This builder for chaining.
       */
      public Builder setReferencedColumnId(int value) {

        referencedColumnId_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 referenced_column_id = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearReferencedColumnId() {
        bitField0_ = (bitField0_ & ~0x00001000);
        referencedColumnId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object referencedColumn_ = "";
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 14;</code>
       * @return Whether the referencedColumn field is set.
       */
      public boolean hasReferencedColumn() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 14;</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 = 14;</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 = 14;</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_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearReferencedColumn() {
        referencedColumn_ = getDefaultInstance().getReferencedColumn();
        bitField0_ = (bitField0_ & ~0x00002000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional string referenced_column = 14;</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_ |= 0x00002000;
        onChanged();
        return this;
      }

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

        hasBitmapIndex_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ColumnMessage.has_bitmap_index
       * </pre>
       *
       * <code>optional bool has_bitmap_index = 15 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearHasBitmapIndex() {
        bitField0_ = (bitField0_ & ~0x00004000);
        hasBitmapIndex_ = false;
        onChanged();
        return this;
      }

      private boolean visible_ = true;
      /**
       * <code>optional bool visible = 16 [default = true];</code>
       * @return Whether the visible field is set.
       */
      @java.lang.Override
      public boolean hasVisible() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional bool visible = 16 [default = true];</code>
       * @return The visible.
       */
      @java.lang.Override
      public boolean getVisible() {
        return visible_;
      }
      /**
       * <code>optional bool visible = 16 [default = true];</code>
       * @param value The visible to set.
       * @return This builder for chaining.
       */
      public Builder setVisible(boolean value) {

        visible_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool visible = 16 [default = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearVisible() {
        bitField0_ = (bitField0_ & ~0x00008000);
        visible_ = true;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> childrenColumns_ =
        java.util.Collections.emptyList();
      private void ensureChildrenColumnsIsMutable() {
        if (!((bitField0_ & 0x00010000) != 0)) {
          childrenColumns_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.ColumnPB>(childrenColumns_);
          bitField0_ |= 0x00010000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> childrenColumnsBuilder_;

      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getChildrenColumnsList() {
        if (childrenColumnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(childrenColumns_);
        } else {
          return childrenColumnsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public int getChildrenColumnsCount() {
        if (childrenColumnsBuilder_ == null) {
          return childrenColumns_.size();
        } else {
          return childrenColumnsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB getChildrenColumns(int index) {
        if (childrenColumnsBuilder_ == null) {
          return childrenColumns_.get(index);
        } else {
          return childrenColumnsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder setChildrenColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (childrenColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenColumnsIsMutable();
          childrenColumns_.set(index, value);
          onChanged();
        } else {
          childrenColumnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder setChildrenColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (childrenColumnsBuilder_ == null) {
          ensureChildrenColumnsIsMutable();
          childrenColumns_.set(index, builderForValue.build());
          onChanged();
        } else {
          childrenColumnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder addChildrenColumns(org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (childrenColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenColumnsIsMutable();
          childrenColumns_.add(value);
          onChanged();
        } else {
          childrenColumnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder addChildrenColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (childrenColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenColumnsIsMutable();
          childrenColumns_.add(index, value);
          onChanged();
        } else {
          childrenColumnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder addChildrenColumns(
          org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (childrenColumnsBuilder_ == null) {
          ensureChildrenColumnsIsMutable();
          childrenColumns_.add(builderForValue.build());
          onChanged();
        } else {
          childrenColumnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder addChildrenColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (childrenColumnsBuilder_ == null) {
          ensureChildrenColumnsIsMutable();
          childrenColumns_.add(index, builderForValue.build());
          onChanged();
        } else {
          childrenColumnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder addAllChildrenColumns(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.ColumnPB> values) {
        if (childrenColumnsBuilder_ == null) {
          ensureChildrenColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, childrenColumns_);
          onChanged();
        } else {
          childrenColumnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder clearChildrenColumns() {
        if (childrenColumnsBuilder_ == null) {
          childrenColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00010000);
          onChanged();
        } else {
          childrenColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public Builder removeChildrenColumns(int index) {
        if (childrenColumnsBuilder_ == null) {
          ensureChildrenColumnsIsMutable();
          childrenColumns_.remove(index);
          onChanged();
        } else {
          childrenColumnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder getChildrenColumnsBuilder(
          int index) {
        return getChildrenColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getChildrenColumnsOrBuilder(
          int index) {
        if (childrenColumnsBuilder_ == null) {
          return childrenColumns_.get(index);  } else {
          return childrenColumnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
           getChildrenColumnsOrBuilderList() {
        if (childrenColumnsBuilder_ != null) {
          return childrenColumnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(childrenColumns_);
        }
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addChildrenColumnsBuilder() {
        return getChildrenColumnsFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addChildrenColumnsBuilder(
          int index) {
        return getChildrenColumnsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.ColumnPB children_columns = 17;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB.Builder> 
           getChildrenColumnsBuilderList() {
        return getChildrenColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
          getChildrenColumnsFieldBuilder() {
        if (childrenColumnsBuilder_ == null) {
          childrenColumnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder>(
                  childrenColumns_,
                  ((bitField0_ & 0x00010000) != 0),
                  getParentForChildren(),
                  isClean());
          childrenColumns_ = null;
        }
        return childrenColumnsBuilder_;
      }

      private com.google.protobuf.LazyStringArrayList childrenColumnNames_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureChildrenColumnNamesIsMutable() {
        if (!childrenColumnNames_.isModifiable()) {
          childrenColumnNames_ = new com.google.protobuf.LazyStringArrayList(childrenColumnNames_);
        }
        bitField0_ |= 0x00020000;
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @return A list containing the childrenColumnNames.
       */
      public com.google.protobuf.ProtocolStringList
          getChildrenColumnNamesList() {
        childrenColumnNames_.makeImmutable();
        return childrenColumnNames_;
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @return The count of childrenColumnNames.
       */
      public int getChildrenColumnNamesCount() {
        return childrenColumnNames_.size();
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @param index The index of the element to return.
       * @return The childrenColumnNames at the given index.
       */
      public java.lang.String getChildrenColumnNames(int index) {
        return childrenColumnNames_.get(index);
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @param index The index of the value to return.
       * @return The bytes of the childrenColumnNames at the given index.
       */
      public com.google.protobuf.ByteString
          getChildrenColumnNamesBytes(int index) {
        return childrenColumnNames_.getByteString(index);
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @param index The index to set the value at.
       * @param value The childrenColumnNames to set.
       * @return This builder for chaining.
       */
      public Builder setChildrenColumnNames(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureChildrenColumnNamesIsMutable();
        childrenColumnNames_.set(index, value);
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @param value The childrenColumnNames to add.
       * @return This builder for chaining.
       */
      public Builder addChildrenColumnNames(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureChildrenColumnNamesIsMutable();
        childrenColumnNames_.add(value);
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @param values The childrenColumnNames to add.
       * @return This builder for chaining.
       */
      public Builder addAllChildrenColumnNames(
          java.lang.Iterable<java.lang.String> values) {
        ensureChildrenColumnNamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, childrenColumnNames_);
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearChildrenColumnNames() {
        childrenColumnNames_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00020000);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string children_column_names = 18;</code>
       * @param value The bytes of the childrenColumnNames to add.
       * @return This builder for chaining.
       */
      public Builder addChildrenColumnNamesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureChildrenColumnNamesIsMutable();
        childrenColumnNames_.add(value);
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }

      private boolean resultIsNullable_ ;
      /**
       * <code>optional bool result_is_nullable = 19;</code>
       * @return Whether the resultIsNullable field is set.
       */
      @java.lang.Override
      public boolean hasResultIsNullable() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <code>optional bool result_is_nullable = 19;</code>
       * @return The resultIsNullable.
       */
      @java.lang.Override
      public boolean getResultIsNullable() {
        return resultIsNullable_;
      }
      /**
       * <code>optional bool result_is_nullable = 19;</code>
       * @param value The resultIsNullable to set.
       * @return This builder for chaining.
       */
      public Builder setResultIsNullable(boolean value) {

        resultIsNullable_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool result_is_nullable = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearResultIsNullable() {
        bitField0_ = (bitField0_ & ~0x00040000);
        resultIsNullable_ = false;
        onChanged();
        return this;
      }

      private doris.segment_v2.SegmentV2.ColumnPathInfo columnPathInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          doris.segment_v2.SegmentV2.ColumnPathInfo, doris.segment_v2.SegmentV2.ColumnPathInfo.Builder, doris.segment_v2.SegmentV2.ColumnPathInfoOrBuilder> columnPathInfoBuilder_;
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       * @return Whether the columnPathInfo field is set.
       */
      public boolean hasColumnPathInfo() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       * @return The columnPathInfo.
       */
      public doris.segment_v2.SegmentV2.ColumnPathInfo getColumnPathInfo() {
        if (columnPathInfoBuilder_ == null) {
          return columnPathInfo_ == null ? doris.segment_v2.SegmentV2.ColumnPathInfo.getDefaultInstance() : columnPathInfo_;
        } else {
          return columnPathInfoBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       */
      public Builder setColumnPathInfo(doris.segment_v2.SegmentV2.ColumnPathInfo value) {
        if (columnPathInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          columnPathInfo_ = value;
        } else {
          columnPathInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       */
      public Builder setColumnPathInfo(
          doris.segment_v2.SegmentV2.ColumnPathInfo.Builder builderForValue) {
        if (columnPathInfoBuilder_ == null) {
          columnPathInfo_ = builderForValue.build();
        } else {
          columnPathInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       */
      public Builder mergeColumnPathInfo(doris.segment_v2.SegmentV2.ColumnPathInfo value) {
        if (columnPathInfoBuilder_ == null) {
          if (((bitField0_ & 0x00080000) != 0) &&
            columnPathInfo_ != null &&
            columnPathInfo_ != doris.segment_v2.SegmentV2.ColumnPathInfo.getDefaultInstance()) {
            getColumnPathInfoBuilder().mergeFrom(value);
          } else {
            columnPathInfo_ = value;
          }
        } else {
          columnPathInfoBuilder_.mergeFrom(value);
        }
        if (columnPathInfo_ != null) {
          bitField0_ |= 0x00080000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       */
      public Builder clearColumnPathInfo() {
        bitField0_ = (bitField0_ & ~0x00080000);
        columnPathInfo_ = null;
        if (columnPathInfoBuilder_ != null) {
          columnPathInfoBuilder_.dispose();
          columnPathInfoBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       */
      public doris.segment_v2.SegmentV2.ColumnPathInfo.Builder getColumnPathInfoBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getColumnPathInfoFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       */
      public doris.segment_v2.SegmentV2.ColumnPathInfoOrBuilder getColumnPathInfoOrBuilder() {
        if (columnPathInfoBuilder_ != null) {
          return columnPathInfoBuilder_.getMessageOrBuilder();
        } else {
          return columnPathInfo_ == null ?
              doris.segment_v2.SegmentV2.ColumnPathInfo.getDefaultInstance() : columnPathInfo_;
        }
      }
      /**
       * <pre>
       * persist info for PathInData that represents path in document, e.g. JSON.
       * </pre>
       *
       * <code>optional .doris.segment_v2.ColumnPathInfo column_path_info = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          doris.segment_v2.SegmentV2.ColumnPathInfo, doris.segment_v2.SegmentV2.ColumnPathInfo.Builder, doris.segment_v2.SegmentV2.ColumnPathInfoOrBuilder> 
          getColumnPathInfoFieldBuilder() {
        if (columnPathInfoBuilder_ == null) {
          columnPathInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              doris.segment_v2.SegmentV2.ColumnPathInfo, doris.segment_v2.SegmentV2.ColumnPathInfo.Builder, doris.segment_v2.SegmentV2.ColumnPathInfoOrBuilder>(
                  getColumnPathInfo(),
                  getParentForChildren(),
                  isClean());
          columnPathInfo_ = null;
        }
        return columnPathInfoBuilder_;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> sparseColumns_ =
        java.util.Collections.emptyList();
      private void ensureSparseColumnsIsMutable() {
        if (!((bitField0_ & 0x00100000) != 0)) {
          sparseColumns_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.ColumnPB>(sparseColumns_);
          bitField0_ |= 0x00100000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> sparseColumnsBuilder_;

      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getSparseColumnsList() {
        if (sparseColumnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sparseColumns_);
        } else {
          return sparseColumnsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public int getSparseColumnsCount() {
        if (sparseColumnsBuilder_ == null) {
          return sparseColumns_.size();
        } else {
          return sparseColumnsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB getSparseColumns(int index) {
        if (sparseColumnsBuilder_ == null) {
          return sparseColumns_.get(index);
        } else {
          return sparseColumnsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder setSparseColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (sparseColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSparseColumnsIsMutable();
          sparseColumns_.set(index, value);
          onChanged();
        } else {
          sparseColumnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder setSparseColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (sparseColumnsBuilder_ == null) {
          ensureSparseColumnsIsMutable();
          sparseColumns_.set(index, builderForValue.build());
          onChanged();
        } else {
          sparseColumnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder addSparseColumns(org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (sparseColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSparseColumnsIsMutable();
          sparseColumns_.add(value);
          onChanged();
        } else {
          sparseColumnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder addSparseColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (sparseColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSparseColumnsIsMutable();
          sparseColumns_.add(index, value);
          onChanged();
        } else {
          sparseColumnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder addSparseColumns(
          org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (sparseColumnsBuilder_ == null) {
          ensureSparseColumnsIsMutable();
          sparseColumns_.add(builderForValue.build());
          onChanged();
        } else {
          sparseColumnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder addSparseColumns(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (sparseColumnsBuilder_ == null) {
          ensureSparseColumnsIsMutable();
          sparseColumns_.add(index, builderForValue.build());
          onChanged();
        } else {
          sparseColumnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder addAllSparseColumns(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.ColumnPB> values) {
        if (sparseColumnsBuilder_ == null) {
          ensureSparseColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sparseColumns_);
          onChanged();
        } else {
          sparseColumnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder clearSparseColumns() {
        if (sparseColumnsBuilder_ == null) {
          sparseColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00100000);
          onChanged();
        } else {
          sparseColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public Builder removeSparseColumns(int index) {
        if (sparseColumnsBuilder_ == null) {
          ensureSparseColumnsIsMutable();
          sparseColumns_.remove(index);
          onChanged();
        } else {
          sparseColumnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder getSparseColumnsBuilder(
          int index) {
        return getSparseColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getSparseColumnsOrBuilder(
          int index) {
        if (sparseColumnsBuilder_ == null) {
          return sparseColumns_.get(index);  } else {
          return sparseColumnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
           getSparseColumnsOrBuilderList() {
        if (sparseColumnsBuilder_ != null) {
          return sparseColumnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sparseColumns_);
        }
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addSparseColumnsBuilder() {
        return getSparseColumnsFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addSparseColumnsBuilder(
          int index) {
        return getSparseColumnsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <pre>
       * sparse column within a variant column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB sparse_columns = 21;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB.Builder> 
           getSparseColumnsBuilderList() {
        return getSparseColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
          getSparseColumnsFieldBuilder() {
        if (sparseColumnsBuilder_ == null) {
          sparseColumnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder>(
                  sparseColumns_,
                  ((bitField0_ & 0x00100000) != 0),
                  getParentForChildren(),
                  isClean());
          sparseColumns_ = null;
        }
        return sparseColumnsBuilder_;
      }

      private boolean isAutoIncrement_ ;
      /**
       * <code>optional bool is_auto_increment = 22;</code>
       * @return Whether the isAutoIncrement field is set.
       */
      @java.lang.Override
      public boolean hasIsAutoIncrement() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <code>optional bool is_auto_increment = 22;</code>
       * @return The isAutoIncrement.
       */
      @java.lang.Override
      public boolean getIsAutoIncrement() {
        return isAutoIncrement_;
      }
      /**
       * <code>optional bool is_auto_increment = 22;</code>
       * @param value The isAutoIncrement to set.
       * @return This builder for chaining.
       */
      public Builder setIsAutoIncrement(boolean value) {

        isAutoIncrement_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_auto_increment = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsAutoIncrement() {
        bitField0_ = (bitField0_ & ~0x00200000);
        isAutoIncrement_ = false;
        onChanged();
        return this;
      }

      private int parentUniqueId_ ;
      /**
       * <pre>
       * only reference by variant sparse columns
       * </pre>
       *
       * <code>optional int32 parent_unique_id = 23;</code>
       * @return Whether the parentUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasParentUniqueId() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <pre>
       * only reference by variant sparse columns
       * </pre>
       *
       * <code>optional int32 parent_unique_id = 23;</code>
       * @return The parentUniqueId.
       */
      @java.lang.Override
      public int getParentUniqueId() {
        return parentUniqueId_;
      }
      /**
       * <pre>
       * only reference by variant sparse columns
       * </pre>
       *
       * <code>optional int32 parent_unique_id = 23;</code>
       * @param value The parentUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setParentUniqueId(int value) {

        parentUniqueId_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * only reference by variant sparse columns
       * </pre>
       *
       * <code>optional int32 parent_unique_id = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentUniqueId() {
        bitField0_ = (bitField0_ & ~0x00400000);
        parentUniqueId_ = 0;
        onChanged();
        return this;
      }

      private int beExecVersion_ ;
      /**
       * <code>optional int32 be_exec_version = 24;</code>
       * @return Whether the beExecVersion field is set.
       */
      @java.lang.Override
      public boolean hasBeExecVersion() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>optional int32 be_exec_version = 24;</code>
       * @return The beExecVersion.
       */
      @java.lang.Override
      public int getBeExecVersion() {
        return beExecVersion_;
      }
      /**
       * <code>optional int32 be_exec_version = 24;</code>
       * @param value The beExecVersion to set.
       * @return This builder for chaining.
       */
      public Builder setBeExecVersion(int value) {

        beExecVersion_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 be_exec_version = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearBeExecVersion() {
        bitField0_ = (bitField0_ & ~0x00800000);
        beExecVersion_ = 0;
        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.ColumnPB)
    }

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

    public static org.apache.doris.proto.OlapFile.ColumnPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ColumnPB>
        PARSER = new com.google.protobuf.AbstractParser<ColumnPB>() {
      @java.lang.Override
      public ColumnPB 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<ColumnPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    int getColumnDictCount();
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    boolean containsColumnDict(
        int key);
    /**
     * Use {@link #getColumnDictMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
    getColumnDict();
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
    getColumnDictMap();
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    /* nullable */
org.apache.doris.proto.OlapFile.ColumnPB getColumnDictOrDefault(
        int key,
        /* nullable */
org.apache.doris.proto.OlapFile.ColumnPB defaultValue);
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPB getColumnDictOrThrow(
        int key);

    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_column_dict_id = 2;</code>
     * @return Whether the currentColumnDictId field is set.
     */
    boolean hasCurrentColumnDictId();
    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_column_dict_id = 2;</code>
     * @return The currentColumnDictId.
     */
    long getCurrentColumnDictId();

    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    int getIndexDictCount();
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    boolean containsIndexDict(
        int key);
    /**
     * Use {@link #getIndexDictMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
    getIndexDict();
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
    getIndexDictMap();
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    /* nullable */
org.apache.doris.proto.OlapFile.TabletIndexPB getIndexDictOrDefault(
        int key,
        /* nullable */
org.apache.doris.proto.OlapFile.TabletIndexPB defaultValue);
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    org.apache.doris.proto.OlapFile.TabletIndexPB getIndexDictOrThrow(
        int key);

    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_index_dict_id = 4;</code>
     * @return Whether the currentIndexDictId field is set.
     */
    boolean hasCurrentIndexDictId();
    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_index_dict_id = 4;</code>
     * @return The currentIndexDictId.
     */
    long getCurrentIndexDictId();
  }
  /**
   * <pre>
   * Dictionary of Schema info, to reduce TabletSchemaCloudPB fdb kv size
   * </pre>
   *
   * Protobuf type {@code doris.SchemaCloudDictionary}
   */
  public static final class SchemaCloudDictionary extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.SchemaCloudDictionary)
      SchemaCloudDictionaryOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SchemaCloudDictionary.newBuilder() to construct.
    private SchemaCloudDictionary(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SchemaCloudDictionary() {
    }

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

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

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetColumnDict();
        case 3:
          return internalGetIndexDict();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.doris.proto.OlapFile.internal_static_doris_SchemaCloudDictionary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.doris.proto.OlapFile.SchemaCloudDictionary.class, org.apache.doris.proto.OlapFile.SchemaCloudDictionary.Builder.class);
    }

    private int bitField0_;
    public static final int COLUMN_DICT_FIELD_NUMBER = 1;
    private static final class ColumnDictDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>newDefaultInstance(
                  org.apache.doris.proto.OlapFile.internal_static_doris_SchemaCloudDictionary_ColumnDictEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> columnDict_;
    private com.google.protobuf.MapField<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
    internalGetColumnDict() {
      if (columnDict_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            ColumnDictDefaultEntryHolder.defaultEntry);
      }
      return columnDict_;
    }
    public int getColumnDictCount() {
      return internalGetColumnDict().getMap().size();
    }
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    @java.lang.Override
    public boolean containsColumnDict(
        int key) {

      return internalGetColumnDict().getMap().containsKey(key);
    }
    /**
     * Use {@link #getColumnDictMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> getColumnDict() {
      return getColumnDictMap();
    }
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> getColumnDictMap() {
      return internalGetColumnDict().getMap();
    }
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    @java.lang.Override
    public /* nullable */
org.apache.doris.proto.OlapFile.ColumnPB getColumnDictOrDefault(
        int key,
        /* nullable */
org.apache.doris.proto.OlapFile.ColumnPB defaultValue) {

      java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> map =
          internalGetColumnDict().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPB getColumnDictOrThrow(
        int key) {

      java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> map =
          internalGetColumnDict().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int CURRENT_COLUMN_DICT_ID_FIELD_NUMBER = 2;
    private long currentColumnDictId_ = 0L;
    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_column_dict_id = 2;</code>
     * @return Whether the currentColumnDictId field is set.
     */
    @java.lang.Override
    public boolean hasCurrentColumnDictId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_column_dict_id = 2;</code>
     * @return The currentColumnDictId.
     */
    @java.lang.Override
    public long getCurrentColumnDictId() {
      return currentColumnDictId_;
    }

    public static final int INDEX_DICT_FIELD_NUMBER = 3;
    private static final class IndexDictDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>newDefaultInstance(
                  org.apache.doris.proto.OlapFile.internal_static_doris_SchemaCloudDictionary_IndexDictEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> indexDict_;
    private com.google.protobuf.MapField<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
    internalGetIndexDict() {
      if (indexDict_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            IndexDictDefaultEntryHolder.defaultEntry);
      }
      return indexDict_;
    }
    public int getIndexDictCount() {
      return internalGetIndexDict().getMap().size();
    }
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    @java.lang.Override
    public boolean containsIndexDict(
        int key) {

      return internalGetIndexDict().getMap().containsKey(key);
    }
    /**
     * Use {@link #getIndexDictMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexDict() {
      return getIndexDictMap();
    }
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexDictMap() {
      return internalGetIndexDict().getMap();
    }
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    @java.lang.Override
    public /* nullable */
org.apache.doris.proto.OlapFile.TabletIndexPB getIndexDictOrDefault(
        int key,
        /* nullable */
org.apache.doris.proto.OlapFile.TabletIndexPB defaultValue) {

      java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> map =
          internalGetIndexDict().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletIndexPB getIndexDictOrThrow(
        int key) {

      java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> map =
          internalGetIndexDict().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int CURRENT_INDEX_DICT_ID_FIELD_NUMBER = 4;
    private long currentIndexDictId_ = 0L;
    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_index_dict_id = 4;</code>
     * @return Whether the currentIndexDictId field is set.
     */
    @java.lang.Override
    public boolean hasCurrentIndexDictId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * monotonic increasing
     * </pre>
     *
     * <code>optional int64 current_index_dict_id = 4;</code>
     * @return The currentIndexDictId.
     */
    @java.lang.Override
    public long getCurrentIndexDictId() {
      return currentIndexDictId_;
    }

    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 (org.apache.doris.proto.OlapFile.ColumnPB item : getColumnDictMap().values()) {
        if (!item.isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetColumnDict(),
          ColumnDictDefaultEntryHolder.defaultEntry,
          1);
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(2, currentColumnDictId_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetIndexDict(),
          IndexDictDefaultEntryHolder.defaultEntry,
          3);
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(4, currentIndexDictId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (java.util.Map.Entry<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> entry
           : internalGetColumnDict().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
        columnDict__ = ColumnDictDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, columnDict__);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, currentColumnDictId_);
      }
      for (java.util.Map.Entry<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> entry
           : internalGetIndexDict().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
        indexDict__ = IndexDictDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, indexDict__);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, currentIndexDictId_);
      }
      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.OlapFile.SchemaCloudDictionary)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.SchemaCloudDictionary other = (org.apache.doris.proto.OlapFile.SchemaCloudDictionary) obj;

      if (!internalGetColumnDict().equals(
          other.internalGetColumnDict())) return false;
      if (hasCurrentColumnDictId() != other.hasCurrentColumnDictId()) return false;
      if (hasCurrentColumnDictId()) {
        if (getCurrentColumnDictId()
            != other.getCurrentColumnDictId()) return false;
      }
      if (!internalGetIndexDict().equals(
          other.internalGetIndexDict())) return false;
      if (hasCurrentIndexDictId() != other.hasCurrentIndexDictId()) return false;
      if (hasCurrentIndexDictId()) {
        if (getCurrentIndexDictId()
            != other.getCurrentIndexDictId()) 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 (!internalGetColumnDict().getMap().isEmpty()) {
        hash = (37 * hash) + COLUMN_DICT_FIELD_NUMBER;
        hash = (53 * hash) + internalGetColumnDict().hashCode();
      }
      if (hasCurrentColumnDictId()) {
        hash = (37 * hash) + CURRENT_COLUMN_DICT_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCurrentColumnDictId());
      }
      if (!internalGetIndexDict().getMap().isEmpty()) {
        hash = (37 * hash) + INDEX_DICT_FIELD_NUMBER;
        hash = (53 * hash) + internalGetIndexDict().hashCode();
      }
      if (hasCurrentIndexDictId()) {
        hash = (37 * hash) + CURRENT_INDEX_DICT_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCurrentIndexDictId());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary 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.OlapFile.SchemaCloudDictionary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary 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.OlapFile.SchemaCloudDictionary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary 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.OlapFile.SchemaCloudDictionary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary 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.OlapFile.SchemaCloudDictionary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary 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.OlapFile.SchemaCloudDictionary 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;
    }
    /**
     * <pre>
     * Dictionary of Schema info, to reduce TabletSchemaCloudPB fdb kv size
     * </pre>
     *
     * Protobuf type {@code doris.SchemaCloudDictionary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.SchemaCloudDictionary)
        org.apache.doris.proto.OlapFile.SchemaCloudDictionaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_SchemaCloudDictionary_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetColumnDict();
          case 3:
            return internalGetIndexDict();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableColumnDict();
          case 3:
            return internalGetMutableIndexDict();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_SchemaCloudDictionary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapFile.SchemaCloudDictionary.class, org.apache.doris.proto.OlapFile.SchemaCloudDictionary.Builder.class);
      }

      // Construct using org.apache.doris.proto.OlapFile.SchemaCloudDictionary.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        internalGetMutableColumnDict().clear();
        currentColumnDictId_ = 0L;
        internalGetMutableIndexDict().clear();
        currentIndexDictId_ = 0L;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.SchemaCloudDictionary result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.columnDict_ = internalGetColumnDict();
          result.columnDict_.makeImmutable();
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.currentColumnDictId_ = currentColumnDictId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.indexDict_ = internalGetIndexDict();
          result.indexDict_.makeImmutable();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.currentIndexDictId_ = currentIndexDictId_;
          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.OlapFile.SchemaCloudDictionary) {
          return mergeFrom((org.apache.doris.proto.OlapFile.SchemaCloudDictionary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.SchemaCloudDictionary other) {
        if (other == org.apache.doris.proto.OlapFile.SchemaCloudDictionary.getDefaultInstance()) return this;
        internalGetMutableColumnDict().mergeFrom(
            other.internalGetColumnDict());
        bitField0_ |= 0x00000001;
        if (other.hasCurrentColumnDictId()) {
          setCurrentColumnDictId(other.getCurrentColumnDictId());
        }
        internalGetMutableIndexDict().mergeFrom(
            other.internalGetIndexDict());
        bitField0_ |= 0x00000004;
        if (other.hasCurrentIndexDictId()) {
          setCurrentIndexDictId(other.getCurrentIndexDictId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (org.apache.doris.proto.OlapFile.ColumnPB item : getColumnDictMap().values()) {
          if (!item.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: {
                com.google.protobuf.MapEntry<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
                columnDict__ = input.readMessage(
                    ColumnDictDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableColumnDict().getMutableMap().put(
                    columnDict__.getKey(), columnDict__.getValue());
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                currentColumnDictId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                com.google.protobuf.MapEntry<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
                indexDict__ = input.readMessage(
                    IndexDictDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableIndexDict().getMutableMap().put(
                    indexDict__.getKey(), indexDict__.getValue());
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                currentIndexDictId_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              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 com.google.protobuf.MapField<
          java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> columnDict_;
      private com.google.protobuf.MapField<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
          internalGetColumnDict() {
        if (columnDict_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              ColumnDictDefaultEntryHolder.defaultEntry);
        }
        return columnDict_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
          internalGetMutableColumnDict() {
        if (columnDict_ == null) {
          columnDict_ = com.google.protobuf.MapField.newMapField(
              ColumnDictDefaultEntryHolder.defaultEntry);
        }
        if (!columnDict_.isMutable()) {
          columnDict_ = columnDict_.copy();
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return columnDict_;
      }
      public int getColumnDictCount() {
        return internalGetColumnDict().getMap().size();
      }
      /**
       * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
       */
      @java.lang.Override
      public boolean containsColumnDict(
          int key) {

        return internalGetColumnDict().getMap().containsKey(key);
      }
      /**
       * Use {@link #getColumnDictMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> getColumnDict() {
        return getColumnDictMap();
      }
      /**
       * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> getColumnDictMap() {
        return internalGetColumnDict().getMap();
      }
      /**
       * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
       */
      @java.lang.Override
      public /* nullable */
org.apache.doris.proto.OlapFile.ColumnPB getColumnDictOrDefault(
          int key,
          /* nullable */
org.apache.doris.proto.OlapFile.ColumnPB defaultValue) {

        java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> map =
            internalGetColumnDict().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.ColumnPB getColumnDictOrThrow(
          int key) {

        java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> map =
            internalGetColumnDict().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearColumnDict() {
        bitField0_ = (bitField0_ & ~0x00000001);
        internalGetMutableColumnDict().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
       */
      public Builder removeColumnDict(
          int key) {

        internalGetMutableColumnDict().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB>
          getMutableColumnDict() {
        bitField0_ |= 0x00000001;
        return internalGetMutableColumnDict().getMutableMap();
      }
      /**
       * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
       */
      public Builder putColumnDict(
          int key,
          org.apache.doris.proto.OlapFile.ColumnPB value) {

        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableColumnDict().getMutableMap()
            .put(key, value);
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>map&lt;int32, .doris.ColumnPB&gt; column_dict = 1;</code>
       */
      public Builder putAllColumnDict(
          java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.ColumnPB> values) {
        internalGetMutableColumnDict().getMutableMap()
            .putAll(values);
        bitField0_ |= 0x00000001;
        return this;
      }

      private long currentColumnDictId_ ;
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_column_dict_id = 2;</code>
       * @return Whether the currentColumnDictId field is set.
       */
      @java.lang.Override
      public boolean hasCurrentColumnDictId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_column_dict_id = 2;</code>
       * @return The currentColumnDictId.
       */
      @java.lang.Override
      public long getCurrentColumnDictId() {
        return currentColumnDictId_;
      }
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_column_dict_id = 2;</code>
       * @param value The currentColumnDictId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentColumnDictId(long value) {

        currentColumnDictId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_column_dict_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentColumnDictId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        currentColumnDictId_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> indexDict_;
      private com.google.protobuf.MapField<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
          internalGetIndexDict() {
        if (indexDict_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              IndexDictDefaultEntryHolder.defaultEntry);
        }
        return indexDict_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
          internalGetMutableIndexDict() {
        if (indexDict_ == null) {
          indexDict_ = com.google.protobuf.MapField.newMapField(
              IndexDictDefaultEntryHolder.defaultEntry);
        }
        if (!indexDict_.isMutable()) {
          indexDict_ = indexDict_.copy();
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return indexDict_;
      }
      public int getIndexDictCount() {
        return internalGetIndexDict().getMap().size();
      }
      /**
       * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
       */
      @java.lang.Override
      public boolean containsIndexDict(
          int key) {

        return internalGetIndexDict().getMap().containsKey(key);
      }
      /**
       * Use {@link #getIndexDictMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexDict() {
        return getIndexDictMap();
      }
      /**
       * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexDictMap() {
        return internalGetIndexDict().getMap();
      }
      /**
       * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
       */
      @java.lang.Override
      public /* nullable */
org.apache.doris.proto.OlapFile.TabletIndexPB getIndexDictOrDefault(
          int key,
          /* nullable */
org.apache.doris.proto.OlapFile.TabletIndexPB defaultValue) {

        java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> map =
            internalGetIndexDict().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.TabletIndexPB getIndexDictOrThrow(
          int key) {

        java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> map =
            internalGetIndexDict().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearIndexDict() {
        bitField0_ = (bitField0_ & ~0x00000004);
        internalGetMutableIndexDict().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
       */
      public Builder removeIndexDict(
          int key) {

        internalGetMutableIndexDict().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB>
          getMutableIndexDict() {
        bitField0_ |= 0x00000004;
        return internalGetMutableIndexDict().getMutableMap();
      }
      /**
       * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
       */
      public Builder putIndexDict(
          int key,
          org.apache.doris.proto.OlapFile.TabletIndexPB value) {

        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableIndexDict().getMutableMap()
            .put(key, value);
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>map&lt;int32, .doris.TabletIndexPB&gt; index_dict = 3;</code>
       */
      public Builder putAllIndexDict(
          java.util.Map<java.lang.Integer, org.apache.doris.proto.OlapFile.TabletIndexPB> values) {
        internalGetMutableIndexDict().getMutableMap()
            .putAll(values);
        bitField0_ |= 0x00000004;
        return this;
      }

      private long currentIndexDictId_ ;
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_index_dict_id = 4;</code>
       * @return Whether the currentIndexDictId field is set.
       */
      @java.lang.Override
      public boolean hasCurrentIndexDictId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_index_dict_id = 4;</code>
       * @return The currentIndexDictId.
       */
      @java.lang.Override
      public long getCurrentIndexDictId() {
        return currentIndexDictId_;
      }
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_index_dict_id = 4;</code>
       * @param value The currentIndexDictId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentIndexDictId(long value) {

        currentIndexDictId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * monotonic increasing
       * </pre>
       *
       * <code>optional int64 current_index_dict_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentIndexDictId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        currentIndexDictId_ = 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.SchemaCloudDictionary)
    }

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

    public static org.apache.doris.proto.OlapFile.SchemaCloudDictionary getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<SchemaCloudDictionary>
        PARSER = new com.google.protobuf.AbstractParser<SchemaCloudDictionary>() {
      @java.lang.Override
      public SchemaCloudDictionary 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<SchemaCloudDictionary> parser() {
      return PARSER;
    }

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

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

  }

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

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

    /**
     * <code>optional string index_name = 2;</code>
     * @return Whether the indexName field is set.
     */
    boolean hasIndexName();
    /**
     * <code>optional string index_name = 2;</code>
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * <code>optional string index_name = 2;</code>
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * <code>optional .doris.IndexType index_type = 3;</code>
     * @return Whether the indexType field is set.
     */
    boolean hasIndexType();
    /**
     * <code>optional .doris.IndexType index_type = 3;</code>
     * @return The indexType.
     */
    org.apache.doris.proto.OlapFile.IndexType getIndexType();

    /**
     * <code>repeated int32 col_unique_id = 4;</code>
     * @return A list containing the colUniqueId.
     */
    java.util.List<java.lang.Integer> getColUniqueIdList();
    /**
     * <code>repeated int32 col_unique_id = 4;</code>
     * @return The count of colUniqueId.
     */
    int getColUniqueIdCount();
    /**
     * <code>repeated int32 col_unique_id = 4;</code>
     * @param index The index of the element to return.
     * @return The colUniqueId at the given index.
     */
    int getColUniqueId(int index);

    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    int getPropertiesCount();
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    boolean containsProperties(
        java.lang.String key);
    /**
     * Use {@link #getPropertiesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getProperties();
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getPropertiesMap();
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    /* nullable */
java.lang.String getPropertiesOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    java.lang.String getPropertiesOrThrow(
        java.lang.String key);

    /**
     * <code>optional string index_suffix_name = 6;</code>
     * @return Whether the indexSuffixName field is set.
     */
    boolean hasIndexSuffixName();
    /**
     * <code>optional string index_suffix_name = 6;</code>
     * @return The indexSuffixName.
     */
    java.lang.String getIndexSuffixName();
    /**
     * <code>optional string index_suffix_name = 6;</code>
     * @return The bytes for indexSuffixName.
     */
    com.google.protobuf.ByteString
        getIndexSuffixNameBytes();
  }
  /**
   * Protobuf type {@code doris.TabletIndexPB}
   */
  public static final class TabletIndexPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.TabletIndexPB)
      TabletIndexPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TabletIndexPB.newBuilder() to construct.
    private TabletIndexPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TabletIndexPB() {
      indexName_ = "";
      indexType_ = 0;
      colUniqueId_ = emptyIntList();
      indexSuffixName_ = "";
    }

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

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

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 5:
          return internalGetProperties();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.doris.proto.OlapFile.internal_static_doris_TabletIndexPB_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.doris.proto.OlapFile.TabletIndexPB.class, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder.class);
    }

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

    public static final int INDEX_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * <code>optional string index_name = 2;</code>
     * @return Whether the indexName field is set.
     */
    @java.lang.Override
    public boolean hasIndexName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string index_name = 2;</code>
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      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()) {
          indexName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string index_name = 2;</code>
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INDEX_TYPE_FIELD_NUMBER = 3;
    private int indexType_ = 0;
    /**
     * <code>optional .doris.IndexType index_type = 3;</code>
     * @return Whether the indexType field is set.
     */
    @java.lang.Override public boolean hasIndexType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .doris.IndexType index_type = 3;</code>
     * @return The indexType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.IndexType getIndexType() {
      org.apache.doris.proto.OlapFile.IndexType result = org.apache.doris.proto.OlapFile.IndexType.forNumber(indexType_);
      return result == null ? org.apache.doris.proto.OlapFile.IndexType.BITMAP : result;
    }

    public static final int COL_UNIQUE_ID_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList colUniqueId_ =
        emptyIntList();
    /**
     * <code>repeated int32 col_unique_id = 4;</code>
     * @return A list containing the colUniqueId.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getColUniqueIdList() {
      return colUniqueId_;
    }
    /**
     * <code>repeated int32 col_unique_id = 4;</code>
     * @return The count of colUniqueId.
     */
    public int getColUniqueIdCount() {
      return colUniqueId_.size();
    }
    /**
     * <code>repeated int32 col_unique_id = 4;</code>
     * @param index The index of the element to return.
     * @return The colUniqueId at the given index.
     */
    public int getColUniqueId(int index) {
      return colUniqueId_.getInt(index);
    }

    public static final int PROPERTIES_FIELD_NUMBER = 5;
    private static final class PropertiesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  org.apache.doris.proto.OlapFile.internal_static_doris_TabletIndexPB_PropertiesEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> properties_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetProperties() {
      if (properties_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            PropertiesDefaultEntryHolder.defaultEntry);
      }
      return properties_;
    }
    public int getPropertiesCount() {
      return internalGetProperties().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    @java.lang.Override
    public boolean containsProperties(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetProperties().getMap().containsKey(key);
    }
    /**
     * Use {@link #getPropertiesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getProperties() {
      return getPropertiesMap();
    }
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, java.lang.String> getPropertiesMap() {
      return internalGetProperties().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    @java.lang.Override
    public /* nullable */
java.lang.String getPropertiesOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetProperties().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; properties = 5;</code>
     */
    @java.lang.Override
    public java.lang.String getPropertiesOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetProperties().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int INDEX_SUFFIX_NAME_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexSuffixName_ = "";
    /**
     * <code>optional string index_suffix_name = 6;</code>
     * @return Whether the indexSuffixName field is set.
     */
    @java.lang.Override
    public boolean hasIndexSuffixName() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string index_suffix_name = 6;</code>
     * @return The indexSuffixName.
     */
    @java.lang.Override
    public java.lang.String getIndexSuffixName() {
      java.lang.Object ref = indexSuffixName_;
      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()) {
          indexSuffixName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string index_suffix_name = 6;</code>
     * @return The bytes for indexSuffixName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexSuffixNameBytes() {
      java.lang.Object ref = indexSuffixName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexSuffixName_ = 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;

      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)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, indexName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, indexType_);
      }
      for (int i = 0; i < colUniqueId_.size(); i++) {
        output.writeInt32(4, colUniqueId_.getInt(i));
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetProperties(),
          PropertiesDefaultEntryHolder.defaultEntry,
          5);
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, indexSuffixName_);
      }
      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.GeneratedMessageV3.computeStringSize(2, indexName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, indexType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < colUniqueId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(colUniqueId_.getInt(i));
        }
        size += dataSize;
        size += 1 * getColUniqueIdList().size();
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetProperties().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        properties__ = PropertiesDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, properties__);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, indexSuffixName_);
      }
      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.OlapFile.TabletIndexPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.TabletIndexPB other = (org.apache.doris.proto.OlapFile.TabletIndexPB) obj;

      if (hasIndexId() != other.hasIndexId()) return false;
      if (hasIndexId()) {
        if (getIndexId()
            != other.getIndexId()) return false;
      }
      if (hasIndexName() != other.hasIndexName()) return false;
      if (hasIndexName()) {
        if (!getIndexName()
            .equals(other.getIndexName())) return false;
      }
      if (hasIndexType() != other.hasIndexType()) return false;
      if (hasIndexType()) {
        if (indexType_ != other.indexType_) return false;
      }
      if (!getColUniqueIdList()
          .equals(other.getColUniqueIdList())) return false;
      if (!internalGetProperties().equals(
          other.internalGetProperties())) return false;
      if (hasIndexSuffixName() != other.hasIndexSuffixName()) return false;
      if (hasIndexSuffixName()) {
        if (!getIndexSuffixName()
            .equals(other.getIndexSuffixName())) 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 (hasIndexName()) {
        hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getIndexName().hashCode();
      }
      if (hasIndexType()) {
        hash = (37 * hash) + INDEX_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + indexType_;
      }
      if (getColUniqueIdCount() > 0) {
        hash = (37 * hash) + COL_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getColUniqueIdList().hashCode();
      }
      if (!internalGetProperties().getMap().isEmpty()) {
        hash = (37 * hash) + PROPERTIES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetProperties().hashCode();
      }
      if (hasIndexSuffixName()) {
        hash = (37 * hash) + INDEX_SUFFIX_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getIndexSuffixName().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.TabletIndexPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletIndexPB 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.OlapFile.TabletIndexPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletIndexPB 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.OlapFile.TabletIndexPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletIndexPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.TabletIndexPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletIndexPB 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.OlapFile.TabletIndexPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.TabletIndexPB 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.OlapFile.TabletIndexPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletIndexPB 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.OlapFile.TabletIndexPB 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.TabletIndexPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.TabletIndexPB)
        org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_TabletIndexPB_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 5:
            return internalGetProperties();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 5:
            return internalGetMutableProperties();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_TabletIndexPB_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapFile.TabletIndexPB.class, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder.class);
      }

      // Construct using org.apache.doris.proto.OlapFile.TabletIndexPB.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;
        indexName_ = "";
        indexType_ = 0;
        colUniqueId_ = emptyIntList();
        internalGetMutableProperties().clear();
        indexSuffixName_ = "";
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.TabletIndexPB 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.indexName_ = indexName_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.indexType_ = indexType_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          colUniqueId_.makeImmutable();
          result.colUniqueId_ = colUniqueId_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.properties_ = internalGetProperties();
          result.properties_.makeImmutable();
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.indexSuffixName_ = indexSuffixName_;
          to_bitField0_ |= 0x00000008;
        }
        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.OlapFile.TabletIndexPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.TabletIndexPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.TabletIndexPB other) {
        if (other == org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance()) return this;
        if (other.hasIndexId()) {
          setIndexId(other.getIndexId());
        }
        if (other.hasIndexName()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasIndexType()) {
          setIndexType(other.getIndexType());
        }
        if (!other.colUniqueId_.isEmpty()) {
          if (colUniqueId_.isEmpty()) {
            colUniqueId_ = other.colUniqueId_;
            colUniqueId_.makeImmutable();
            bitField0_ |= 0x00000008;
          } else {
            ensureColUniqueIdIsMutable();
            colUniqueId_.addAll(other.colUniqueId_);
          }
          onChanged();
        }
        internalGetMutableProperties().mergeFrom(
            other.internalGetProperties());
        bitField0_ |= 0x00000010;
        if (other.hasIndexSuffixName()) {
          indexSuffixName_ = other.indexSuffixName_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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 18: {
                indexName_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.IndexType tmpValue =
                    org.apache.doris.proto.OlapFile.IndexType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  indexType_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              case 32: {
                int v = input.readInt32();
                ensureColUniqueIdIsMutable();
                colUniqueId_.addInt(v);
                break;
              } // case 32
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureColUniqueIdIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  colUniqueId_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 42: {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
                properties__ = input.readMessage(
                    PropertiesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableProperties().getMutableMap().put(
                    properties__.getKey(), properties__.getValue());
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                indexSuffixName_ = input.readBytes();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              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>optional int64 index_id = 1;</code>
       * @return Whether the indexId field is set.
       */
      @java.lang.Override
      public boolean hasIndexId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 index_id = 1;</code>
       * @return The indexId.
       */
      @java.lang.Override
      public long getIndexId() {
        return indexId_;
      }
      /**
       * <code>optional 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>optional int64 index_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        indexId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object indexName_ = "";
      /**
       * <code>optional string index_name = 2;</code>
       * @return Whether the indexName field is set.
       */
      public boolean hasIndexName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string index_name = 2;</code>
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        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()) {
            indexName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string index_name = 2;</code>
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string index_name = 2;</code>
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional string index_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>optional string index_name = 2;</code>
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int indexType_ = 0;
      /**
       * <code>optional .doris.IndexType index_type = 3;</code>
       * @return Whether the indexType field is set.
       */
      @java.lang.Override public boolean hasIndexType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .doris.IndexType index_type = 3;</code>
       * @return The indexType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.IndexType getIndexType() {
        org.apache.doris.proto.OlapFile.IndexType result = org.apache.doris.proto.OlapFile.IndexType.forNumber(indexType_);
        return result == null ? org.apache.doris.proto.OlapFile.IndexType.BITMAP : result;
      }
      /**
       * <code>optional .doris.IndexType index_type = 3;</code>
       * @param value The indexType to set.
       * @return This builder for chaining.
       */
      public Builder setIndexType(org.apache.doris.proto.OlapFile.IndexType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        indexType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.IndexType index_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        indexType_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList colUniqueId_ = emptyIntList();
      private void ensureColUniqueIdIsMutable() {
        if (!colUniqueId_.isModifiable()) {
          colUniqueId_ = makeMutableCopy(colUniqueId_);
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <code>repeated int32 col_unique_id = 4;</code>
       * @return A list containing the colUniqueId.
       */
      public java.util.List<java.lang.Integer>
          getColUniqueIdList() {
        colUniqueId_.makeImmutable();
        return colUniqueId_;
      }
      /**
       * <code>repeated int32 col_unique_id = 4;</code>
       * @return The count of colUniqueId.
       */
      public int getColUniqueIdCount() {
        return colUniqueId_.size();
      }
      /**
       * <code>repeated int32 col_unique_id = 4;</code>
       * @param index The index of the element to return.
       * @return The colUniqueId at the given index.
       */
      public int getColUniqueId(int index) {
        return colUniqueId_.getInt(index);
      }
      /**
       * <code>repeated int32 col_unique_id = 4;</code>
       * @param index The index to set the value at.
       * @param value The colUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setColUniqueId(
          int index, int value) {

        ensureColUniqueIdIsMutable();
        colUniqueId_.setInt(index, value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 col_unique_id = 4;</code>
       * @param value The colUniqueId to add.
       * @return This builder for chaining.
       */
      public Builder addColUniqueId(int value) {

        ensureColUniqueIdIsMutable();
        colUniqueId_.addInt(value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 col_unique_id = 4;</code>
       * @param values The colUniqueId to add.
       * @return This builder for chaining.
       */
      public Builder addAllColUniqueId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureColUniqueIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, colUniqueId_);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 col_unique_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearColUniqueId() {
        colUniqueId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> properties_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetProperties() {
        if (properties_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              PropertiesDefaultEntryHolder.defaultEntry);
        }
        return properties_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableProperties() {
        if (properties_ == null) {
          properties_ = com.google.protobuf.MapField.newMapField(
              PropertiesDefaultEntryHolder.defaultEntry);
        }
        if (!properties_.isMutable()) {
          properties_ = properties_.copy();
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return properties_;
      }
      public int getPropertiesCount() {
        return internalGetProperties().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; properties = 5;</code>
       */
      @java.lang.Override
      public boolean containsProperties(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetProperties().getMap().containsKey(key);
      }
      /**
       * Use {@link #getPropertiesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getProperties() {
        return getPropertiesMap();
      }
      /**
       * <code>map&lt;string, string&gt; properties = 5;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.String> getPropertiesMap() {
        return internalGetProperties().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; properties = 5;</code>
       */
      @java.lang.Override
      public /* nullable */
java.lang.String getPropertiesOrDefault(
          java.lang.String key,
          /* nullable */
java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetProperties().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; properties = 5;</code>
       */
      @java.lang.Override
      public java.lang.String getPropertiesOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetProperties().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearProperties() {
        bitField0_ = (bitField0_ & ~0x00000010);
        internalGetMutableProperties().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; properties = 5;</code>
       */
      public Builder removeProperties(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableProperties().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
          getMutableProperties() {
        bitField0_ |= 0x00000010;
        return internalGetMutableProperties().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; properties = 5;</code>
       */
      public Builder putProperties(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableProperties().getMutableMap()
            .put(key, value);
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; properties = 5;</code>
       */
      public Builder putAllProperties(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableProperties().getMutableMap()
            .putAll(values);
        bitField0_ |= 0x00000010;
        return this;
      }

      private java.lang.Object indexSuffixName_ = "";
      /**
       * <code>optional string index_suffix_name = 6;</code>
       * @return Whether the indexSuffixName field is set.
       */
      public boolean hasIndexSuffixName() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string index_suffix_name = 6;</code>
       * @return The indexSuffixName.
       */
      public java.lang.String getIndexSuffixName() {
        java.lang.Object ref = indexSuffixName_;
        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()) {
            indexSuffixName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string index_suffix_name = 6;</code>
       * @return The bytes for indexSuffixName.
       */
      public com.google.protobuf.ByteString
          getIndexSuffixNameBytes() {
        java.lang.Object ref = indexSuffixName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexSuffixName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string index_suffix_name = 6;</code>
       * @param value The indexSuffixName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexSuffixName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexSuffixName_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional string index_suffix_name = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexSuffixName() {
        indexSuffixName_ = getDefaultInstance().getIndexSuffixName();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>optional string index_suffix_name = 6;</code>
       * @param value The bytes for indexSuffixName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexSuffixNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        indexSuffixName_ = value;
        bitField0_ |= 0x00000020;
        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.TabletIndexPB)
    }

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

    public static org.apache.doris.proto.OlapFile.TabletIndexPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TabletIndexPB>
        PARSER = new com.google.protobuf.AbstractParser<TabletIndexPB>() {
      @java.lang.Override
      public TabletIndexPB 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<TabletIndexPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return Whether the keysType field is set.
     */
    boolean hasKeysType();
    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return The keysType.
     */
    org.apache.doris.proto.OlapFile.KeysType getKeysType();

    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> 
        getColumnList();
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPB getColumn(int index);
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    int getColumnCount();
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getColumnOrBuilderList();
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnOrBuilder(
        int index);

    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return Whether the numShortKeyColumns field is set.
     */
    boolean hasNumShortKeyColumns();
    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return The numShortKeyColumns.
     */
    int getNumShortKeyColumns();

    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return Whether the numRowsPerRowBlock field is set.
     */
    boolean hasNumRowsPerRowBlock();
    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return The numRowsPerRowBlock.
     */
    int getNumRowsPerRowBlock();

    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return Whether the compressKind field is set.
     */
    boolean hasCompressKind();
    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return The compressKind.
     */
    org.apache.doris.proto.OlapCommon.CompressKind getCompressKind();

    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return Whether the bfFpp field is set.
     */
    boolean hasBfFpp();
    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return The bfFpp.
     */
    double getBfFpp();

    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return Whether the nextColumnUniqueId field is set.
     */
    boolean hasNextColumnUniqueId();
    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return The nextColumnUniqueId.
     */
    int getNextColumnUniqueId();

    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 8 [default = false];</code>
     * @return Whether the isInMemory field is set.
     */
    boolean hasIsInMemory();
    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 8 [default = false];</code>
     * @return The isInMemory.
     */
    boolean getIsInMemory();

    /**
     * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
     * @return Whether the deleteSignIdx field is set.
     */
    boolean hasDeleteSignIdx();
    /**
     * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
     * @return The deleteSignIdx.
     */
    int getDeleteSignIdx();

    /**
     * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
     * @return Whether the sequenceColIdx field is set.
     */
    boolean hasSequenceColIdx();
    /**
     * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
     * @return The sequenceColIdx.
     */
    int getSequenceColIdx();

    /**
     * <code>optional .doris.SortType sort_type = 11;</code>
     * @return Whether the sortType field is set.
     */
    boolean hasSortType();
    /**
     * <code>optional .doris.SortType sort_type = 11;</code>
     * @return The sortType.
     */
    org.apache.doris.proto.OlapFile.SortType getSortType();

    /**
     * <code>optional int32 sort_col_num = 12;</code>
     * @return Whether the sortColNum field is set.
     */
    boolean hasSortColNum();
    /**
     * <code>optional int32 sort_col_num = 12;</code>
     * @return The sortColNum.
     */
    int getSortColNum();

    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
     * @return Whether the compressionType field is set.
     */
    boolean hasCompressionType();
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
     * @return The compressionType.
     */
    doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType();

    /**
     * <code>optional int32 schema_version = 14;</code>
     * @return Whether the schemaVersion field is set.
     */
    boolean hasSchemaVersion();
    /**
     * <code>optional int32 schema_version = 14;</code>
     * @return The schemaVersion.
     */
    int getSchemaVersion();

    /**
     * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
     * @return Whether the disableAutoCompaction field is set.
     */
    boolean hasDisableAutoCompaction();
    /**
     * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
     * @return The disableAutoCompaction.
     */
    boolean getDisableAutoCompaction();

    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> 
        getIndexList();
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    org.apache.doris.proto.OlapFile.TabletIndexPB getIndex(int index);
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    int getIndexCount();
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
        getIndexOrBuilderList();
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexOrBuilder(
        int index);

    /**
     * <code>optional int32 version_col_idx = 17 [default = -1];</code>
     * @return Whether the versionColIdx field is set.
     */
    boolean hasVersionColIdx();
    /**
     * <code>optional int32 version_col_idx = 17 [default = -1];</code>
     * @return The versionColIdx.
     */
    int getVersionColIdx();

    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return Whether the storeRowColumn field is set.
     */
    boolean hasStoreRowColumn();
    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return The storeRowColumn.
     */
    boolean getStoreRowColumn();

    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
     * @return Whether the isDynamicSchema field is set.
     */
    boolean hasIsDynamicSchema();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
     * @return The isDynamicSchema.
     */
    boolean getIsDynamicSchema();

    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return Whether the enableSingleReplicaCompaction field is set.
     */
    boolean hasEnableSingleReplicaCompaction();
    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return The enableSingleReplicaCompaction.
     */
    boolean getEnableSingleReplicaCompaction();

    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return Whether the skipWriteIndexOnLoad field is set.
     */
    boolean hasSkipWriteIndexOnLoad();
    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return The skipWriteIndexOnLoad.
     */
    boolean getSkipWriteIndexOnLoad();

    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return A list containing the clusterKeyUids.
     */
    java.util.List<java.lang.Integer> getClusterKeyUidsList();
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return The count of clusterKeyUids.
     */
    int getClusterKeyUidsCount();
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @param index The index of the element to return.
     * @return The clusterKeyUids at the given index.
     */
    int getClusterKeyUids(int index);

    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return Whether the invertedIndexStorageFormat field is set.
     */
    boolean hasInvertedIndexStorageFormat();
    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return The invertedIndexStorageFormat.
     */
    org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB getInvertedIndexStorageFormat();

    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return A list containing the rowStoreColumnUniqueIds.
     */
    java.util.List<java.lang.Integer> getRowStoreColumnUniqueIdsList();
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return The count of rowStoreColumnUniqueIds.
     */
    int getRowStoreColumnUniqueIdsCount();
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @param index The index of the element to return.
     * @return The rowStoreColumnUniqueIds at the given index.
     */
    int getRowStoreColumnUniqueIds(int index);

    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return Whether the rowStorePageSize field is set.
     */
    boolean hasRowStorePageSize();
    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return The rowStorePageSize.
     */
    long getRowStorePageSize();

    /**
     * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
     * @return Whether the enableVariantFlattenNested field is set.
     */
    boolean hasEnableVariantFlattenNested();
    /**
     * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
     * @return The enableVariantFlattenNested.
     */
    boolean getEnableVariantFlattenNested();

    /**
     * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
     * @return Whether the skipBitmapColIdx field is set.
     */
    boolean hasSkipBitmapColIdx();
    /**
     * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
     * @return The skipBitmapColIdx.
     */
    int getSkipBitmapColIdx();

    /**
     * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
     * @return Whether the storagePageSize field is set.
     */
    boolean hasStoragePageSize();
    /**
     * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
     * @return The storagePageSize.
     */
    long getStoragePageSize();
  }
  /**
   * <pre>
   * ATTN: When adding or deleting fields, please update `message TabletSchemaCloudPB`
   * simultaneously and modify the conversion function in the be/src/cloud/pb_convert.{h,cpp}.
   * </pre>
   *
   * Protobuf type {@code doris.TabletSchemaPB}
   */
  public static final class TabletSchemaPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.TabletSchemaPB)
      TabletSchemaPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TabletSchemaPB.newBuilder() to construct.
    private TabletSchemaPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TabletSchemaPB() {
      keysType_ = 0;
      column_ = java.util.Collections.emptyList();
      compressKind_ = 0;
      deleteSignIdx_ = -1;
      sequenceColIdx_ = -1;
      sortType_ = 0;
      compressionType_ = 5;
      index_ = java.util.Collections.emptyList();
      versionColIdx_ = -1;
      clusterKeyUids_ = emptyIntList();
      invertedIndexStorageFormat_ = 0;
      rowStoreColumnUniqueIds_ = emptyIntList();
      rowStorePageSize_ = 16384L;
      skipBitmapColIdx_ = -1;
      storagePageSize_ = 65536L;
    }

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

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

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

    private int bitField0_;
    public static final int KEYS_TYPE_FIELD_NUMBER = 1;
    private int keysType_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return Whether the keysType field is set.
     */
    @java.lang.Override public boolean hasKeysType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return The keysType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.KeysType getKeysType() {
      org.apache.doris.proto.OlapFile.KeysType result = org.apache.doris.proto.OlapFile.KeysType.forNumber(keysType_);
      return result == null ? org.apache.doris.proto.OlapFile.KeysType.DUP_KEYS : result;
    }

    public static final int COLUMN_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> column_;
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getColumnList() {
      return column_;
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getColumnOrBuilderList() {
      return column_;
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public int getColumnCount() {
      return column_.size();
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPB getColumn(int index) {
      return column_.get(index);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnOrBuilder(
        int index) {
      return column_.get(index);
    }

    public static final int NUM_SHORT_KEY_COLUMNS_FIELD_NUMBER = 3;
    private int numShortKeyColumns_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return Whether the numShortKeyColumns field is set.
     */
    @java.lang.Override
    public boolean hasNumShortKeyColumns() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return The numShortKeyColumns.
     */
    @java.lang.Override
    public int getNumShortKeyColumns() {
      return numShortKeyColumns_;
    }

    public static final int NUM_ROWS_PER_ROW_BLOCK_FIELD_NUMBER = 4;
    private int numRowsPerRowBlock_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return Whether the numRowsPerRowBlock field is set.
     */
    @java.lang.Override
    public boolean hasNumRowsPerRowBlock() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return The numRowsPerRowBlock.
     */
    @java.lang.Override
    public int getNumRowsPerRowBlock() {
      return numRowsPerRowBlock_;
    }

    public static final int COMPRESS_KIND_FIELD_NUMBER = 5;
    private int compressKind_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return Whether the compressKind field is set.
     */
    @java.lang.Override public boolean hasCompressKind() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return The compressKind.
     */
    @java.lang.Override public org.apache.doris.proto.OlapCommon.CompressKind getCompressKind() {
      org.apache.doris.proto.OlapCommon.CompressKind result = org.apache.doris.proto.OlapCommon.CompressKind.forNumber(compressKind_);
      return result == null ? org.apache.doris.proto.OlapCommon.CompressKind.COMPRESS_NONE : result;
    }

    public static final int BF_FPP_FIELD_NUMBER = 6;
    private double bfFpp_ = 0D;
    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return Whether the bfFpp field is set.
     */
    @java.lang.Override
    public boolean hasBfFpp() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return The bfFpp.
     */
    @java.lang.Override
    public double getBfFpp() {
      return bfFpp_;
    }

    public static final int NEXT_COLUMN_UNIQUE_ID_FIELD_NUMBER = 7;
    private int nextColumnUniqueId_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return Whether the nextColumnUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasNextColumnUniqueId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return The nextColumnUniqueId.
     */
    @java.lang.Override
    public int getNextColumnUniqueId() {
      return nextColumnUniqueId_;
    }

    public static final int IS_IN_MEMORY_FIELD_NUMBER = 8;
    private boolean isInMemory_ = false;
    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 8 [default = false];</code>
     * @return Whether the isInMemory field is set.
     */
    @java.lang.Override
    public boolean hasIsInMemory() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 8 [default = false];</code>
     * @return The isInMemory.
     */
    @java.lang.Override
    public boolean getIsInMemory() {
      return isInMemory_;
    }

    public static final int DELETE_SIGN_IDX_FIELD_NUMBER = 9;
    private int deleteSignIdx_ = -1;
    /**
     * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
     * @return Whether the deleteSignIdx field is set.
     */
    @java.lang.Override
    public boolean hasDeleteSignIdx() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
     * @return The deleteSignIdx.
     */
    @java.lang.Override
    public int getDeleteSignIdx() {
      return deleteSignIdx_;
    }

    public static final int SEQUENCE_COL_IDX_FIELD_NUMBER = 10;
    private int sequenceColIdx_ = -1;
    /**
     * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
     * @return Whether the sequenceColIdx field is set.
     */
    @java.lang.Override
    public boolean hasSequenceColIdx() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
     * @return The sequenceColIdx.
     */
    @java.lang.Override
    public int getSequenceColIdx() {
      return sequenceColIdx_;
    }

    public static final int SORT_TYPE_FIELD_NUMBER = 11;
    private int sortType_ = 0;
    /**
     * <code>optional .doris.SortType sort_type = 11;</code>
     * @return Whether the sortType field is set.
     */
    @java.lang.Override public boolean hasSortType() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .doris.SortType sort_type = 11;</code>
     * @return The sortType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.SortType getSortType() {
      org.apache.doris.proto.OlapFile.SortType result = org.apache.doris.proto.OlapFile.SortType.forNumber(sortType_);
      return result == null ? org.apache.doris.proto.OlapFile.SortType.LEXICAL : result;
    }

    public static final int SORT_COL_NUM_FIELD_NUMBER = 12;
    private int sortColNum_ = 0;
    /**
     * <code>optional int32 sort_col_num = 12;</code>
     * @return Whether the sortColNum field is set.
     */
    @java.lang.Override
    public boolean hasSortColNum() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional int32 sort_col_num = 12;</code>
     * @return The sortColNum.
     */
    @java.lang.Override
    public int getSortColNum() {
      return sortColNum_;
    }

    public static final int COMPRESSION_TYPE_FIELD_NUMBER = 13;
    private int compressionType_ = 5;
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
     * @return Whether the compressionType field is set.
     */
    @java.lang.Override public boolean hasCompressionType() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
     * @return The compressionType.
     */
    @java.lang.Override public doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType() {
      doris.segment_v2.SegmentV2.CompressionTypePB result = doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(compressionType_);
      return result == null ? doris.segment_v2.SegmentV2.CompressionTypePB.LZ4F : result;
    }

    public static final int SCHEMA_VERSION_FIELD_NUMBER = 14;
    private int schemaVersion_ = 0;
    /**
     * <code>optional int32 schema_version = 14;</code>
     * @return Whether the schemaVersion field is set.
     */
    @java.lang.Override
    public boolean hasSchemaVersion() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional int32 schema_version = 14;</code>
     * @return The schemaVersion.
     */
    @java.lang.Override
    public int getSchemaVersion() {
      return schemaVersion_;
    }

    public static final int DISABLE_AUTO_COMPACTION_FIELD_NUMBER = 15;
    private boolean disableAutoCompaction_ = false;
    /**
     * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
     * @return Whether the disableAutoCompaction field is set.
     */
    @java.lang.Override
    public boolean hasDisableAutoCompaction() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
     * @return The disableAutoCompaction.
     */
    @java.lang.Override
    public boolean getDisableAutoCompaction() {
      return disableAutoCompaction_;
    }

    public static final int INDEX_FIELD_NUMBER = 16;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> index_;
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexList() {
      return index_;
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
        getIndexOrBuilderList() {
      return index_;
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    @java.lang.Override
    public int getIndexCount() {
      return index_.size();
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletIndexPB getIndex(int index) {
      return index_.get(index);
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 16;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexOrBuilder(
        int index) {
      return index_.get(index);
    }

    public static final int VERSION_COL_IDX_FIELD_NUMBER = 17;
    private int versionColIdx_ = -1;
    /**
     * <code>optional int32 version_col_idx = 17 [default = -1];</code>
     * @return Whether the versionColIdx field is set.
     */
    @java.lang.Override
    public boolean hasVersionColIdx() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional int32 version_col_idx = 17 [default = -1];</code>
     * @return The versionColIdx.
     */
    @java.lang.Override
    public int getVersionColIdx() {
      return versionColIdx_;
    }

    public static final int STORE_ROW_COLUMN_FIELD_NUMBER = 18;
    private boolean storeRowColumn_ = false;
    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return Whether the storeRowColumn field is set.
     */
    @java.lang.Override
    public boolean hasStoreRowColumn() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return The storeRowColumn.
     */
    @java.lang.Override
    public boolean getStoreRowColumn() {
      return storeRowColumn_;
    }

    public static final int IS_DYNAMIC_SCHEMA_FIELD_NUMBER = 19;
    private boolean isDynamicSchema_ = false;
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
     * @return Whether the isDynamicSchema field is set.
     */
    @java.lang.Override
    public boolean hasIsDynamicSchema() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
     * @return The isDynamicSchema.
     */
    @java.lang.Override
    public boolean getIsDynamicSchema() {
      return isDynamicSchema_;
    }

    public static final int ENABLE_SINGLE_REPLICA_COMPACTION_FIELD_NUMBER = 22;
    private boolean enableSingleReplicaCompaction_ = false;
    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return Whether the enableSingleReplicaCompaction field is set.
     */
    @java.lang.Override
    public boolean hasEnableSingleReplicaCompaction() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return The enableSingleReplicaCompaction.
     */
    @java.lang.Override
    public boolean getEnableSingleReplicaCompaction() {
      return enableSingleReplicaCompaction_;
    }

    public static final int SKIP_WRITE_INDEX_ON_LOAD_FIELD_NUMBER = 23;
    private boolean skipWriteIndexOnLoad_ = false;
    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return Whether the skipWriteIndexOnLoad field is set.
     */
    @java.lang.Override
    public boolean hasSkipWriteIndexOnLoad() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return The skipWriteIndexOnLoad.
     */
    @java.lang.Override
    public boolean getSkipWriteIndexOnLoad() {
      return skipWriteIndexOnLoad_;
    }

    public static final int CLUSTER_KEY_UIDS_FIELD_NUMBER = 24;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList clusterKeyUids_ =
        emptyIntList();
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return A list containing the clusterKeyUids.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getClusterKeyUidsList() {
      return clusterKeyUids_;
    }
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return The count of clusterKeyUids.
     */
    public int getClusterKeyUidsCount() {
      return clusterKeyUids_.size();
    }
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @param index The index of the element to return.
     * @return The clusterKeyUids at the given index.
     */
    public int getClusterKeyUids(int index) {
      return clusterKeyUids_.getInt(index);
    }

    public static final int INVERTED_INDEX_STORAGE_FORMAT_FIELD_NUMBER = 25;
    private int invertedIndexStorageFormat_ = 0;
    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return Whether the invertedIndexStorageFormat field is set.
     */
    @java.lang.Override public boolean hasInvertedIndexStorageFormat() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return The invertedIndexStorageFormat.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB getInvertedIndexStorageFormat() {
      org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB result = org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.forNumber(invertedIndexStorageFormat_);
      return result == null ? org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.V1 : result;
    }

    public static final int ROW_STORE_COLUMN_UNIQUE_IDS_FIELD_NUMBER = 26;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList rowStoreColumnUniqueIds_ =
        emptyIntList();
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return A list containing the rowStoreColumnUniqueIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getRowStoreColumnUniqueIdsList() {
      return rowStoreColumnUniqueIds_;
    }
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return The count of rowStoreColumnUniqueIds.
     */
    public int getRowStoreColumnUniqueIdsCount() {
      return rowStoreColumnUniqueIds_.size();
    }
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @param index The index of the element to return.
     * @return The rowStoreColumnUniqueIds at the given index.
     */
    public int getRowStoreColumnUniqueIds(int index) {
      return rowStoreColumnUniqueIds_.getInt(index);
    }

    public static final int ROW_STORE_PAGE_SIZE_FIELD_NUMBER = 27;
    private long rowStorePageSize_ = 16384L;
    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return Whether the rowStorePageSize field is set.
     */
    @java.lang.Override
    public boolean hasRowStorePageSize() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return The rowStorePageSize.
     */
    @java.lang.Override
    public long getRowStorePageSize() {
      return rowStorePageSize_;
    }

    public static final int ENABLE_VARIANT_FLATTEN_NESTED_FIELD_NUMBER = 28;
    private boolean enableVariantFlattenNested_ = false;
    /**
     * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
     * @return Whether the enableVariantFlattenNested field is set.
     */
    @java.lang.Override
    public boolean hasEnableVariantFlattenNested() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
     * @return The enableVariantFlattenNested.
     */
    @java.lang.Override
    public boolean getEnableVariantFlattenNested() {
      return enableVariantFlattenNested_;
    }

    public static final int SKIP_BITMAP_COL_IDX_FIELD_NUMBER = 29;
    private int skipBitmapColIdx_ = -1;
    /**
     * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
     * @return Whether the skipBitmapColIdx field is set.
     */
    @java.lang.Override
    public boolean hasSkipBitmapColIdx() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
     * @return The skipBitmapColIdx.
     */
    @java.lang.Override
    public int getSkipBitmapColIdx() {
      return skipBitmapColIdx_;
    }

    public static final int STORAGE_PAGE_SIZE_FIELD_NUMBER = 30;
    private long storagePageSize_ = 65536L;
    /**
     * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
     * @return Whether the storagePageSize field is set.
     */
    @java.lang.Override
    public boolean hasStoragePageSize() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
     * @return The storagePageSize.
     */
    @java.lang.Override
    public long getStoragePageSize() {
      return storagePageSize_;
    }

    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 < getColumnCount(); i++) {
        if (!getColumn(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.writeEnum(1, keysType_);
      }
      for (int i = 0; i < column_.size(); i++) {
        output.writeMessage(2, column_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(3, numShortKeyColumns_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(4, numRowsPerRowBlock_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(5, compressKind_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeDouble(6, bfFpp_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(7, nextColumnUniqueId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeBool(8, isInMemory_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt32(9, deleteSignIdx_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(10, sequenceColIdx_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeEnum(11, sortType_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeInt32(12, sortColNum_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeEnum(13, compressionType_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt32(14, schemaVersion_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeBool(15, disableAutoCompaction_);
      }
      for (int i = 0; i < index_.size(); i++) {
        output.writeMessage(16, index_.get(i));
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeInt32(17, versionColIdx_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeBool(18, storeRowColumn_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeBool(19, isDynamicSchema_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeBool(22, enableSingleReplicaCompaction_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeBool(23, skipWriteIndexOnLoad_);
      }
      for (int i = 0; i < clusterKeyUids_.size(); i++) {
        output.writeInt32(24, clusterKeyUids_.getInt(i));
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeEnum(25, invertedIndexStorageFormat_);
      }
      for (int i = 0; i < rowStoreColumnUniqueIds_.size(); i++) {
        output.writeInt32(26, rowStoreColumnUniqueIds_.getInt(i));
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeInt64(27, rowStorePageSize_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeBool(28, enableVariantFlattenNested_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeInt32(29, skipBitmapColIdx_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeInt64(30, storagePageSize_);
      }
      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
          .computeEnumSize(1, keysType_);
      }
      for (int i = 0; i < column_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, column_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, numShortKeyColumns_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, numRowsPerRowBlock_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, compressKind_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, bfFpp_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, nextColumnUniqueId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, isInMemory_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, deleteSignIdx_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, sequenceColIdx_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(11, sortType_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, sortColNum_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(13, compressionType_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, schemaVersion_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(15, disableAutoCompaction_);
      }
      for (int i = 0; i < index_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, index_.get(i));
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(17, versionColIdx_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(18, storeRowColumn_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, isDynamicSchema_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(22, enableSingleReplicaCompaction_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(23, skipWriteIndexOnLoad_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < clusterKeyUids_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(clusterKeyUids_.getInt(i));
        }
        size += dataSize;
        size += 2 * getClusterKeyUidsList().size();
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(25, invertedIndexStorageFormat_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < rowStoreColumnUniqueIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(rowStoreColumnUniqueIds_.getInt(i));
        }
        size += dataSize;
        size += 2 * getRowStoreColumnUniqueIdsList().size();
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(27, rowStorePageSize_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(28, enableVariantFlattenNested_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(29, skipBitmapColIdx_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(30, storagePageSize_);
      }
      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.OlapFile.TabletSchemaPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.TabletSchemaPB other = (org.apache.doris.proto.OlapFile.TabletSchemaPB) obj;

      if (hasKeysType() != other.hasKeysType()) return false;
      if (hasKeysType()) {
        if (keysType_ != other.keysType_) return false;
      }
      if (!getColumnList()
          .equals(other.getColumnList())) return false;
      if (hasNumShortKeyColumns() != other.hasNumShortKeyColumns()) return false;
      if (hasNumShortKeyColumns()) {
        if (getNumShortKeyColumns()
            != other.getNumShortKeyColumns()) return false;
      }
      if (hasNumRowsPerRowBlock() != other.hasNumRowsPerRowBlock()) return false;
      if (hasNumRowsPerRowBlock()) {
        if (getNumRowsPerRowBlock()
            != other.getNumRowsPerRowBlock()) return false;
      }
      if (hasCompressKind() != other.hasCompressKind()) return false;
      if (hasCompressKind()) {
        if (compressKind_ != other.compressKind_) return false;
      }
      if (hasBfFpp() != other.hasBfFpp()) return false;
      if (hasBfFpp()) {
        if (java.lang.Double.doubleToLongBits(getBfFpp())
            != java.lang.Double.doubleToLongBits(
                other.getBfFpp())) return false;
      }
      if (hasNextColumnUniqueId() != other.hasNextColumnUniqueId()) return false;
      if (hasNextColumnUniqueId()) {
        if (getNextColumnUniqueId()
            != other.getNextColumnUniqueId()) return false;
      }
      if (hasIsInMemory() != other.hasIsInMemory()) return false;
      if (hasIsInMemory()) {
        if (getIsInMemory()
            != other.getIsInMemory()) return false;
      }
      if (hasDeleteSignIdx() != other.hasDeleteSignIdx()) return false;
      if (hasDeleteSignIdx()) {
        if (getDeleteSignIdx()
            != other.getDeleteSignIdx()) return false;
      }
      if (hasSequenceColIdx() != other.hasSequenceColIdx()) return false;
      if (hasSequenceColIdx()) {
        if (getSequenceColIdx()
            != other.getSequenceColIdx()) return false;
      }
      if (hasSortType() != other.hasSortType()) return false;
      if (hasSortType()) {
        if (sortType_ != other.sortType_) return false;
      }
      if (hasSortColNum() != other.hasSortColNum()) return false;
      if (hasSortColNum()) {
        if (getSortColNum()
            != other.getSortColNum()) return false;
      }
      if (hasCompressionType() != other.hasCompressionType()) return false;
      if (hasCompressionType()) {
        if (compressionType_ != other.compressionType_) return false;
      }
      if (hasSchemaVersion() != other.hasSchemaVersion()) return false;
      if (hasSchemaVersion()) {
        if (getSchemaVersion()
            != other.getSchemaVersion()) return false;
      }
      if (hasDisableAutoCompaction() != other.hasDisableAutoCompaction()) return false;
      if (hasDisableAutoCompaction()) {
        if (getDisableAutoCompaction()
            != other.getDisableAutoCompaction()) return false;
      }
      if (!getIndexList()
          .equals(other.getIndexList())) return false;
      if (hasVersionColIdx() != other.hasVersionColIdx()) return false;
      if (hasVersionColIdx()) {
        if (getVersionColIdx()
            != other.getVersionColIdx()) return false;
      }
      if (hasStoreRowColumn() != other.hasStoreRowColumn()) return false;
      if (hasStoreRowColumn()) {
        if (getStoreRowColumn()
            != other.getStoreRowColumn()) return false;
      }
      if (hasIsDynamicSchema() != other.hasIsDynamicSchema()) return false;
      if (hasIsDynamicSchema()) {
        if (getIsDynamicSchema()
            != other.getIsDynamicSchema()) return false;
      }
      if (hasEnableSingleReplicaCompaction() != other.hasEnableSingleReplicaCompaction()) return false;
      if (hasEnableSingleReplicaCompaction()) {
        if (getEnableSingleReplicaCompaction()
            != other.getEnableSingleReplicaCompaction()) return false;
      }
      if (hasSkipWriteIndexOnLoad() != other.hasSkipWriteIndexOnLoad()) return false;
      if (hasSkipWriteIndexOnLoad()) {
        if (getSkipWriteIndexOnLoad()
            != other.getSkipWriteIndexOnLoad()) return false;
      }
      if (!getClusterKeyUidsList()
          .equals(other.getClusterKeyUidsList())) return false;
      if (hasInvertedIndexStorageFormat() != other.hasInvertedIndexStorageFormat()) return false;
      if (hasInvertedIndexStorageFormat()) {
        if (invertedIndexStorageFormat_ != other.invertedIndexStorageFormat_) return false;
      }
      if (!getRowStoreColumnUniqueIdsList()
          .equals(other.getRowStoreColumnUniqueIdsList())) return false;
      if (hasRowStorePageSize() != other.hasRowStorePageSize()) return false;
      if (hasRowStorePageSize()) {
        if (getRowStorePageSize()
            != other.getRowStorePageSize()) return false;
      }
      if (hasEnableVariantFlattenNested() != other.hasEnableVariantFlattenNested()) return false;
      if (hasEnableVariantFlattenNested()) {
        if (getEnableVariantFlattenNested()
            != other.getEnableVariantFlattenNested()) return false;
      }
      if (hasSkipBitmapColIdx() != other.hasSkipBitmapColIdx()) return false;
      if (hasSkipBitmapColIdx()) {
        if (getSkipBitmapColIdx()
            != other.getSkipBitmapColIdx()) return false;
      }
      if (hasStoragePageSize() != other.hasStoragePageSize()) return false;
      if (hasStoragePageSize()) {
        if (getStoragePageSize()
            != other.getStoragePageSize()) 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 (hasKeysType()) {
        hash = (37 * hash) + KEYS_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + keysType_;
      }
      if (getColumnCount() > 0) {
        hash = (37 * hash) + COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getColumnList().hashCode();
      }
      if (hasNumShortKeyColumns()) {
        hash = (37 * hash) + NUM_SHORT_KEY_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getNumShortKeyColumns();
      }
      if (hasNumRowsPerRowBlock()) {
        hash = (37 * hash) + NUM_ROWS_PER_ROW_BLOCK_FIELD_NUMBER;
        hash = (53 * hash) + getNumRowsPerRowBlock();
      }
      if (hasCompressKind()) {
        hash = (37 * hash) + COMPRESS_KIND_FIELD_NUMBER;
        hash = (53 * hash) + compressKind_;
      }
      if (hasBfFpp()) {
        hash = (37 * hash) + BF_FPP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getBfFpp()));
      }
      if (hasNextColumnUniqueId()) {
        hash = (37 * hash) + NEXT_COLUMN_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getNextColumnUniqueId();
      }
      if (hasIsInMemory()) {
        hash = (37 * hash) + IS_IN_MEMORY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsInMemory());
      }
      if (hasDeleteSignIdx()) {
        hash = (37 * hash) + DELETE_SIGN_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getDeleteSignIdx();
      }
      if (hasSequenceColIdx()) {
        hash = (37 * hash) + SEQUENCE_COL_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getSequenceColIdx();
      }
      if (hasSortType()) {
        hash = (37 * hash) + SORT_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + sortType_;
      }
      if (hasSortColNum()) {
        hash = (37 * hash) + SORT_COL_NUM_FIELD_NUMBER;
        hash = (53 * hash) + getSortColNum();
      }
      if (hasCompressionType()) {
        hash = (37 * hash) + COMPRESSION_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + compressionType_;
      }
      if (hasSchemaVersion()) {
        hash = (37 * hash) + SCHEMA_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaVersion();
      }
      if (hasDisableAutoCompaction()) {
        hash = (37 * hash) + DISABLE_AUTO_COMPACTION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDisableAutoCompaction());
      }
      if (getIndexCount() > 0) {
        hash = (37 * hash) + INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getIndexList().hashCode();
      }
      if (hasVersionColIdx()) {
        hash = (37 * hash) + VERSION_COL_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getVersionColIdx();
      }
      if (hasStoreRowColumn()) {
        hash = (37 * hash) + STORE_ROW_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getStoreRowColumn());
      }
      if (hasIsDynamicSchema()) {
        hash = (37 * hash) + IS_DYNAMIC_SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsDynamicSchema());
      }
      if (hasEnableSingleReplicaCompaction()) {
        hash = (37 * hash) + ENABLE_SINGLE_REPLICA_COMPACTION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableSingleReplicaCompaction());
      }
      if (hasSkipWriteIndexOnLoad()) {
        hash = (37 * hash) + SKIP_WRITE_INDEX_ON_LOAD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSkipWriteIndexOnLoad());
      }
      if (getClusterKeyUidsCount() > 0) {
        hash = (37 * hash) + CLUSTER_KEY_UIDS_FIELD_NUMBER;
        hash = (53 * hash) + getClusterKeyUidsList().hashCode();
      }
      if (hasInvertedIndexStorageFormat()) {
        hash = (37 * hash) + INVERTED_INDEX_STORAGE_FORMAT_FIELD_NUMBER;
        hash = (53 * hash) + invertedIndexStorageFormat_;
      }
      if (getRowStoreColumnUniqueIdsCount() > 0) {
        hash = (37 * hash) + ROW_STORE_COLUMN_UNIQUE_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getRowStoreColumnUniqueIdsList().hashCode();
      }
      if (hasRowStorePageSize()) {
        hash = (37 * hash) + ROW_STORE_PAGE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRowStorePageSize());
      }
      if (hasEnableVariantFlattenNested()) {
        hash = (37 * hash) + ENABLE_VARIANT_FLATTEN_NESTED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableVariantFlattenNested());
      }
      if (hasSkipBitmapColIdx()) {
        hash = (37 * hash) + SKIP_BITMAP_COL_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getSkipBitmapColIdx();
      }
      if (hasStoragePageSize()) {
        hash = (37 * hash) + STORAGE_PAGE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStoragePageSize());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.TabletSchemaPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaPB 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.OlapFile.TabletSchemaPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaPB 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.OlapFile.TabletSchemaPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaPB 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.OlapFile.TabletSchemaPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.TabletSchemaPB 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.OlapFile.TabletSchemaPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaPB 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.OlapFile.TabletSchemaPB 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;
    }
    /**
     * <pre>
     * ATTN: When adding or deleting fields, please update `message TabletSchemaCloudPB`
     * simultaneously and modify the conversion function in the be/src/cloud/pb_convert.{h,cpp}.
     * </pre>
     *
     * Protobuf type {@code doris.TabletSchemaPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.TabletSchemaPB)
        org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_TabletSchemaPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.TabletSchemaPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        keysType_ = 0;
        if (columnBuilder_ == null) {
          column_ = java.util.Collections.emptyList();
        } else {
          column_ = null;
          columnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        numShortKeyColumns_ = 0;
        numRowsPerRowBlock_ = 0;
        compressKind_ = 0;
        bfFpp_ = 0D;
        nextColumnUniqueId_ = 0;
        isInMemory_ = false;
        deleteSignIdx_ = -1;
        sequenceColIdx_ = -1;
        sortType_ = 0;
        sortColNum_ = 0;
        compressionType_ = 5;
        schemaVersion_ = 0;
        disableAutoCompaction_ = false;
        if (indexBuilder_ == null) {
          index_ = java.util.Collections.emptyList();
        } else {
          index_ = null;
          indexBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        versionColIdx_ = -1;
        storeRowColumn_ = false;
        isDynamicSchema_ = false;
        enableSingleReplicaCompaction_ = false;
        skipWriteIndexOnLoad_ = false;
        clusterKeyUids_ = emptyIntList();
        invertedIndexStorageFormat_ = 0;
        rowStoreColumnUniqueIds_ = emptyIntList();
        rowStorePageSize_ = 16384L;
        enableVariantFlattenNested_ = false;
        skipBitmapColIdx_ = -1;
        storagePageSize_ = 65536L;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.TabletSchemaPB result) {
        if (columnBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            column_ = java.util.Collections.unmodifiableList(column_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.column_ = column_;
        } else {
          result.column_ = columnBuilder_.build();
        }
        if (indexBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0)) {
            index_ = java.util.Collections.unmodifiableList(index_);
            bitField0_ = (bitField0_ & ~0x00008000);
          }
          result.index_ = index_;
        } else {
          result.index_ = indexBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.TabletSchemaPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.keysType_ = keysType_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.numShortKeyColumns_ = numShortKeyColumns_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.numRowsPerRowBlock_ = numRowsPerRowBlock_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.compressKind_ = compressKind_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.bfFpp_ = bfFpp_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.nextColumnUniqueId_ = nextColumnUniqueId_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.isInMemory_ = isInMemory_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.deleteSignIdx_ = deleteSignIdx_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.sequenceColIdx_ = sequenceColIdx_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.sortType_ = sortType_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.sortColNum_ = sortColNum_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.compressionType_ = compressionType_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.schemaVersion_ = schemaVersion_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.disableAutoCompaction_ = disableAutoCompaction_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.versionColIdx_ = versionColIdx_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.storeRowColumn_ = storeRowColumn_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.isDynamicSchema_ = isDynamicSchema_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.enableSingleReplicaCompaction_ = enableSingleReplicaCompaction_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.skipWriteIndexOnLoad_ = skipWriteIndexOnLoad_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          clusterKeyUids_.makeImmutable();
          result.clusterKeyUids_ = clusterKeyUids_;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.invertedIndexStorageFormat_ = invertedIndexStorageFormat_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          rowStoreColumnUniqueIds_.makeImmutable();
          result.rowStoreColumnUniqueIds_ = rowStoreColumnUniqueIds_;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.rowStorePageSize_ = rowStorePageSize_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.enableVariantFlattenNested_ = enableVariantFlattenNested_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.skipBitmapColIdx_ = skipBitmapColIdx_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.storagePageSize_ = storagePageSize_;
          to_bitField0_ |= 0x00800000;
        }
        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.OlapFile.TabletSchemaPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.TabletSchemaPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.TabletSchemaPB other) {
        if (other == org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance()) return this;
        if (other.hasKeysType()) {
          setKeysType(other.getKeysType());
        }
        if (columnBuilder_ == null) {
          if (!other.column_.isEmpty()) {
            if (column_.isEmpty()) {
              column_ = other.column_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureColumnIsMutable();
              column_.addAll(other.column_);
            }
            onChanged();
          }
        } else {
          if (!other.column_.isEmpty()) {
            if (columnBuilder_.isEmpty()) {
              columnBuilder_.dispose();
              columnBuilder_ = null;
              column_ = other.column_;
              bitField0_ = (bitField0_ & ~0x00000002);
              columnBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnFieldBuilder() : null;
            } else {
              columnBuilder_.addAllMessages(other.column_);
            }
          }
        }
        if (other.hasNumShortKeyColumns()) {
          setNumShortKeyColumns(other.getNumShortKeyColumns());
        }
        if (other.hasNumRowsPerRowBlock()) {
          setNumRowsPerRowBlock(other.getNumRowsPerRowBlock());
        }
        if (other.hasCompressKind()) {
          setCompressKind(other.getCompressKind());
        }
        if (other.hasBfFpp()) {
          setBfFpp(other.getBfFpp());
        }
        if (other.hasNextColumnUniqueId()) {
          setNextColumnUniqueId(other.getNextColumnUniqueId());
        }
        if (other.hasIsInMemory()) {
          setIsInMemory(other.getIsInMemory());
        }
        if (other.hasDeleteSignIdx()) {
          setDeleteSignIdx(other.getDeleteSignIdx());
        }
        if (other.hasSequenceColIdx()) {
          setSequenceColIdx(other.getSequenceColIdx());
        }
        if (other.hasSortType()) {
          setSortType(other.getSortType());
        }
        if (other.hasSortColNum()) {
          setSortColNum(other.getSortColNum());
        }
        if (other.hasCompressionType()) {
          setCompressionType(other.getCompressionType());
        }
        if (other.hasSchemaVersion()) {
          setSchemaVersion(other.getSchemaVersion());
        }
        if (other.hasDisableAutoCompaction()) {
          setDisableAutoCompaction(other.getDisableAutoCompaction());
        }
        if (indexBuilder_ == null) {
          if (!other.index_.isEmpty()) {
            if (index_.isEmpty()) {
              index_ = other.index_;
              bitField0_ = (bitField0_ & ~0x00008000);
            } else {
              ensureIndexIsMutable();
              index_.addAll(other.index_);
            }
            onChanged();
          }
        } else {
          if (!other.index_.isEmpty()) {
            if (indexBuilder_.isEmpty()) {
              indexBuilder_.dispose();
              indexBuilder_ = null;
              index_ = other.index_;
              bitField0_ = (bitField0_ & ~0x00008000);
              indexBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIndexFieldBuilder() : null;
            } else {
              indexBuilder_.addAllMessages(other.index_);
            }
          }
        }
        if (other.hasVersionColIdx()) {
          setVersionColIdx(other.getVersionColIdx());
        }
        if (other.hasStoreRowColumn()) {
          setStoreRowColumn(other.getStoreRowColumn());
        }
        if (other.hasIsDynamicSchema()) {
          setIsDynamicSchema(other.getIsDynamicSchema());
        }
        if (other.hasEnableSingleReplicaCompaction()) {
          setEnableSingleReplicaCompaction(other.getEnableSingleReplicaCompaction());
        }
        if (other.hasSkipWriteIndexOnLoad()) {
          setSkipWriteIndexOnLoad(other.getSkipWriteIndexOnLoad());
        }
        if (!other.clusterKeyUids_.isEmpty()) {
          if (clusterKeyUids_.isEmpty()) {
            clusterKeyUids_ = other.clusterKeyUids_;
            clusterKeyUids_.makeImmutable();
            bitField0_ |= 0x00200000;
          } else {
            ensureClusterKeyUidsIsMutable();
            clusterKeyUids_.addAll(other.clusterKeyUids_);
          }
          onChanged();
        }
        if (other.hasInvertedIndexStorageFormat()) {
          setInvertedIndexStorageFormat(other.getInvertedIndexStorageFormat());
        }
        if (!other.rowStoreColumnUniqueIds_.isEmpty()) {
          if (rowStoreColumnUniqueIds_.isEmpty()) {
            rowStoreColumnUniqueIds_ = other.rowStoreColumnUniqueIds_;
            rowStoreColumnUniqueIds_.makeImmutable();
            bitField0_ |= 0x00800000;
          } else {
            ensureRowStoreColumnUniqueIdsIsMutable();
            rowStoreColumnUniqueIds_.addAll(other.rowStoreColumnUniqueIds_);
          }
          onChanged();
        }
        if (other.hasRowStorePageSize()) {
          setRowStorePageSize(other.getRowStorePageSize());
        }
        if (other.hasEnableVariantFlattenNested()) {
          setEnableVariantFlattenNested(other.getEnableVariantFlattenNested());
        }
        if (other.hasSkipBitmapColIdx()) {
          setSkipBitmapColIdx(other.getSkipBitmapColIdx());
        }
        if (other.hasStoragePageSize()) {
          setStoragePageSize(other.getStoragePageSize());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getColumnCount(); i++) {
          if (!getColumn(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: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.KeysType tmpValue =
                    org.apache.doris.proto.OlapFile.KeysType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  keysType_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              case 18: {
                org.apache.doris.proto.OlapFile.ColumnPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.ColumnPB.PARSER,
                        extensionRegistry);
                if (columnBuilder_ == null) {
                  ensureColumnIsMutable();
                  column_.add(m);
                } else {
                  columnBuilder_.addMessage(m);
                }
                break;
              } // case 18
              case 24: {
                numShortKeyColumns_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                numRowsPerRowBlock_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapCommon.CompressKind tmpValue =
                    org.apache.doris.proto.OlapCommon.CompressKind.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(5, tmpRaw);
                } else {
                  compressKind_ = tmpRaw;
                  bitField0_ |= 0x00000010;
                }
                break;
              } // case 40
              case 49: {
                bfFpp_ = input.readDouble();
                bitField0_ |= 0x00000020;
                break;
              } // case 49
              case 56: {
                nextColumnUniqueId_ = input.readUInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                isInMemory_ = input.readBool();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                deleteSignIdx_ = input.readInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                sequenceColIdx_ = input.readInt32();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.SortType tmpValue =
                    org.apache.doris.proto.OlapFile.SortType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(11, tmpRaw);
                } else {
                  sortType_ = tmpRaw;
                  bitField0_ |= 0x00000400;
                }
                break;
              } // case 88
              case 96: {
                sortColNum_ = input.readInt32();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                int tmpRaw = input.readEnum();
                doris.segment_v2.SegmentV2.CompressionTypePB tmpValue =
                    doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(13, tmpRaw);
                } else {
                  compressionType_ = tmpRaw;
                  bitField0_ |= 0x00001000;
                }
                break;
              } // case 104
              case 112: {
                schemaVersion_ = input.readInt32();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 120: {
                disableAutoCompaction_ = input.readBool();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              case 130: {
                org.apache.doris.proto.OlapFile.TabletIndexPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.TabletIndexPB.PARSER,
                        extensionRegistry);
                if (indexBuilder_ == null) {
                  ensureIndexIsMutable();
                  index_.add(m);
                } else {
                  indexBuilder_.addMessage(m);
                }
                break;
              } // case 130
              case 136: {
                versionColIdx_ = input.readInt32();
                bitField0_ |= 0x00010000;
                break;
              } // case 136
              case 144: {
                storeRowColumn_ = input.readBool();
                bitField0_ |= 0x00020000;
                break;
              } // case 144
              case 152: {
                isDynamicSchema_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 152
              case 176: {
                enableSingleReplicaCompaction_ = input.readBool();
                bitField0_ |= 0x00080000;
                break;
              } // case 176
              case 184: {
                skipWriteIndexOnLoad_ = input.readBool();
                bitField0_ |= 0x00100000;
                break;
              } // case 184
              case 192: {
                int v = input.readInt32();
                ensureClusterKeyUidsIsMutable();
                clusterKeyUids_.addInt(v);
                break;
              } // case 192
              case 194: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureClusterKeyUidsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  clusterKeyUids_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 194
              case 200: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB tmpValue =
                    org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(25, tmpRaw);
                } else {
                  invertedIndexStorageFormat_ = tmpRaw;
                  bitField0_ |= 0x00400000;
                }
                break;
              } // case 200
              case 208: {
                int v = input.readInt32();
                ensureRowStoreColumnUniqueIdsIsMutable();
                rowStoreColumnUniqueIds_.addInt(v);
                break;
              } // case 208
              case 210: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureRowStoreColumnUniqueIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  rowStoreColumnUniqueIds_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 210
              case 216: {
                rowStorePageSize_ = input.readInt64();
                bitField0_ |= 0x01000000;
                break;
              } // case 216
              case 224: {
                enableVariantFlattenNested_ = input.readBool();
                bitField0_ |= 0x02000000;
                break;
              } // case 224
              case 232: {
                skipBitmapColIdx_ = input.readInt32();
                bitField0_ |= 0x04000000;
                break;
              } // case 232
              case 240: {
                storagePageSize_ = input.readInt64();
                bitField0_ |= 0x08000000;
                break;
              } // case 240
              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 keysType_ = 0;
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @return Whether the keysType field is set.
       */
      @java.lang.Override public boolean hasKeysType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @return The keysType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.KeysType getKeysType() {
        org.apache.doris.proto.OlapFile.KeysType result = org.apache.doris.proto.OlapFile.KeysType.forNumber(keysType_);
        return result == null ? org.apache.doris.proto.OlapFile.KeysType.DUP_KEYS : result;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @param value The keysType to set.
       * @return This builder for chaining.
       */
      public Builder setKeysType(org.apache.doris.proto.OlapFile.KeysType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        keysType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeysType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        keysType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> column_ =
        java.util.Collections.emptyList();
      private void ensureColumnIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          column_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.ColumnPB>(column_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> columnBuilder_;

      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getColumnList() {
        if (columnBuilder_ == null) {
          return java.util.Collections.unmodifiableList(column_);
        } else {
          return columnBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public int getColumnCount() {
        if (columnBuilder_ == null) {
          return column_.size();
        } else {
          return columnBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB getColumn(int index) {
        if (columnBuilder_ == null) {
          return column_.get(index);
        } else {
          return columnBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder setColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnIsMutable();
          column_.set(index, value);
          onChanged();
        } else {
          columnBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder setColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnIsMutable();
          column_.add(value);
          onChanged();
        } else {
          columnBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnIsMutable();
          column_.add(index, value);
          onChanged();
        } else {
          columnBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(
          org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.add(builderForValue.build());
          onChanged();
        } else {
          columnBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addAllColumn(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.ColumnPB> values) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, column_);
          onChanged();
        } else {
          columnBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder clearColumn() {
        if (columnBuilder_ == null) {
          column_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          columnBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder removeColumn(int index) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.remove(index);
          onChanged();
        } else {
          columnBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder getColumnBuilder(
          int index) {
        return getColumnFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnOrBuilder(
          int index) {
        if (columnBuilder_ == null) {
          return column_.get(index);  } else {
          return columnBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
           getColumnOrBuilderList() {
        if (columnBuilder_ != null) {
          return columnBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(column_);
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addColumnBuilder() {
        return getColumnFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addColumnBuilder(
          int index) {
        return getColumnFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB.Builder> 
           getColumnBuilderList() {
        return getColumnFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
          getColumnFieldBuilder() {
        if (columnBuilder_ == null) {
          columnBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder>(
                  column_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          column_ = null;
        }
        return columnBuilder_;
      }

      private int numShortKeyColumns_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @return Whether the numShortKeyColumns field is set.
       */
      @java.lang.Override
      public boolean hasNumShortKeyColumns() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @return The numShortKeyColumns.
       */
      @java.lang.Override
      public int getNumShortKeyColumns() {
        return numShortKeyColumns_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @param value The numShortKeyColumns to set.
       * @return This builder for chaining.
       */
      public Builder setNumShortKeyColumns(int value) {

        numShortKeyColumns_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumShortKeyColumns() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numShortKeyColumns_ = 0;
        onChanged();
        return this;
      }

      private int numRowsPerRowBlock_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @return Whether the numRowsPerRowBlock field is set.
       */
      @java.lang.Override
      public boolean hasNumRowsPerRowBlock() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @return The numRowsPerRowBlock.
       */
      @java.lang.Override
      public int getNumRowsPerRowBlock() {
        return numRowsPerRowBlock_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @param value The numRowsPerRowBlock to set.
       * @return This builder for chaining.
       */
      public Builder setNumRowsPerRowBlock(int value) {

        numRowsPerRowBlock_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumRowsPerRowBlock() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numRowsPerRowBlock_ = 0;
        onChanged();
        return this;
      }

      private int compressKind_ = 0;
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @return Whether the compressKind field is set.
       */
      @java.lang.Override public boolean hasCompressKind() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @return The compressKind.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.CompressKind getCompressKind() {
        org.apache.doris.proto.OlapCommon.CompressKind result = org.apache.doris.proto.OlapCommon.CompressKind.forNumber(compressKind_);
        return result == null ? org.apache.doris.proto.OlapCommon.CompressKind.COMPRESS_NONE : result;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @param value The compressKind to set.
       * @return This builder for chaining.
       */
      public Builder setCompressKind(org.apache.doris.proto.OlapCommon.CompressKind value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        compressKind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressKind() {
        bitField0_ = (bitField0_ & ~0x00000010);
        compressKind_ = 0;
        onChanged();
        return this;
      }

      private double bfFpp_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @return Whether the bfFpp field is set.
       */
      @java.lang.Override
      public boolean hasBfFpp() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @return The bfFpp.
       */
      @java.lang.Override
      public double getBfFpp() {
        return bfFpp_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @param value The bfFpp to set.
       * @return This builder for chaining.
       */
      public Builder setBfFpp(double value) {

        bfFpp_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearBfFpp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        bfFpp_ = 0D;
        onChanged();
        return this;
      }

      private int nextColumnUniqueId_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @return Whether the nextColumnUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasNextColumnUniqueId() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @return The nextColumnUniqueId.
       */
      @java.lang.Override
      public int getNextColumnUniqueId() {
        return nextColumnUniqueId_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @param value The nextColumnUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setNextColumnUniqueId(int value) {

        nextColumnUniqueId_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearNextColumnUniqueId() {
        bitField0_ = (bitField0_ & ~0x00000040);
        nextColumnUniqueId_ = 0;
        onChanged();
        return this;
      }

      private boolean isInMemory_ ;
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 8 [default = false];</code>
       * @return Whether the isInMemory field is set.
       */
      @java.lang.Override
      public boolean hasIsInMemory() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 8 [default = false];</code>
       * @return The isInMemory.
       */
      @java.lang.Override
      public boolean getIsInMemory() {
        return isInMemory_;
      }
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 8 [default = false];</code>
       * @param value The isInMemory to set.
       * @return This builder for chaining.
       */
      public Builder setIsInMemory(boolean value) {

        isInMemory_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 8 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsInMemory() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isInMemory_ = false;
        onChanged();
        return this;
      }

      private int deleteSignIdx_ = -1;
      /**
       * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
       * @return Whether the deleteSignIdx field is set.
       */
      @java.lang.Override
      public boolean hasDeleteSignIdx() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
       * @return The deleteSignIdx.
       */
      @java.lang.Override
      public int getDeleteSignIdx() {
        return deleteSignIdx_;
      }
      /**
       * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
       * @param value The deleteSignIdx to set.
       * @return This builder for chaining.
       */
      public Builder setDeleteSignIdx(int value) {

        deleteSignIdx_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 delete_sign_idx = 9 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeleteSignIdx() {
        bitField0_ = (bitField0_ & ~0x00000100);
        deleteSignIdx_ = -1;
        onChanged();
        return this;
      }

      private int sequenceColIdx_ = -1;
      /**
       * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
       * @return Whether the sequenceColIdx field is set.
       */
      @java.lang.Override
      public boolean hasSequenceColIdx() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
       * @return The sequenceColIdx.
       */
      @java.lang.Override
      public int getSequenceColIdx() {
        return sequenceColIdx_;
      }
      /**
       * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
       * @param value The sequenceColIdx to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceColIdx(int value) {

        sequenceColIdx_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 sequence_col_idx = 10 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceColIdx() {
        bitField0_ = (bitField0_ & ~0x00000200);
        sequenceColIdx_ = -1;
        onChanged();
        return this;
      }

      private int sortType_ = 0;
      /**
       * <code>optional .doris.SortType sort_type = 11;</code>
       * @return Whether the sortType field is set.
       */
      @java.lang.Override public boolean hasSortType() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional .doris.SortType sort_type = 11;</code>
       * @return The sortType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.SortType getSortType() {
        org.apache.doris.proto.OlapFile.SortType result = org.apache.doris.proto.OlapFile.SortType.forNumber(sortType_);
        return result == null ? org.apache.doris.proto.OlapFile.SortType.LEXICAL : result;
      }
      /**
       * <code>optional .doris.SortType sort_type = 11;</code>
       * @param value The sortType to set.
       * @return This builder for chaining.
       */
      public Builder setSortType(org.apache.doris.proto.OlapFile.SortType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000400;
        sortType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.SortType sort_type = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearSortType() {
        bitField0_ = (bitField0_ & ~0x00000400);
        sortType_ = 0;
        onChanged();
        return this;
      }

      private int sortColNum_ ;
      /**
       * <code>optional int32 sort_col_num = 12;</code>
       * @return Whether the sortColNum field is set.
       */
      @java.lang.Override
      public boolean hasSortColNum() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional int32 sort_col_num = 12;</code>
       * @return The sortColNum.
       */
      @java.lang.Override
      public int getSortColNum() {
        return sortColNum_;
      }
      /**
       * <code>optional int32 sort_col_num = 12;</code>
       * @param value The sortColNum to set.
       * @return This builder for chaining.
       */
      public Builder setSortColNum(int value) {

        sortColNum_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 sort_col_num = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearSortColNum() {
        bitField0_ = (bitField0_ & ~0x00000800);
        sortColNum_ = 0;
        onChanged();
        return this;
      }

      private int compressionType_ = 5;
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
       * @return Whether the compressionType field is set.
       */
      @java.lang.Override public boolean hasCompressionType() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
       * @return The compressionType.
       */
      @java.lang.Override
      public doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType() {
        doris.segment_v2.SegmentV2.CompressionTypePB result = doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(compressionType_);
        return result == null ? doris.segment_v2.SegmentV2.CompressionTypePB.LZ4F : result;
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
       * @param value The compressionType to set.
       * @return This builder for chaining.
       */
      public Builder setCompressionType(doris.segment_v2.SegmentV2.CompressionTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00001000;
        compressionType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 13 [default = LZ4F];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressionType() {
        bitField0_ = (bitField0_ & ~0x00001000);
        compressionType_ = 5;
        onChanged();
        return this;
      }

      private int schemaVersion_ ;
      /**
       * <code>optional int32 schema_version = 14;</code>
       * @return Whether the schemaVersion field is set.
       */
      @java.lang.Override
      public boolean hasSchemaVersion() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional int32 schema_version = 14;</code>
       * @return The schemaVersion.
       */
      @java.lang.Override
      public int getSchemaVersion() {
        return schemaVersion_;
      }
      /**
       * <code>optional int32 schema_version = 14;</code>
       * @param value The schemaVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaVersion(int value) {

        schemaVersion_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 schema_version = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaVersion() {
        bitField0_ = (bitField0_ & ~0x00002000);
        schemaVersion_ = 0;
        onChanged();
        return this;
      }

      private boolean disableAutoCompaction_ ;
      /**
       * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
       * @return Whether the disableAutoCompaction field is set.
       */
      @java.lang.Override
      public boolean hasDisableAutoCompaction() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
       * @return The disableAutoCompaction.
       */
      @java.lang.Override
      public boolean getDisableAutoCompaction() {
        return disableAutoCompaction_;
      }
      /**
       * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
       * @param value The disableAutoCompaction to set.
       * @return This builder for chaining.
       */
      public Builder setDisableAutoCompaction(boolean value) {

        disableAutoCompaction_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool disable_auto_compaction = 15 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearDisableAutoCompaction() {
        bitField0_ = (bitField0_ & ~0x00004000);
        disableAutoCompaction_ = false;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> index_ =
        java.util.Collections.emptyList();
      private void ensureIndexIsMutable() {
        if (!((bitField0_ & 0x00008000) != 0)) {
          index_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.TabletIndexPB>(index_);
          bitField0_ |= 0x00008000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> indexBuilder_;

      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexList() {
        if (indexBuilder_ == null) {
          return java.util.Collections.unmodifiableList(index_);
        } else {
          return indexBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public int getIndexCount() {
        if (indexBuilder_ == null) {
          return index_.size();
        } else {
          return indexBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB getIndex(int index) {
        if (indexBuilder_ == null) {
          return index_.get(index);
        } else {
          return indexBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder setIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.set(index, value);
          onChanged();
        } else {
          indexBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder setIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.set(index, builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder addIndex(org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.add(value);
          onChanged();
        } else {
          indexBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder addIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.add(index, value);
          onChanged();
        } else {
          indexBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder addIndex(
          org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.add(builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder addIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.add(index, builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder addAllIndex(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.TabletIndexPB> values) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, index_);
          onChanged();
        } else {
          indexBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder clearIndex() {
        if (indexBuilder_ == null) {
          index_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00008000);
          onChanged();
        } else {
          indexBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public Builder removeIndex(int index) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.remove(index);
          onChanged();
        } else {
          indexBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder getIndexBuilder(
          int index) {
        return getIndexFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexOrBuilder(
          int index) {
        if (indexBuilder_ == null) {
          return index_.get(index);  } else {
          return indexBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
           getIndexOrBuilderList() {
        if (indexBuilder_ != null) {
          return indexBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(index_);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder addIndexBuilder() {
        return getIndexFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder addIndexBuilder(
          int index) {
        return getIndexFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 16;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB.Builder> 
           getIndexBuilderList() {
        return getIndexFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
          getIndexFieldBuilder() {
        if (indexBuilder_ == null) {
          indexBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder>(
                  index_,
                  ((bitField0_ & 0x00008000) != 0),
                  getParentForChildren(),
                  isClean());
          index_ = null;
        }
        return indexBuilder_;
      }

      private int versionColIdx_ = -1;
      /**
       * <code>optional int32 version_col_idx = 17 [default = -1];</code>
       * @return Whether the versionColIdx field is set.
       */
      @java.lang.Override
      public boolean hasVersionColIdx() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional int32 version_col_idx = 17 [default = -1];</code>
       * @return The versionColIdx.
       */
      @java.lang.Override
      public int getVersionColIdx() {
        return versionColIdx_;
      }
      /**
       * <code>optional int32 version_col_idx = 17 [default = -1];</code>
       * @param value The versionColIdx to set.
       * @return This builder for chaining.
       */
      public Builder setVersionColIdx(int value) {

        versionColIdx_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 version_col_idx = 17 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearVersionColIdx() {
        bitField0_ = (bitField0_ & ~0x00010000);
        versionColIdx_ = -1;
        onChanged();
        return this;
      }

      private boolean storeRowColumn_ ;
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @return Whether the storeRowColumn field is set.
       */
      @java.lang.Override
      public boolean hasStoreRowColumn() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @return The storeRowColumn.
       */
      @java.lang.Override
      public boolean getStoreRowColumn() {
        return storeRowColumn_;
      }
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @param value The storeRowColumn to set.
       * @return This builder for chaining.
       */
      public Builder setStoreRowColumn(boolean value) {

        storeRowColumn_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearStoreRowColumn() {
        bitField0_ = (bitField0_ & ~0x00020000);
        storeRowColumn_ = false;
        onChanged();
        return this;
      }

      private boolean isDynamicSchema_ ;
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
       * @return Whether the isDynamicSchema field is set.
       */
      @java.lang.Override
      public boolean hasIsDynamicSchema() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
       * @return The isDynamicSchema.
       */
      @java.lang.Override
      public boolean getIsDynamicSchema() {
        return isDynamicSchema_;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
       * @param value The isDynamicSchema to set.
       * @return This builder for chaining.
       */
      public Builder setIsDynamicSchema(boolean value) {

        isDynamicSchema_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_dynamic_schema = 19 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsDynamicSchema() {
        bitField0_ = (bitField0_ & ~0x00040000);
        isDynamicSchema_ = false;
        onChanged();
        return this;
      }

      private boolean enableSingleReplicaCompaction_ ;
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @return Whether the enableSingleReplicaCompaction field is set.
       */
      @java.lang.Override
      public boolean hasEnableSingleReplicaCompaction() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @return The enableSingleReplicaCompaction.
       */
      @java.lang.Override
      public boolean getEnableSingleReplicaCompaction() {
        return enableSingleReplicaCompaction_;
      }
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @param value The enableSingleReplicaCompaction to set.
       * @return This builder for chaining.
       */
      public Builder setEnableSingleReplicaCompaction(boolean value) {

        enableSingleReplicaCompaction_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableSingleReplicaCompaction() {
        bitField0_ = (bitField0_ & ~0x00080000);
        enableSingleReplicaCompaction_ = false;
        onChanged();
        return this;
      }

      private boolean skipWriteIndexOnLoad_ ;
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @return Whether the skipWriteIndexOnLoad field is set.
       */
      @java.lang.Override
      public boolean hasSkipWriteIndexOnLoad() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @return The skipWriteIndexOnLoad.
       */
      @java.lang.Override
      public boolean getSkipWriteIndexOnLoad() {
        return skipWriteIndexOnLoad_;
      }
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @param value The skipWriteIndexOnLoad to set.
       * @return This builder for chaining.
       */
      public Builder setSkipWriteIndexOnLoad(boolean value) {

        skipWriteIndexOnLoad_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearSkipWriteIndexOnLoad() {
        bitField0_ = (bitField0_ & ~0x00100000);
        skipWriteIndexOnLoad_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList clusterKeyUids_ = emptyIntList();
      private void ensureClusterKeyUidsIsMutable() {
        if (!clusterKeyUids_.isModifiable()) {
          clusterKeyUids_ = makeMutableCopy(clusterKeyUids_);
        }
        bitField0_ |= 0x00200000;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @return A list containing the clusterKeyUids.
       */
      public java.util.List<java.lang.Integer>
          getClusterKeyUidsList() {
        clusterKeyUids_.makeImmutable();
        return clusterKeyUids_;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @return The count of clusterKeyUids.
       */
      public int getClusterKeyUidsCount() {
        return clusterKeyUids_.size();
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param index The index of the element to return.
       * @return The clusterKeyUids at the given index.
       */
      public int getClusterKeyUids(int index) {
        return clusterKeyUids_.getInt(index);
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param index The index to set the value at.
       * @param value The clusterKeyUids to set.
       * @return This builder for chaining.
       */
      public Builder setClusterKeyUids(
          int index, int value) {

        ensureClusterKeyUidsIsMutable();
        clusterKeyUids_.setInt(index, value);
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param value The clusterKeyUids to add.
       * @return This builder for chaining.
       */
      public Builder addClusterKeyUids(int value) {

        ensureClusterKeyUidsIsMutable();
        clusterKeyUids_.addInt(value);
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param values The clusterKeyUids to add.
       * @return This builder for chaining.
       */
      public Builder addAllClusterKeyUids(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureClusterKeyUidsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, clusterKeyUids_);
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearClusterKeyUids() {
        clusterKeyUids_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00200000);
        onChanged();
        return this;
      }

      private int invertedIndexStorageFormat_ = 0;
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @return Whether the invertedIndexStorageFormat field is set.
       */
      @java.lang.Override public boolean hasInvertedIndexStorageFormat() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @return The invertedIndexStorageFormat.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB getInvertedIndexStorageFormat() {
        org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB result = org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.forNumber(invertedIndexStorageFormat_);
        return result == null ? org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.V1 : result;
      }
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @param value The invertedIndexStorageFormat to set.
       * @return This builder for chaining.
       */
      public Builder setInvertedIndexStorageFormat(org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00400000;
        invertedIndexStorageFormat_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @return This builder for chaining.
       */
      public Builder clearInvertedIndexStorageFormat() {
        bitField0_ = (bitField0_ & ~0x00400000);
        invertedIndexStorageFormat_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList rowStoreColumnUniqueIds_ = emptyIntList();
      private void ensureRowStoreColumnUniqueIdsIsMutable() {
        if (!rowStoreColumnUniqueIds_.isModifiable()) {
          rowStoreColumnUniqueIds_ = makeMutableCopy(rowStoreColumnUniqueIds_);
        }
        bitField0_ |= 0x00800000;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @return A list containing the rowStoreColumnUniqueIds.
       */
      public java.util.List<java.lang.Integer>
          getRowStoreColumnUniqueIdsList() {
        rowStoreColumnUniqueIds_.makeImmutable();
        return rowStoreColumnUniqueIds_;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @return The count of rowStoreColumnUniqueIds.
       */
      public int getRowStoreColumnUniqueIdsCount() {
        return rowStoreColumnUniqueIds_.size();
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param index The index of the element to return.
       * @return The rowStoreColumnUniqueIds at the given index.
       */
      public int getRowStoreColumnUniqueIds(int index) {
        return rowStoreColumnUniqueIds_.getInt(index);
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param index The index to set the value at.
       * @param value The rowStoreColumnUniqueIds to set.
       * @return This builder for chaining.
       */
      public Builder setRowStoreColumnUniqueIds(
          int index, int value) {

        ensureRowStoreColumnUniqueIdsIsMutable();
        rowStoreColumnUniqueIds_.setInt(index, value);
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param value The rowStoreColumnUniqueIds to add.
       * @return This builder for chaining.
       */
      public Builder addRowStoreColumnUniqueIds(int value) {

        ensureRowStoreColumnUniqueIdsIsMutable();
        rowStoreColumnUniqueIds_.addInt(value);
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param values The rowStoreColumnUniqueIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllRowStoreColumnUniqueIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureRowStoreColumnUniqueIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rowStoreColumnUniqueIds_);
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowStoreColumnUniqueIds() {
        rowStoreColumnUniqueIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00800000);
        onChanged();
        return this;
      }

      private long rowStorePageSize_ = 16384L;
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @return Whether the rowStorePageSize field is set.
       */
      @java.lang.Override
      public boolean hasRowStorePageSize() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @return The rowStorePageSize.
       */
      @java.lang.Override
      public long getRowStorePageSize() {
        return rowStorePageSize_;
      }
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @param value The rowStorePageSize to set.
       * @return This builder for chaining.
       */
      public Builder setRowStorePageSize(long value) {

        rowStorePageSize_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @return This builder for chaining.
       */
      public Builder clearRowStorePageSize() {
        bitField0_ = (bitField0_ & ~0x01000000);
        rowStorePageSize_ = 16384L;
        onChanged();
        return this;
      }

      private boolean enableVariantFlattenNested_ ;
      /**
       * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
       * @return Whether the enableVariantFlattenNested field is set.
       */
      @java.lang.Override
      public boolean hasEnableVariantFlattenNested() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
       * @return The enableVariantFlattenNested.
       */
      @java.lang.Override
      public boolean getEnableVariantFlattenNested() {
        return enableVariantFlattenNested_;
      }
      /**
       * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
       * @param value The enableVariantFlattenNested to set.
       * @return This builder for chaining.
       */
      public Builder setEnableVariantFlattenNested(boolean value) {

        enableVariantFlattenNested_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable_variant_flatten_nested = 28 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableVariantFlattenNested() {
        bitField0_ = (bitField0_ & ~0x02000000);
        enableVariantFlattenNested_ = false;
        onChanged();
        return this;
      }

      private int skipBitmapColIdx_ = -1;
      /**
       * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
       * @return Whether the skipBitmapColIdx field is set.
       */
      @java.lang.Override
      public boolean hasSkipBitmapColIdx() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
       * @return The skipBitmapColIdx.
       */
      @java.lang.Override
      public int getSkipBitmapColIdx() {
        return skipBitmapColIdx_;
      }
      /**
       * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
       * @param value The skipBitmapColIdx to set.
       * @return This builder for chaining.
       */
      public Builder setSkipBitmapColIdx(int value) {

        skipBitmapColIdx_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 skip_bitmap_col_idx = 29 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearSkipBitmapColIdx() {
        bitField0_ = (bitField0_ & ~0x04000000);
        skipBitmapColIdx_ = -1;
        onChanged();
        return this;
      }

      private long storagePageSize_ = 65536L;
      /**
       * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
       * @return Whether the storagePageSize field is set.
       */
      @java.lang.Override
      public boolean hasStoragePageSize() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
       * @return The storagePageSize.
       */
      @java.lang.Override
      public long getStoragePageSize() {
        return storagePageSize_;
      }
      /**
       * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
       * @param value The storagePageSize to set.
       * @return This builder for chaining.
       */
      public Builder setStoragePageSize(long value) {

        storagePageSize_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 storage_page_size = 30 [default = 65536];</code>
       * @return This builder for chaining.
       */
      public Builder clearStoragePageSize() {
        bitField0_ = (bitField0_ & ~0x08000000);
        storagePageSize_ = 65536L;
        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.TabletSchemaPB)
    }

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

    public static org.apache.doris.proto.OlapFile.TabletSchemaPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TabletSchemaPB>
        PARSER = new com.google.protobuf.AbstractParser<TabletSchemaPB>() {
      @java.lang.Override
      public TabletSchemaPB 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<TabletSchemaPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return Whether the keysType field is set.
     */
    boolean hasKeysType();
    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return The keysType.
     */
    org.apache.doris.proto.OlapFile.KeysType getKeysType();

    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> 
        getColumnList();
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPB getColumn(int index);
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    int getColumnCount();
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getColumnOrBuilderList();
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnOrBuilder(
        int index);

    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return Whether the numShortKeyColumns field is set.
     */
    boolean hasNumShortKeyColumns();
    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return The numShortKeyColumns.
     */
    int getNumShortKeyColumns();

    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return Whether the numRowsPerRowBlock field is set.
     */
    boolean hasNumRowsPerRowBlock();
    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return The numRowsPerRowBlock.
     */
    int getNumRowsPerRowBlock();

    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return Whether the compressKind field is set.
     */
    boolean hasCompressKind();
    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return The compressKind.
     */
    org.apache.doris.proto.OlapCommon.CompressKind getCompressKind();

    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return Whether the bfFpp field is set.
     */
    boolean hasBfFpp();
    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return The bfFpp.
     */
    double getBfFpp();

    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return Whether the nextColumnUniqueId field is set.
     */
    boolean hasNextColumnUniqueId();
    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return The nextColumnUniqueId.
     */
    int getNextColumnUniqueId();

    /**
     * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
     * @return Whether the deleteSignIdx field is set.
     */
    boolean hasDeleteSignIdx();
    /**
     * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
     * @return The deleteSignIdx.
     */
    int getDeleteSignIdx();

    /**
     * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
     * @return Whether the sequenceColIdx field is set.
     */
    boolean hasSequenceColIdx();
    /**
     * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
     * @return The sequenceColIdx.
     */
    int getSequenceColIdx();

    /**
     * <code>optional .doris.SortType sort_type = 10;</code>
     * @return Whether the sortType field is set.
     */
    boolean hasSortType();
    /**
     * <code>optional .doris.SortType sort_type = 10;</code>
     * @return The sortType.
     */
    org.apache.doris.proto.OlapFile.SortType getSortType();

    /**
     * <code>optional int32 sort_col_num = 11;</code>
     * @return Whether the sortColNum field is set.
     */
    boolean hasSortColNum();
    /**
     * <code>optional int32 sort_col_num = 11;</code>
     * @return The sortColNum.
     */
    int getSortColNum();

    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
     * @return Whether the compressionType field is set.
     */
    boolean hasCompressionType();
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
     * @return The compressionType.
     */
    doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType();

    /**
     * <code>optional int32 schema_version = 13;</code>
     * @return Whether the schemaVersion field is set.
     */
    boolean hasSchemaVersion();
    /**
     * <code>optional int32 schema_version = 13;</code>
     * @return The schemaVersion.
     */
    int getSchemaVersion();

    /**
     * <code>optional bool disable_auto_compaction = 14 [default = false];</code>
     * @return Whether the disableAutoCompaction field is set.
     */
    boolean hasDisableAutoCompaction();
    /**
     * <code>optional bool disable_auto_compaction = 14 [default = false];</code>
     * @return The disableAutoCompaction.
     */
    boolean getDisableAutoCompaction();

    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> 
        getIndexList();
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    org.apache.doris.proto.OlapFile.TabletIndexPB getIndex(int index);
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    int getIndexCount();
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
        getIndexOrBuilderList();
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexOrBuilder(
        int index);

    /**
     * <code>optional int32 version_col_idx = 16 [default = -1];</code>
     * @return Whether the versionColIdx field is set.
     */
    boolean hasVersionColIdx();
    /**
     * <code>optional int32 version_col_idx = 16 [default = -1];</code>
     * @return The versionColIdx.
     */
    int getVersionColIdx();

    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return Whether the storeRowColumn field is set.
     */
    boolean hasStoreRowColumn();
    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return The storeRowColumn.
     */
    boolean getStoreRowColumn();

    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return Whether the enableSingleReplicaCompaction field is set.
     */
    boolean hasEnableSingleReplicaCompaction();
    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return The enableSingleReplicaCompaction.
     */
    boolean getEnableSingleReplicaCompaction();

    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return Whether the skipWriteIndexOnLoad field is set.
     */
    boolean hasSkipWriteIndexOnLoad();
    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return The skipWriteIndexOnLoad.
     */
    boolean getSkipWriteIndexOnLoad();

    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return A list containing the clusterKeyUids.
     */
    java.util.List<java.lang.Integer> getClusterKeyUidsList();
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return The count of clusterKeyUids.
     */
    int getClusterKeyUidsCount();
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @param index The index of the element to return.
     * @return The clusterKeyUids at the given index.
     */
    int getClusterKeyUids(int index);

    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return Whether the invertedIndexStorageFormat field is set.
     */
    boolean hasInvertedIndexStorageFormat();
    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return The invertedIndexStorageFormat.
     */
    org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB getInvertedIndexStorageFormat();

    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return A list containing the rowStoreColumnUniqueIds.
     */
    java.util.List<java.lang.Integer> getRowStoreColumnUniqueIdsList();
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return The count of rowStoreColumnUniqueIds.
     */
    int getRowStoreColumnUniqueIdsCount();
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @param index The index of the element to return.
     * @return The rowStoreColumnUniqueIds at the given index.
     */
    int getRowStoreColumnUniqueIds(int index);

    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return Whether the rowStorePageSize field is set.
     */
    boolean hasRowStorePageSize();
    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return The rowStorePageSize.
     */
    long getRowStorePageSize();

    /**
     * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
     * @return Whether the enableVariantFlattenNested field is set.
     */
    boolean hasEnableVariantFlattenNested();
    /**
     * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
     * @return The enableVariantFlattenNested.
     */
    boolean getEnableVariantFlattenNested();

    /**
     * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
     * @return Whether the skipBitmapColIdx field is set.
     */
    boolean hasSkipBitmapColIdx();
    /**
     * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
     * @return The skipBitmapColIdx.
     */
    int getSkipBitmapColIdx();

    /**
     * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
     * @return Whether the storagePageSize field is set.
     */
    boolean hasStoragePageSize();
    /**
     * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
     * @return The storagePageSize.
     */
    long getStoragePageSize();

    /**
     * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
     * @return Whether the isDynamicSchema field is set.
     */
    boolean hasIsDynamicSchema();
    /**
     * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
     * @return The isDynamicSchema.
     */
    boolean getIsDynamicSchema();

    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 200 [default = false];</code>
     * @return Whether the isInMemory field is set.
     */
    boolean hasIsInMemory();
    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 200 [default = false];</code>
     * @return The isInMemory.
     */
    boolean getIsInMemory();
  }
  /**
   * Protobuf type {@code doris.TabletSchemaCloudPB}
   */
  public static final class TabletSchemaCloudPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.TabletSchemaCloudPB)
      TabletSchemaCloudPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TabletSchemaCloudPB.newBuilder() to construct.
    private TabletSchemaCloudPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TabletSchemaCloudPB() {
      keysType_ = 0;
      column_ = java.util.Collections.emptyList();
      compressKind_ = 0;
      deleteSignIdx_ = -1;
      sequenceColIdx_ = -1;
      sortType_ = 0;
      compressionType_ = 5;
      index_ = java.util.Collections.emptyList();
      versionColIdx_ = -1;
      clusterKeyUids_ = emptyIntList();
      invertedIndexStorageFormat_ = 0;
      rowStoreColumnUniqueIds_ = emptyIntList();
      rowStorePageSize_ = 16384L;
      skipBitmapColIdx_ = -1;
      storagePageSize_ = 65536L;
    }

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

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

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

    private int bitField0_;
    public static final int KEYS_TYPE_FIELD_NUMBER = 1;
    private int keysType_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return Whether the keysType field is set.
     */
    @java.lang.Override public boolean hasKeysType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.keys_type
     * </pre>
     *
     * <code>optional .doris.KeysType keys_type = 1;</code>
     * @return The keysType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.KeysType getKeysType() {
      org.apache.doris.proto.OlapFile.KeysType result = org.apache.doris.proto.OlapFile.KeysType.forNumber(keysType_);
      return result == null ? org.apache.doris.proto.OlapFile.KeysType.DUP_KEYS : result;
    }

    public static final int COLUMN_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> column_;
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getColumnList() {
      return column_;
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getColumnOrBuilderList() {
      return column_;
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public int getColumnCount() {
      return column_.size();
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPB getColumn(int index) {
      return column_.get(index);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.column
     * </pre>
     *
     * <code>repeated .doris.ColumnPB column = 2;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnOrBuilder(
        int index) {
      return column_.get(index);
    }

    public static final int NUM_SHORT_KEY_COLUMNS_FIELD_NUMBER = 3;
    private int numShortKeyColumns_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return Whether the numShortKeyColumns field is set.
     */
    @java.lang.Override
    public boolean hasNumShortKeyColumns() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.num_short_key_fields
     * </pre>
     *
     * <code>optional int32 num_short_key_columns = 3;</code>
     * @return The numShortKeyColumns.
     */
    @java.lang.Override
    public int getNumShortKeyColumns() {
      return numShortKeyColumns_;
    }

    public static final int NUM_ROWS_PER_ROW_BLOCK_FIELD_NUMBER = 4;
    private int numRowsPerRowBlock_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return Whether the numRowsPerRowBlock field is set.
     */
    @java.lang.Override
    public boolean hasNumRowsPerRowBlock() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.num_rows_per_data_block
     * </pre>
     *
     * <code>optional int32 num_rows_per_row_block = 4;</code>
     * @return The numRowsPerRowBlock.
     */
    @java.lang.Override
    public int getNumRowsPerRowBlock() {
      return numRowsPerRowBlock_;
    }

    public static final int COMPRESS_KIND_FIELD_NUMBER = 5;
    private int compressKind_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return Whether the compressKind field is set.
     */
    @java.lang.Override public boolean hasCompressKind() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.compress_kind
     * </pre>
     *
     * <code>optional .doris.CompressKind compress_kind = 5;</code>
     * @return The compressKind.
     */
    @java.lang.Override public org.apache.doris.proto.OlapCommon.CompressKind getCompressKind() {
      org.apache.doris.proto.OlapCommon.CompressKind result = org.apache.doris.proto.OlapCommon.CompressKind.forNumber(compressKind_);
      return result == null ? org.apache.doris.proto.OlapCommon.CompressKind.COMPRESS_NONE : result;
    }

    public static final int BF_FPP_FIELD_NUMBER = 6;
    private double bfFpp_ = 0D;
    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return Whether the bfFpp field is set.
     */
    @java.lang.Override
    public boolean hasBfFpp() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.bf_fpp
     * </pre>
     *
     * <code>optional double bf_fpp = 6;</code>
     * @return The bfFpp.
     */
    @java.lang.Override
    public double getBfFpp() {
      return bfFpp_;
    }

    public static final int NEXT_COLUMN_UNIQUE_ID_FIELD_NUMBER = 7;
    private int nextColumnUniqueId_ = 0;
    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return Whether the nextColumnUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasNextColumnUniqueId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * OLAPHeaderMessage.next_column_unique_id
     * </pre>
     *
     * <code>optional uint32 next_column_unique_id = 7;</code>
     * @return The nextColumnUniqueId.
     */
    @java.lang.Override
    public int getNextColumnUniqueId() {
      return nextColumnUniqueId_;
    }

    public static final int DELETE_SIGN_IDX_FIELD_NUMBER = 8;
    private int deleteSignIdx_ = -1;
    /**
     * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
     * @return Whether the deleteSignIdx field is set.
     */
    @java.lang.Override
    public boolean hasDeleteSignIdx() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
     * @return The deleteSignIdx.
     */
    @java.lang.Override
    public int getDeleteSignIdx() {
      return deleteSignIdx_;
    }

    public static final int SEQUENCE_COL_IDX_FIELD_NUMBER = 9;
    private int sequenceColIdx_ = -1;
    /**
     * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
     * @return Whether the sequenceColIdx field is set.
     */
    @java.lang.Override
    public boolean hasSequenceColIdx() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
     * @return The sequenceColIdx.
     */
    @java.lang.Override
    public int getSequenceColIdx() {
      return sequenceColIdx_;
    }

    public static final int SORT_TYPE_FIELD_NUMBER = 10;
    private int sortType_ = 0;
    /**
     * <code>optional .doris.SortType sort_type = 10;</code>
     * @return Whether the sortType field is set.
     */
    @java.lang.Override public boolean hasSortType() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .doris.SortType sort_type = 10;</code>
     * @return The sortType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.SortType getSortType() {
      org.apache.doris.proto.OlapFile.SortType result = org.apache.doris.proto.OlapFile.SortType.forNumber(sortType_);
      return result == null ? org.apache.doris.proto.OlapFile.SortType.LEXICAL : result;
    }

    public static final int SORT_COL_NUM_FIELD_NUMBER = 11;
    private int sortColNum_ = 0;
    /**
     * <code>optional int32 sort_col_num = 11;</code>
     * @return Whether the sortColNum field is set.
     */
    @java.lang.Override
    public boolean hasSortColNum() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional int32 sort_col_num = 11;</code>
     * @return The sortColNum.
     */
    @java.lang.Override
    public int getSortColNum() {
      return sortColNum_;
    }

    public static final int COMPRESSION_TYPE_FIELD_NUMBER = 12;
    private int compressionType_ = 5;
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
     * @return Whether the compressionType field is set.
     */
    @java.lang.Override public boolean hasCompressionType() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
     * @return The compressionType.
     */
    @java.lang.Override public doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType() {
      doris.segment_v2.SegmentV2.CompressionTypePB result = doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(compressionType_);
      return result == null ? doris.segment_v2.SegmentV2.CompressionTypePB.LZ4F : result;
    }

    public static final int SCHEMA_VERSION_FIELD_NUMBER = 13;
    private int schemaVersion_ = 0;
    /**
     * <code>optional int32 schema_version = 13;</code>
     * @return Whether the schemaVersion field is set.
     */
    @java.lang.Override
    public boolean hasSchemaVersion() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional int32 schema_version = 13;</code>
     * @return The schemaVersion.
     */
    @java.lang.Override
    public int getSchemaVersion() {
      return schemaVersion_;
    }

    public static final int DISABLE_AUTO_COMPACTION_FIELD_NUMBER = 14;
    private boolean disableAutoCompaction_ = false;
    /**
     * <code>optional bool disable_auto_compaction = 14 [default = false];</code>
     * @return Whether the disableAutoCompaction field is set.
     */
    @java.lang.Override
    public boolean hasDisableAutoCompaction() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional bool disable_auto_compaction = 14 [default = false];</code>
     * @return The disableAutoCompaction.
     */
    @java.lang.Override
    public boolean getDisableAutoCompaction() {
      return disableAutoCompaction_;
    }

    public static final int INDEX_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> index_;
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexList() {
      return index_;
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
        getIndexOrBuilderList() {
      return index_;
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    @java.lang.Override
    public int getIndexCount() {
      return index_.size();
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletIndexPB getIndex(int index) {
      return index_.get(index);
    }
    /**
     * <code>repeated .doris.TabletIndexPB index = 15;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexOrBuilder(
        int index) {
      return index_.get(index);
    }

    public static final int VERSION_COL_IDX_FIELD_NUMBER = 16;
    private int versionColIdx_ = -1;
    /**
     * <code>optional int32 version_col_idx = 16 [default = -1];</code>
     * @return Whether the versionColIdx field is set.
     */
    @java.lang.Override
    public boolean hasVersionColIdx() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional int32 version_col_idx = 16 [default = -1];</code>
     * @return The versionColIdx.
     */
    @java.lang.Override
    public int getVersionColIdx() {
      return versionColIdx_;
    }

    public static final int STORE_ROW_COLUMN_FIELD_NUMBER = 18;
    private boolean storeRowColumn_ = false;
    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return Whether the storeRowColumn field is set.
     */
    @java.lang.Override
    public boolean hasStoreRowColumn() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * store tuplerow oriented column
     * </pre>
     *
     * <code>optional bool store_row_column = 18 [default = false];</code>
     * @return The storeRowColumn.
     */
    @java.lang.Override
    public boolean getStoreRowColumn() {
      return storeRowColumn_;
    }

    public static final int ENABLE_SINGLE_REPLICA_COMPACTION_FIELD_NUMBER = 22;
    private boolean enableSingleReplicaCompaction_ = false;
    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return Whether the enableSingleReplicaCompaction field is set.
     */
    @java.lang.Override
    public boolean hasEnableSingleReplicaCompaction() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
     * @return The enableSingleReplicaCompaction.
     */
    @java.lang.Override
    public boolean getEnableSingleReplicaCompaction() {
      return enableSingleReplicaCompaction_;
    }

    public static final int SKIP_WRITE_INDEX_ON_LOAD_FIELD_NUMBER = 23;
    private boolean skipWriteIndexOnLoad_ = false;
    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return Whether the skipWriteIndexOnLoad field is set.
     */
    @java.lang.Override
    public boolean hasSkipWriteIndexOnLoad() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
     * @return The skipWriteIndexOnLoad.
     */
    @java.lang.Override
    public boolean getSkipWriteIndexOnLoad() {
      return skipWriteIndexOnLoad_;
    }

    public static final int CLUSTER_KEY_UIDS_FIELD_NUMBER = 24;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList clusterKeyUids_ =
        emptyIntList();
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return A list containing the clusterKeyUids.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getClusterKeyUidsList() {
      return clusterKeyUids_;
    }
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @return The count of clusterKeyUids.
     */
    public int getClusterKeyUidsCount() {
      return clusterKeyUids_.size();
    }
    /**
     * <code>repeated int32 cluster_key_uids = 24;</code>
     * @param index The index of the element to return.
     * @return The clusterKeyUids at the given index.
     */
    public int getClusterKeyUids(int index) {
      return clusterKeyUids_.getInt(index);
    }

    public static final int INVERTED_INDEX_STORAGE_FORMAT_FIELD_NUMBER = 25;
    private int invertedIndexStorageFormat_ = 0;
    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return Whether the invertedIndexStorageFormat field is set.
     */
    @java.lang.Override public boolean hasInvertedIndexStorageFormat() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
     * @return The invertedIndexStorageFormat.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB getInvertedIndexStorageFormat() {
      org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB result = org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.forNumber(invertedIndexStorageFormat_);
      return result == null ? org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.V1 : result;
    }

    public static final int ROW_STORE_COLUMN_UNIQUE_IDS_FIELD_NUMBER = 26;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList rowStoreColumnUniqueIds_ =
        emptyIntList();
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return A list containing the rowStoreColumnUniqueIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getRowStoreColumnUniqueIdsList() {
      return rowStoreColumnUniqueIds_;
    }
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @return The count of rowStoreColumnUniqueIds.
     */
    public int getRowStoreColumnUniqueIdsCount() {
      return rowStoreColumnUniqueIds_.size();
    }
    /**
     * <pre>
     * column unique ids for row store columns
     * </pre>
     *
     * <code>repeated int32 row_store_column_unique_ids = 26;</code>
     * @param index The index of the element to return.
     * @return The rowStoreColumnUniqueIds at the given index.
     */
    public int getRowStoreColumnUniqueIds(int index) {
      return rowStoreColumnUniqueIds_.getInt(index);
    }

    public static final int ROW_STORE_PAGE_SIZE_FIELD_NUMBER = 27;
    private long rowStorePageSize_ = 16384L;
    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return Whether the rowStorePageSize field is set.
     */
    @java.lang.Override
    public boolean hasRowStorePageSize() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
     * @return The rowStorePageSize.
     */
    @java.lang.Override
    public long getRowStorePageSize() {
      return rowStorePageSize_;
    }

    public static final int ENABLE_VARIANT_FLATTEN_NESTED_FIELD_NUMBER = 29;
    private boolean enableVariantFlattenNested_ = false;
    /**
     * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
     * @return Whether the enableVariantFlattenNested field is set.
     */
    @java.lang.Override
    public boolean hasEnableVariantFlattenNested() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
     * @return The enableVariantFlattenNested.
     */
    @java.lang.Override
    public boolean getEnableVariantFlattenNested() {
      return enableVariantFlattenNested_;
    }

    public static final int SKIP_BITMAP_COL_IDX_FIELD_NUMBER = 30;
    private int skipBitmapColIdx_ = -1;
    /**
     * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
     * @return Whether the skipBitmapColIdx field is set.
     */
    @java.lang.Override
    public boolean hasSkipBitmapColIdx() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
     * @return The skipBitmapColIdx.
     */
    @java.lang.Override
    public int getSkipBitmapColIdx() {
      return skipBitmapColIdx_;
    }

    public static final int STORAGE_PAGE_SIZE_FIELD_NUMBER = 31;
    private long storagePageSize_ = 65536L;
    /**
     * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
     * @return Whether the storagePageSize field is set.
     */
    @java.lang.Override
    public boolean hasStoragePageSize() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
     * @return The storagePageSize.
     */
    @java.lang.Override
    public long getStoragePageSize() {
      return storagePageSize_;
    }

    public static final int IS_DYNAMIC_SCHEMA_FIELD_NUMBER = 100;
    private boolean isDynamicSchema_ = false;
    /**
     * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
     * @return Whether the isDynamicSchema field is set.
     */
    @java.lang.Override
    public boolean hasIsDynamicSchema() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
     * @return The isDynamicSchema.
     */
    @java.lang.Override
    public boolean getIsDynamicSchema() {
      return isDynamicSchema_;
    }

    public static final int IS_IN_MEMORY_FIELD_NUMBER = 200;
    private boolean isInMemory_ = false;
    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 200 [default = false];</code>
     * @return Whether the isInMemory field is set.
     */
    @java.lang.Override
    public boolean hasIsInMemory() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <pre>
     * FIXME(gavin): deprecate and remove in the future
     * </pre>
     *
     * <code>optional bool is_in_memory = 200 [default = false];</code>
     * @return The isInMemory.
     */
    @java.lang.Override
    public boolean getIsInMemory() {
      return isInMemory_;
    }

    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 < getColumnCount(); i++) {
        if (!getColumn(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.writeEnum(1, keysType_);
      }
      for (int i = 0; i < column_.size(); i++) {
        output.writeMessage(2, column_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(3, numShortKeyColumns_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(4, numRowsPerRowBlock_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(5, compressKind_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeDouble(6, bfFpp_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(7, nextColumnUniqueId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(8, deleteSignIdx_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt32(9, sequenceColIdx_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeEnum(10, sortType_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt32(11, sortColNum_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeEnum(12, compressionType_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeInt32(13, schemaVersion_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeBool(14, disableAutoCompaction_);
      }
      for (int i = 0; i < index_.size(); i++) {
        output.writeMessage(15, index_.get(i));
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeInt32(16, versionColIdx_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeBool(18, storeRowColumn_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeBool(22, enableSingleReplicaCompaction_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeBool(23, skipWriteIndexOnLoad_);
      }
      for (int i = 0; i < clusterKeyUids_.size(); i++) {
        output.writeInt32(24, clusterKeyUids_.getInt(i));
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeEnum(25, invertedIndexStorageFormat_);
      }
      for (int i = 0; i < rowStoreColumnUniqueIds_.size(); i++) {
        output.writeInt32(26, rowStoreColumnUniqueIds_.getInt(i));
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeInt64(27, rowStorePageSize_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeBool(29, enableVariantFlattenNested_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeInt32(30, skipBitmapColIdx_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeInt64(31, storagePageSize_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeBool(100, isDynamicSchema_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeBool(200, isInMemory_);
      }
      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
          .computeEnumSize(1, keysType_);
      }
      for (int i = 0; i < column_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, column_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, numShortKeyColumns_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, numRowsPerRowBlock_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, compressKind_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, bfFpp_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, nextColumnUniqueId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, deleteSignIdx_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, sequenceColIdx_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(10, sortType_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(11, sortColNum_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(12, compressionType_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, schemaVersion_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, disableAutoCompaction_);
      }
      for (int i = 0; i < index_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, index_.get(i));
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(16, versionColIdx_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(18, storeRowColumn_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(22, enableSingleReplicaCompaction_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(23, skipWriteIndexOnLoad_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < clusterKeyUids_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(clusterKeyUids_.getInt(i));
        }
        size += dataSize;
        size += 2 * getClusterKeyUidsList().size();
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(25, invertedIndexStorageFormat_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < rowStoreColumnUniqueIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(rowStoreColumnUniqueIds_.getInt(i));
        }
        size += dataSize;
        size += 2 * getRowStoreColumnUniqueIdsList().size();
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(27, rowStorePageSize_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(29, enableVariantFlattenNested_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(30, skipBitmapColIdx_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(31, storagePageSize_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(100, isDynamicSchema_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(200, isInMemory_);
      }
      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.OlapFile.TabletSchemaCloudPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.TabletSchemaCloudPB other = (org.apache.doris.proto.OlapFile.TabletSchemaCloudPB) obj;

      if (hasKeysType() != other.hasKeysType()) return false;
      if (hasKeysType()) {
        if (keysType_ != other.keysType_) return false;
      }
      if (!getColumnList()
          .equals(other.getColumnList())) return false;
      if (hasNumShortKeyColumns() != other.hasNumShortKeyColumns()) return false;
      if (hasNumShortKeyColumns()) {
        if (getNumShortKeyColumns()
            != other.getNumShortKeyColumns()) return false;
      }
      if (hasNumRowsPerRowBlock() != other.hasNumRowsPerRowBlock()) return false;
      if (hasNumRowsPerRowBlock()) {
        if (getNumRowsPerRowBlock()
            != other.getNumRowsPerRowBlock()) return false;
      }
      if (hasCompressKind() != other.hasCompressKind()) return false;
      if (hasCompressKind()) {
        if (compressKind_ != other.compressKind_) return false;
      }
      if (hasBfFpp() != other.hasBfFpp()) return false;
      if (hasBfFpp()) {
        if (java.lang.Double.doubleToLongBits(getBfFpp())
            != java.lang.Double.doubleToLongBits(
                other.getBfFpp())) return false;
      }
      if (hasNextColumnUniqueId() != other.hasNextColumnUniqueId()) return false;
      if (hasNextColumnUniqueId()) {
        if (getNextColumnUniqueId()
            != other.getNextColumnUniqueId()) return false;
      }
      if (hasDeleteSignIdx() != other.hasDeleteSignIdx()) return false;
      if (hasDeleteSignIdx()) {
        if (getDeleteSignIdx()
            != other.getDeleteSignIdx()) return false;
      }
      if (hasSequenceColIdx() != other.hasSequenceColIdx()) return false;
      if (hasSequenceColIdx()) {
        if (getSequenceColIdx()
            != other.getSequenceColIdx()) return false;
      }
      if (hasSortType() != other.hasSortType()) return false;
      if (hasSortType()) {
        if (sortType_ != other.sortType_) return false;
      }
      if (hasSortColNum() != other.hasSortColNum()) return false;
      if (hasSortColNum()) {
        if (getSortColNum()
            != other.getSortColNum()) return false;
      }
      if (hasCompressionType() != other.hasCompressionType()) return false;
      if (hasCompressionType()) {
        if (compressionType_ != other.compressionType_) return false;
      }
      if (hasSchemaVersion() != other.hasSchemaVersion()) return false;
      if (hasSchemaVersion()) {
        if (getSchemaVersion()
            != other.getSchemaVersion()) return false;
      }
      if (hasDisableAutoCompaction() != other.hasDisableAutoCompaction()) return false;
      if (hasDisableAutoCompaction()) {
        if (getDisableAutoCompaction()
            != other.getDisableAutoCompaction()) return false;
      }
      if (!getIndexList()
          .equals(other.getIndexList())) return false;
      if (hasVersionColIdx() != other.hasVersionColIdx()) return false;
      if (hasVersionColIdx()) {
        if (getVersionColIdx()
            != other.getVersionColIdx()) return false;
      }
      if (hasStoreRowColumn() != other.hasStoreRowColumn()) return false;
      if (hasStoreRowColumn()) {
        if (getStoreRowColumn()
            != other.getStoreRowColumn()) return false;
      }
      if (hasEnableSingleReplicaCompaction() != other.hasEnableSingleReplicaCompaction()) return false;
      if (hasEnableSingleReplicaCompaction()) {
        if (getEnableSingleReplicaCompaction()
            != other.getEnableSingleReplicaCompaction()) return false;
      }
      if (hasSkipWriteIndexOnLoad() != other.hasSkipWriteIndexOnLoad()) return false;
      if (hasSkipWriteIndexOnLoad()) {
        if (getSkipWriteIndexOnLoad()
            != other.getSkipWriteIndexOnLoad()) return false;
      }
      if (!getClusterKeyUidsList()
          .equals(other.getClusterKeyUidsList())) return false;
      if (hasInvertedIndexStorageFormat() != other.hasInvertedIndexStorageFormat()) return false;
      if (hasInvertedIndexStorageFormat()) {
        if (invertedIndexStorageFormat_ != other.invertedIndexStorageFormat_) return false;
      }
      if (!getRowStoreColumnUniqueIdsList()
          .equals(other.getRowStoreColumnUniqueIdsList())) return false;
      if (hasRowStorePageSize() != other.hasRowStorePageSize()) return false;
      if (hasRowStorePageSize()) {
        if (getRowStorePageSize()
            != other.getRowStorePageSize()) return false;
      }
      if (hasEnableVariantFlattenNested() != other.hasEnableVariantFlattenNested()) return false;
      if (hasEnableVariantFlattenNested()) {
        if (getEnableVariantFlattenNested()
            != other.getEnableVariantFlattenNested()) return false;
      }
      if (hasSkipBitmapColIdx() != other.hasSkipBitmapColIdx()) return false;
      if (hasSkipBitmapColIdx()) {
        if (getSkipBitmapColIdx()
            != other.getSkipBitmapColIdx()) return false;
      }
      if (hasStoragePageSize() != other.hasStoragePageSize()) return false;
      if (hasStoragePageSize()) {
        if (getStoragePageSize()
            != other.getStoragePageSize()) return false;
      }
      if (hasIsDynamicSchema() != other.hasIsDynamicSchema()) return false;
      if (hasIsDynamicSchema()) {
        if (getIsDynamicSchema()
            != other.getIsDynamicSchema()) return false;
      }
      if (hasIsInMemory() != other.hasIsInMemory()) return false;
      if (hasIsInMemory()) {
        if (getIsInMemory()
            != other.getIsInMemory()) 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 (hasKeysType()) {
        hash = (37 * hash) + KEYS_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + keysType_;
      }
      if (getColumnCount() > 0) {
        hash = (37 * hash) + COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getColumnList().hashCode();
      }
      if (hasNumShortKeyColumns()) {
        hash = (37 * hash) + NUM_SHORT_KEY_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getNumShortKeyColumns();
      }
      if (hasNumRowsPerRowBlock()) {
        hash = (37 * hash) + NUM_ROWS_PER_ROW_BLOCK_FIELD_NUMBER;
        hash = (53 * hash) + getNumRowsPerRowBlock();
      }
      if (hasCompressKind()) {
        hash = (37 * hash) + COMPRESS_KIND_FIELD_NUMBER;
        hash = (53 * hash) + compressKind_;
      }
      if (hasBfFpp()) {
        hash = (37 * hash) + BF_FPP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getBfFpp()));
      }
      if (hasNextColumnUniqueId()) {
        hash = (37 * hash) + NEXT_COLUMN_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getNextColumnUniqueId();
      }
      if (hasDeleteSignIdx()) {
        hash = (37 * hash) + DELETE_SIGN_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getDeleteSignIdx();
      }
      if (hasSequenceColIdx()) {
        hash = (37 * hash) + SEQUENCE_COL_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getSequenceColIdx();
      }
      if (hasSortType()) {
        hash = (37 * hash) + SORT_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + sortType_;
      }
      if (hasSortColNum()) {
        hash = (37 * hash) + SORT_COL_NUM_FIELD_NUMBER;
        hash = (53 * hash) + getSortColNum();
      }
      if (hasCompressionType()) {
        hash = (37 * hash) + COMPRESSION_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + compressionType_;
      }
      if (hasSchemaVersion()) {
        hash = (37 * hash) + SCHEMA_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaVersion();
      }
      if (hasDisableAutoCompaction()) {
        hash = (37 * hash) + DISABLE_AUTO_COMPACTION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDisableAutoCompaction());
      }
      if (getIndexCount() > 0) {
        hash = (37 * hash) + INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getIndexList().hashCode();
      }
      if (hasVersionColIdx()) {
        hash = (37 * hash) + VERSION_COL_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getVersionColIdx();
      }
      if (hasStoreRowColumn()) {
        hash = (37 * hash) + STORE_ROW_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getStoreRowColumn());
      }
      if (hasEnableSingleReplicaCompaction()) {
        hash = (37 * hash) + ENABLE_SINGLE_REPLICA_COMPACTION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableSingleReplicaCompaction());
      }
      if (hasSkipWriteIndexOnLoad()) {
        hash = (37 * hash) + SKIP_WRITE_INDEX_ON_LOAD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSkipWriteIndexOnLoad());
      }
      if (getClusterKeyUidsCount() > 0) {
        hash = (37 * hash) + CLUSTER_KEY_UIDS_FIELD_NUMBER;
        hash = (53 * hash) + getClusterKeyUidsList().hashCode();
      }
      if (hasInvertedIndexStorageFormat()) {
        hash = (37 * hash) + INVERTED_INDEX_STORAGE_FORMAT_FIELD_NUMBER;
        hash = (53 * hash) + invertedIndexStorageFormat_;
      }
      if (getRowStoreColumnUniqueIdsCount() > 0) {
        hash = (37 * hash) + ROW_STORE_COLUMN_UNIQUE_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getRowStoreColumnUniqueIdsList().hashCode();
      }
      if (hasRowStorePageSize()) {
        hash = (37 * hash) + ROW_STORE_PAGE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRowStorePageSize());
      }
      if (hasEnableVariantFlattenNested()) {
        hash = (37 * hash) + ENABLE_VARIANT_FLATTEN_NESTED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableVariantFlattenNested());
      }
      if (hasSkipBitmapColIdx()) {
        hash = (37 * hash) + SKIP_BITMAP_COL_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getSkipBitmapColIdx();
      }
      if (hasStoragePageSize()) {
        hash = (37 * hash) + STORAGE_PAGE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStoragePageSize());
      }
      if (hasIsDynamicSchema()) {
        hash = (37 * hash) + IS_DYNAMIC_SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsDynamicSchema());
      }
      if (hasIsInMemory()) {
        hash = (37 * hash) + IS_IN_MEMORY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsInMemory());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB 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.OlapFile.TabletSchemaCloudPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB 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.OlapFile.TabletSchemaCloudPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB 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.OlapFile.TabletSchemaCloudPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB 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.OlapFile.TabletSchemaCloudPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB 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.OlapFile.TabletSchemaCloudPB 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.TabletSchemaCloudPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.TabletSchemaCloudPB)
        org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_TabletSchemaCloudPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        keysType_ = 0;
        if (columnBuilder_ == null) {
          column_ = java.util.Collections.emptyList();
        } else {
          column_ = null;
          columnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        numShortKeyColumns_ = 0;
        numRowsPerRowBlock_ = 0;
        compressKind_ = 0;
        bfFpp_ = 0D;
        nextColumnUniqueId_ = 0;
        deleteSignIdx_ = -1;
        sequenceColIdx_ = -1;
        sortType_ = 0;
        sortColNum_ = 0;
        compressionType_ = 5;
        schemaVersion_ = 0;
        disableAutoCompaction_ = false;
        if (indexBuilder_ == null) {
          index_ = java.util.Collections.emptyList();
        } else {
          index_ = null;
          indexBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        versionColIdx_ = -1;
        storeRowColumn_ = false;
        enableSingleReplicaCompaction_ = false;
        skipWriteIndexOnLoad_ = false;
        clusterKeyUids_ = emptyIntList();
        invertedIndexStorageFormat_ = 0;
        rowStoreColumnUniqueIds_ = emptyIntList();
        rowStorePageSize_ = 16384L;
        enableVariantFlattenNested_ = false;
        skipBitmapColIdx_ = -1;
        storagePageSize_ = 65536L;
        isDynamicSchema_ = false;
        isInMemory_ = false;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.TabletSchemaCloudPB result) {
        if (columnBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            column_ = java.util.Collections.unmodifiableList(column_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.column_ = column_;
        } else {
          result.column_ = columnBuilder_.build();
        }
        if (indexBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0)) {
            index_ = java.util.Collections.unmodifiableList(index_);
            bitField0_ = (bitField0_ & ~0x00004000);
          }
          result.index_ = index_;
        } else {
          result.index_ = indexBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.TabletSchemaCloudPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.keysType_ = keysType_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.numShortKeyColumns_ = numShortKeyColumns_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.numRowsPerRowBlock_ = numRowsPerRowBlock_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.compressKind_ = compressKind_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.bfFpp_ = bfFpp_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.nextColumnUniqueId_ = nextColumnUniqueId_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.deleteSignIdx_ = deleteSignIdx_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.sequenceColIdx_ = sequenceColIdx_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.sortType_ = sortType_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.sortColNum_ = sortColNum_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.compressionType_ = compressionType_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.schemaVersion_ = schemaVersion_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.disableAutoCompaction_ = disableAutoCompaction_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.versionColIdx_ = versionColIdx_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.storeRowColumn_ = storeRowColumn_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.enableSingleReplicaCompaction_ = enableSingleReplicaCompaction_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.skipWriteIndexOnLoad_ = skipWriteIndexOnLoad_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          clusterKeyUids_.makeImmutable();
          result.clusterKeyUids_ = clusterKeyUids_;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.invertedIndexStorageFormat_ = invertedIndexStorageFormat_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          rowStoreColumnUniqueIds_.makeImmutable();
          result.rowStoreColumnUniqueIds_ = rowStoreColumnUniqueIds_;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.rowStorePageSize_ = rowStorePageSize_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.enableVariantFlattenNested_ = enableVariantFlattenNested_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.skipBitmapColIdx_ = skipBitmapColIdx_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.storagePageSize_ = storagePageSize_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.isDynamicSchema_ = isDynamicSchema_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.isInMemory_ = isInMemory_;
          to_bitField0_ |= 0x00800000;
        }
        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.OlapFile.TabletSchemaCloudPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.TabletSchemaCloudPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.TabletSchemaCloudPB other) {
        if (other == org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance()) return this;
        if (other.hasKeysType()) {
          setKeysType(other.getKeysType());
        }
        if (columnBuilder_ == null) {
          if (!other.column_.isEmpty()) {
            if (column_.isEmpty()) {
              column_ = other.column_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureColumnIsMutable();
              column_.addAll(other.column_);
            }
            onChanged();
          }
        } else {
          if (!other.column_.isEmpty()) {
            if (columnBuilder_.isEmpty()) {
              columnBuilder_.dispose();
              columnBuilder_ = null;
              column_ = other.column_;
              bitField0_ = (bitField0_ & ~0x00000002);
              columnBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnFieldBuilder() : null;
            } else {
              columnBuilder_.addAllMessages(other.column_);
            }
          }
        }
        if (other.hasNumShortKeyColumns()) {
          setNumShortKeyColumns(other.getNumShortKeyColumns());
        }
        if (other.hasNumRowsPerRowBlock()) {
          setNumRowsPerRowBlock(other.getNumRowsPerRowBlock());
        }
        if (other.hasCompressKind()) {
          setCompressKind(other.getCompressKind());
        }
        if (other.hasBfFpp()) {
          setBfFpp(other.getBfFpp());
        }
        if (other.hasNextColumnUniqueId()) {
          setNextColumnUniqueId(other.getNextColumnUniqueId());
        }
        if (other.hasDeleteSignIdx()) {
          setDeleteSignIdx(other.getDeleteSignIdx());
        }
        if (other.hasSequenceColIdx()) {
          setSequenceColIdx(other.getSequenceColIdx());
        }
        if (other.hasSortType()) {
          setSortType(other.getSortType());
        }
        if (other.hasSortColNum()) {
          setSortColNum(other.getSortColNum());
        }
        if (other.hasCompressionType()) {
          setCompressionType(other.getCompressionType());
        }
        if (other.hasSchemaVersion()) {
          setSchemaVersion(other.getSchemaVersion());
        }
        if (other.hasDisableAutoCompaction()) {
          setDisableAutoCompaction(other.getDisableAutoCompaction());
        }
        if (indexBuilder_ == null) {
          if (!other.index_.isEmpty()) {
            if (index_.isEmpty()) {
              index_ = other.index_;
              bitField0_ = (bitField0_ & ~0x00004000);
            } else {
              ensureIndexIsMutable();
              index_.addAll(other.index_);
            }
            onChanged();
          }
        } else {
          if (!other.index_.isEmpty()) {
            if (indexBuilder_.isEmpty()) {
              indexBuilder_.dispose();
              indexBuilder_ = null;
              index_ = other.index_;
              bitField0_ = (bitField0_ & ~0x00004000);
              indexBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIndexFieldBuilder() : null;
            } else {
              indexBuilder_.addAllMessages(other.index_);
            }
          }
        }
        if (other.hasVersionColIdx()) {
          setVersionColIdx(other.getVersionColIdx());
        }
        if (other.hasStoreRowColumn()) {
          setStoreRowColumn(other.getStoreRowColumn());
        }
        if (other.hasEnableSingleReplicaCompaction()) {
          setEnableSingleReplicaCompaction(other.getEnableSingleReplicaCompaction());
        }
        if (other.hasSkipWriteIndexOnLoad()) {
          setSkipWriteIndexOnLoad(other.getSkipWriteIndexOnLoad());
        }
        if (!other.clusterKeyUids_.isEmpty()) {
          if (clusterKeyUids_.isEmpty()) {
            clusterKeyUids_ = other.clusterKeyUids_;
            clusterKeyUids_.makeImmutable();
            bitField0_ |= 0x00080000;
          } else {
            ensureClusterKeyUidsIsMutable();
            clusterKeyUids_.addAll(other.clusterKeyUids_);
          }
          onChanged();
        }
        if (other.hasInvertedIndexStorageFormat()) {
          setInvertedIndexStorageFormat(other.getInvertedIndexStorageFormat());
        }
        if (!other.rowStoreColumnUniqueIds_.isEmpty()) {
          if (rowStoreColumnUniqueIds_.isEmpty()) {
            rowStoreColumnUniqueIds_ = other.rowStoreColumnUniqueIds_;
            rowStoreColumnUniqueIds_.makeImmutable();
            bitField0_ |= 0x00200000;
          } else {
            ensureRowStoreColumnUniqueIdsIsMutable();
            rowStoreColumnUniqueIds_.addAll(other.rowStoreColumnUniqueIds_);
          }
          onChanged();
        }
        if (other.hasRowStorePageSize()) {
          setRowStorePageSize(other.getRowStorePageSize());
        }
        if (other.hasEnableVariantFlattenNested()) {
          setEnableVariantFlattenNested(other.getEnableVariantFlattenNested());
        }
        if (other.hasSkipBitmapColIdx()) {
          setSkipBitmapColIdx(other.getSkipBitmapColIdx());
        }
        if (other.hasStoragePageSize()) {
          setStoragePageSize(other.getStoragePageSize());
        }
        if (other.hasIsDynamicSchema()) {
          setIsDynamicSchema(other.getIsDynamicSchema());
        }
        if (other.hasIsInMemory()) {
          setIsInMemory(other.getIsInMemory());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getColumnCount(); i++) {
          if (!getColumn(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: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.KeysType tmpValue =
                    org.apache.doris.proto.OlapFile.KeysType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  keysType_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              case 18: {
                org.apache.doris.proto.OlapFile.ColumnPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.ColumnPB.PARSER,
                        extensionRegistry);
                if (columnBuilder_ == null) {
                  ensureColumnIsMutable();
                  column_.add(m);
                } else {
                  columnBuilder_.addMessage(m);
                }
                break;
              } // case 18
              case 24: {
                numShortKeyColumns_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                numRowsPerRowBlock_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapCommon.CompressKind tmpValue =
                    org.apache.doris.proto.OlapCommon.CompressKind.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(5, tmpRaw);
                } else {
                  compressKind_ = tmpRaw;
                  bitField0_ |= 0x00000010;
                }
                break;
              } // case 40
              case 49: {
                bfFpp_ = input.readDouble();
                bitField0_ |= 0x00000020;
                break;
              } // case 49
              case 56: {
                nextColumnUniqueId_ = input.readUInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                deleteSignIdx_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                sequenceColIdx_ = input.readInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.SortType tmpValue =
                    org.apache.doris.proto.OlapFile.SortType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(10, tmpRaw);
                } else {
                  sortType_ = tmpRaw;
                  bitField0_ |= 0x00000200;
                }
                break;
              } // case 80
              case 88: {
                sortColNum_ = input.readInt32();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                int tmpRaw = input.readEnum();
                doris.segment_v2.SegmentV2.CompressionTypePB tmpValue =
                    doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(12, tmpRaw);
                } else {
                  compressionType_ = tmpRaw;
                  bitField0_ |= 0x00000800;
                }
                break;
              } // case 96
              case 104: {
                schemaVersion_ = input.readInt32();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                disableAutoCompaction_ = input.readBool();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 122: {
                org.apache.doris.proto.OlapFile.TabletIndexPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.TabletIndexPB.PARSER,
                        extensionRegistry);
                if (indexBuilder_ == null) {
                  ensureIndexIsMutable();
                  index_.add(m);
                } else {
                  indexBuilder_.addMessage(m);
                }
                break;
              } // case 122
              case 128: {
                versionColIdx_ = input.readInt32();
                bitField0_ |= 0x00008000;
                break;
              } // case 128
              case 144: {
                storeRowColumn_ = input.readBool();
                bitField0_ |= 0x00010000;
                break;
              } // case 144
              case 176: {
                enableSingleReplicaCompaction_ = input.readBool();
                bitField0_ |= 0x00020000;
                break;
              } // case 176
              case 184: {
                skipWriteIndexOnLoad_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 184
              case 192: {
                int v = input.readInt32();
                ensureClusterKeyUidsIsMutable();
                clusterKeyUids_.addInt(v);
                break;
              } // case 192
              case 194: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureClusterKeyUidsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  clusterKeyUids_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 194
              case 200: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB tmpValue =
                    org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(25, tmpRaw);
                } else {
                  invertedIndexStorageFormat_ = tmpRaw;
                  bitField0_ |= 0x00100000;
                }
                break;
              } // case 200
              case 208: {
                int v = input.readInt32();
                ensureRowStoreColumnUniqueIdsIsMutable();
                rowStoreColumnUniqueIds_.addInt(v);
                break;
              } // case 208
              case 210: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureRowStoreColumnUniqueIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  rowStoreColumnUniqueIds_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 210
              case 216: {
                rowStorePageSize_ = input.readInt64();
                bitField0_ |= 0x00400000;
                break;
              } // case 216
              case 232: {
                enableVariantFlattenNested_ = input.readBool();
                bitField0_ |= 0x00800000;
                break;
              } // case 232
              case 240: {
                skipBitmapColIdx_ = input.readInt32();
                bitField0_ |= 0x01000000;
                break;
              } // case 240
              case 248: {
                storagePageSize_ = input.readInt64();
                bitField0_ |= 0x02000000;
                break;
              } // case 248
              case 800: {
                isDynamicSchema_ = input.readBool();
                bitField0_ |= 0x04000000;
                break;
              } // case 800
              case 1600: {
                isInMemory_ = input.readBool();
                bitField0_ |= 0x08000000;
                break;
              } // case 1600
              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 keysType_ = 0;
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @return Whether the keysType field is set.
       */
      @java.lang.Override public boolean hasKeysType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @return The keysType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.KeysType getKeysType() {
        org.apache.doris.proto.OlapFile.KeysType result = org.apache.doris.proto.OlapFile.KeysType.forNumber(keysType_);
        return result == null ? org.apache.doris.proto.OlapFile.KeysType.DUP_KEYS : result;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @param value The keysType to set.
       * @return This builder for chaining.
       */
      public Builder setKeysType(org.apache.doris.proto.OlapFile.KeysType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        keysType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.keys_type
       * </pre>
       *
       * <code>optional .doris.KeysType keys_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeysType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        keysType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> column_ =
        java.util.Collections.emptyList();
      private void ensureColumnIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          column_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.ColumnPB>(column_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> columnBuilder_;

      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getColumnList() {
        if (columnBuilder_ == null) {
          return java.util.Collections.unmodifiableList(column_);
        } else {
          return columnBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public int getColumnCount() {
        if (columnBuilder_ == null) {
          return column_.size();
        } else {
          return columnBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB getColumn(int index) {
        if (columnBuilder_ == null) {
          return column_.get(index);
        } else {
          return columnBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder setColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnIsMutable();
          column_.set(index, value);
          onChanged();
        } else {
          columnBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder setColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnIsMutable();
          column_.add(value);
          onChanged();
        } else {
          columnBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnIsMutable();
          column_.add(index, value);
          onChanged();
        } else {
          columnBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(
          org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.add(builderForValue.build());
          onChanged();
        } else {
          columnBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addColumn(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder addAllColumn(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.ColumnPB> values) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, column_);
          onChanged();
        } else {
          columnBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder clearColumn() {
        if (columnBuilder_ == null) {
          column_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          columnBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public Builder removeColumn(int index) {
        if (columnBuilder_ == null) {
          ensureColumnIsMutable();
          column_.remove(index);
          onChanged();
        } else {
          columnBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder getColumnBuilder(
          int index) {
        return getColumnFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnOrBuilder(
          int index) {
        if (columnBuilder_ == null) {
          return column_.get(index);  } else {
          return columnBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
           getColumnOrBuilderList() {
        if (columnBuilder_ != null) {
          return columnBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(column_);
        }
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addColumnBuilder() {
        return getColumnFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addColumnBuilder(
          int index) {
        return getColumnFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <pre>
       * OLAPHeaderMessage.column
       * </pre>
       *
       * <code>repeated .doris.ColumnPB column = 2;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB.Builder> 
           getColumnBuilderList() {
        return getColumnFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
          getColumnFieldBuilder() {
        if (columnBuilder_ == null) {
          columnBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder>(
                  column_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          column_ = null;
        }
        return columnBuilder_;
      }

      private int numShortKeyColumns_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @return Whether the numShortKeyColumns field is set.
       */
      @java.lang.Override
      public boolean hasNumShortKeyColumns() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @return The numShortKeyColumns.
       */
      @java.lang.Override
      public int getNumShortKeyColumns() {
        return numShortKeyColumns_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @param value The numShortKeyColumns to set.
       * @return This builder for chaining.
       */
      public Builder setNumShortKeyColumns(int value) {

        numShortKeyColumns_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_short_key_fields
       * </pre>
       *
       * <code>optional int32 num_short_key_columns = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumShortKeyColumns() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numShortKeyColumns_ = 0;
        onChanged();
        return this;
      }

      private int numRowsPerRowBlock_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @return Whether the numRowsPerRowBlock field is set.
       */
      @java.lang.Override
      public boolean hasNumRowsPerRowBlock() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @return The numRowsPerRowBlock.
       */
      @java.lang.Override
      public int getNumRowsPerRowBlock() {
        return numRowsPerRowBlock_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @param value The numRowsPerRowBlock to set.
       * @return This builder for chaining.
       */
      public Builder setNumRowsPerRowBlock(int value) {

        numRowsPerRowBlock_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.num_rows_per_data_block
       * </pre>
       *
       * <code>optional int32 num_rows_per_row_block = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumRowsPerRowBlock() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numRowsPerRowBlock_ = 0;
        onChanged();
        return this;
      }

      private int compressKind_ = 0;
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @return Whether the compressKind field is set.
       */
      @java.lang.Override public boolean hasCompressKind() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @return The compressKind.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapCommon.CompressKind getCompressKind() {
        org.apache.doris.proto.OlapCommon.CompressKind result = org.apache.doris.proto.OlapCommon.CompressKind.forNumber(compressKind_);
        return result == null ? org.apache.doris.proto.OlapCommon.CompressKind.COMPRESS_NONE : result;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @param value The compressKind to set.
       * @return This builder for chaining.
       */
      public Builder setCompressKind(org.apache.doris.proto.OlapCommon.CompressKind value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        compressKind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.compress_kind
       * </pre>
       *
       * <code>optional .doris.CompressKind compress_kind = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressKind() {
        bitField0_ = (bitField0_ & ~0x00000010);
        compressKind_ = 0;
        onChanged();
        return this;
      }

      private double bfFpp_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @return Whether the bfFpp field is set.
       */
      @java.lang.Override
      public boolean hasBfFpp() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @return The bfFpp.
       */
      @java.lang.Override
      public double getBfFpp() {
        return bfFpp_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @param value The bfFpp to set.
       * @return This builder for chaining.
       */
      public Builder setBfFpp(double value) {

        bfFpp_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.bf_fpp
       * </pre>
       *
       * <code>optional double bf_fpp = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearBfFpp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        bfFpp_ = 0D;
        onChanged();
        return this;
      }

      private int nextColumnUniqueId_ ;
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @return Whether the nextColumnUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasNextColumnUniqueId() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @return The nextColumnUniqueId.
       */
      @java.lang.Override
      public int getNextColumnUniqueId() {
        return nextColumnUniqueId_;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @param value The nextColumnUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setNextColumnUniqueId(int value) {

        nextColumnUniqueId_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OLAPHeaderMessage.next_column_unique_id
       * </pre>
       *
       * <code>optional uint32 next_column_unique_id = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearNextColumnUniqueId() {
        bitField0_ = (bitField0_ & ~0x00000040);
        nextColumnUniqueId_ = 0;
        onChanged();
        return this;
      }

      private int deleteSignIdx_ = -1;
      /**
       * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
       * @return Whether the deleteSignIdx field is set.
       */
      @java.lang.Override
      public boolean hasDeleteSignIdx() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
       * @return The deleteSignIdx.
       */
      @java.lang.Override
      public int getDeleteSignIdx() {
        return deleteSignIdx_;
      }
      /**
       * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
       * @param value The deleteSignIdx to set.
       * @return This builder for chaining.
       */
      public Builder setDeleteSignIdx(int value) {

        deleteSignIdx_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 delete_sign_idx = 8 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeleteSignIdx() {
        bitField0_ = (bitField0_ & ~0x00000080);
        deleteSignIdx_ = -1;
        onChanged();
        return this;
      }

      private int sequenceColIdx_ = -1;
      /**
       * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
       * @return Whether the sequenceColIdx field is set.
       */
      @java.lang.Override
      public boolean hasSequenceColIdx() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
       * @return The sequenceColIdx.
       */
      @java.lang.Override
      public int getSequenceColIdx() {
        return sequenceColIdx_;
      }
      /**
       * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
       * @param value The sequenceColIdx to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceColIdx(int value) {

        sequenceColIdx_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 sequence_col_idx = 9 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceColIdx() {
        bitField0_ = (bitField0_ & ~0x00000100);
        sequenceColIdx_ = -1;
        onChanged();
        return this;
      }

      private int sortType_ = 0;
      /**
       * <code>optional .doris.SortType sort_type = 10;</code>
       * @return Whether the sortType field is set.
       */
      @java.lang.Override public boolean hasSortType() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional .doris.SortType sort_type = 10;</code>
       * @return The sortType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.SortType getSortType() {
        org.apache.doris.proto.OlapFile.SortType result = org.apache.doris.proto.OlapFile.SortType.forNumber(sortType_);
        return result == null ? org.apache.doris.proto.OlapFile.SortType.LEXICAL : result;
      }
      /**
       * <code>optional .doris.SortType sort_type = 10;</code>
       * @param value The sortType to set.
       * @return This builder for chaining.
       */
      public Builder setSortType(org.apache.doris.proto.OlapFile.SortType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000200;
        sortType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.SortType sort_type = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearSortType() {
        bitField0_ = (bitField0_ & ~0x00000200);
        sortType_ = 0;
        onChanged();
        return this;
      }

      private int sortColNum_ ;
      /**
       * <code>optional int32 sort_col_num = 11;</code>
       * @return Whether the sortColNum field is set.
       */
      @java.lang.Override
      public boolean hasSortColNum() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional int32 sort_col_num = 11;</code>
       * @return The sortColNum.
       */
      @java.lang.Override
      public int getSortColNum() {
        return sortColNum_;
      }
      /**
       * <code>optional int32 sort_col_num = 11;</code>
       * @param value The sortColNum to set.
       * @return This builder for chaining.
       */
      public Builder setSortColNum(int value) {

        sortColNum_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 sort_col_num = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearSortColNum() {
        bitField0_ = (bitField0_ & ~0x00000400);
        sortColNum_ = 0;
        onChanged();
        return this;
      }

      private int compressionType_ = 5;
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
       * @return Whether the compressionType field is set.
       */
      @java.lang.Override public boolean hasCompressionType() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
       * @return The compressionType.
       */
      @java.lang.Override
      public doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType() {
        doris.segment_v2.SegmentV2.CompressionTypePB result = doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(compressionType_);
        return result == null ? doris.segment_v2.SegmentV2.CompressionTypePB.LZ4F : result;
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
       * @param value The compressionType to set.
       * @return This builder for chaining.
       */
      public Builder setCompressionType(doris.segment_v2.SegmentV2.CompressionTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000800;
        compressionType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 12 [default = LZ4F];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressionType() {
        bitField0_ = (bitField0_ & ~0x00000800);
        compressionType_ = 5;
        onChanged();
        return this;
      }

      private int schemaVersion_ ;
      /**
       * <code>optional int32 schema_version = 13;</code>
       * @return Whether the schemaVersion field is set.
       */
      @java.lang.Override
      public boolean hasSchemaVersion() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional int32 schema_version = 13;</code>
       * @return The schemaVersion.
       */
      @java.lang.Override
      public int getSchemaVersion() {
        return schemaVersion_;
      }
      /**
       * <code>optional int32 schema_version = 13;</code>
       * @param value The schemaVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaVersion(int value) {

        schemaVersion_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 schema_version = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaVersion() {
        bitField0_ = (bitField0_ & ~0x00001000);
        schemaVersion_ = 0;
        onChanged();
        return this;
      }

      private boolean disableAutoCompaction_ ;
      /**
       * <code>optional bool disable_auto_compaction = 14 [default = false];</code>
       * @return Whether the disableAutoCompaction field is set.
       */
      @java.lang.Override
      public boolean hasDisableAutoCompaction() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional bool disable_auto_compaction = 14 [default = false];</code>
       * @return The disableAutoCompaction.
       */
      @java.lang.Override
      public boolean getDisableAutoCompaction() {
        return disableAutoCompaction_;
      }
      /**
       * <code>optional bool disable_auto_compaction = 14 [default = false];</code>
       * @param value The disableAutoCompaction to set.
       * @return This builder for chaining.
       */
      public Builder setDisableAutoCompaction(boolean value) {

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

      private java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> index_ =
        java.util.Collections.emptyList();
      private void ensureIndexIsMutable() {
        if (!((bitField0_ & 0x00004000) != 0)) {
          index_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.TabletIndexPB>(index_);
          bitField0_ |= 0x00004000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> indexBuilder_;

      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexList() {
        if (indexBuilder_ == null) {
          return java.util.Collections.unmodifiableList(index_);
        } else {
          return indexBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public int getIndexCount() {
        if (indexBuilder_ == null) {
          return index_.size();
        } else {
          return indexBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB getIndex(int index) {
        if (indexBuilder_ == null) {
          return index_.get(index);
        } else {
          return indexBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder setIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.set(index, value);
          onChanged();
        } else {
          indexBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder setIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.set(index, builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder addIndex(org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.add(value);
          onChanged();
        } else {
          indexBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder addIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexIsMutable();
          index_.add(index, value);
          onChanged();
        } else {
          indexBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder addIndex(
          org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.add(builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder addIndex(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.add(index, builderForValue.build());
          onChanged();
        } else {
          indexBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder addAllIndex(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.TabletIndexPB> values) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, index_);
          onChanged();
        } else {
          indexBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder clearIndex() {
        if (indexBuilder_ == null) {
          index_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00004000);
          onChanged();
        } else {
          indexBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public Builder removeIndex(int index) {
        if (indexBuilder_ == null) {
          ensureIndexIsMutable();
          index_.remove(index);
          onChanged();
        } else {
          indexBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder getIndexBuilder(
          int index) {
        return getIndexFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexOrBuilder(
          int index) {
        if (indexBuilder_ == null) {
          return index_.get(index);  } else {
          return indexBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
           getIndexOrBuilderList() {
        if (indexBuilder_ != null) {
          return indexBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(index_);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder addIndexBuilder() {
        return getIndexFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder addIndexBuilder(
          int index) {
        return getIndexFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.TabletIndexPB index = 15;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB.Builder> 
           getIndexBuilderList() {
        return getIndexFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
          getIndexFieldBuilder() {
        if (indexBuilder_ == null) {
          indexBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder>(
                  index_,
                  ((bitField0_ & 0x00004000) != 0),
                  getParentForChildren(),
                  isClean());
          index_ = null;
        }
        return indexBuilder_;
      }

      private int versionColIdx_ = -1;
      /**
       * <code>optional int32 version_col_idx = 16 [default = -1];</code>
       * @return Whether the versionColIdx field is set.
       */
      @java.lang.Override
      public boolean hasVersionColIdx() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional int32 version_col_idx = 16 [default = -1];</code>
       * @return The versionColIdx.
       */
      @java.lang.Override
      public int getVersionColIdx() {
        return versionColIdx_;
      }
      /**
       * <code>optional int32 version_col_idx = 16 [default = -1];</code>
       * @param value The versionColIdx to set.
       * @return This builder for chaining.
       */
      public Builder setVersionColIdx(int value) {

        versionColIdx_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 version_col_idx = 16 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearVersionColIdx() {
        bitField0_ = (bitField0_ & ~0x00008000);
        versionColIdx_ = -1;
        onChanged();
        return this;
      }

      private boolean storeRowColumn_ ;
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @return Whether the storeRowColumn field is set.
       */
      @java.lang.Override
      public boolean hasStoreRowColumn() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @return The storeRowColumn.
       */
      @java.lang.Override
      public boolean getStoreRowColumn() {
        return storeRowColumn_;
      }
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @param value The storeRowColumn to set.
       * @return This builder for chaining.
       */
      public Builder setStoreRowColumn(boolean value) {

        storeRowColumn_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * store tuplerow oriented column
       * </pre>
       *
       * <code>optional bool store_row_column = 18 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearStoreRowColumn() {
        bitField0_ = (bitField0_ & ~0x00010000);
        storeRowColumn_ = false;
        onChanged();
        return this;
      }

      private boolean enableSingleReplicaCompaction_ ;
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @return Whether the enableSingleReplicaCompaction field is set.
       */
      @java.lang.Override
      public boolean hasEnableSingleReplicaCompaction() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @return The enableSingleReplicaCompaction.
       */
      @java.lang.Override
      public boolean getEnableSingleReplicaCompaction() {
        return enableSingleReplicaCompaction_;
      }
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @param value The enableSingleReplicaCompaction to set.
       * @return This builder for chaining.
       */
      public Builder setEnableSingleReplicaCompaction(boolean value) {

        enableSingleReplicaCompaction_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable_single_replica_compaction = 22 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableSingleReplicaCompaction() {
        bitField0_ = (bitField0_ & ~0x00020000);
        enableSingleReplicaCompaction_ = false;
        onChanged();
        return this;
      }

      private boolean skipWriteIndexOnLoad_ ;
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @return Whether the skipWriteIndexOnLoad field is set.
       */
      @java.lang.Override
      public boolean hasSkipWriteIndexOnLoad() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @return The skipWriteIndexOnLoad.
       */
      @java.lang.Override
      public boolean getSkipWriteIndexOnLoad() {
        return skipWriteIndexOnLoad_;
      }
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @param value The skipWriteIndexOnLoad to set.
       * @return This builder for chaining.
       */
      public Builder setSkipWriteIndexOnLoad(boolean value) {

        skipWriteIndexOnLoad_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool skip_write_index_on_load = 23 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearSkipWriteIndexOnLoad() {
        bitField0_ = (bitField0_ & ~0x00040000);
        skipWriteIndexOnLoad_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList clusterKeyUids_ = emptyIntList();
      private void ensureClusterKeyUidsIsMutable() {
        if (!clusterKeyUids_.isModifiable()) {
          clusterKeyUids_ = makeMutableCopy(clusterKeyUids_);
        }
        bitField0_ |= 0x00080000;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @return A list containing the clusterKeyUids.
       */
      public java.util.List<java.lang.Integer>
          getClusterKeyUidsList() {
        clusterKeyUids_.makeImmutable();
        return clusterKeyUids_;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @return The count of clusterKeyUids.
       */
      public int getClusterKeyUidsCount() {
        return clusterKeyUids_.size();
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param index The index of the element to return.
       * @return The clusterKeyUids at the given index.
       */
      public int getClusterKeyUids(int index) {
        return clusterKeyUids_.getInt(index);
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param index The index to set the value at.
       * @param value The clusterKeyUids to set.
       * @return This builder for chaining.
       */
      public Builder setClusterKeyUids(
          int index, int value) {

        ensureClusterKeyUidsIsMutable();
        clusterKeyUids_.setInt(index, value);
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param value The clusterKeyUids to add.
       * @return This builder for chaining.
       */
      public Builder addClusterKeyUids(int value) {

        ensureClusterKeyUidsIsMutable();
        clusterKeyUids_.addInt(value);
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @param values The clusterKeyUids to add.
       * @return This builder for chaining.
       */
      public Builder addAllClusterKeyUids(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureClusterKeyUidsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, clusterKeyUids_);
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cluster_key_uids = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearClusterKeyUids() {
        clusterKeyUids_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00080000);
        onChanged();
        return this;
      }

      private int invertedIndexStorageFormat_ = 0;
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @return Whether the invertedIndexStorageFormat field is set.
       */
      @java.lang.Override public boolean hasInvertedIndexStorageFormat() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @return The invertedIndexStorageFormat.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB getInvertedIndexStorageFormat() {
        org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB result = org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.forNumber(invertedIndexStorageFormat_);
        return result == null ? org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB.V1 : result;
      }
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @param value The invertedIndexStorageFormat to set.
       * @return This builder for chaining.
       */
      public Builder setInvertedIndexStorageFormat(org.apache.doris.proto.OlapFile.InvertedIndexStorageFormatPB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00100000;
        invertedIndexStorageFormat_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.InvertedIndexStorageFormatPB inverted_index_storage_format = 25 [default = V1];</code>
       * @return This builder for chaining.
       */
      public Builder clearInvertedIndexStorageFormat() {
        bitField0_ = (bitField0_ & ~0x00100000);
        invertedIndexStorageFormat_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList rowStoreColumnUniqueIds_ = emptyIntList();
      private void ensureRowStoreColumnUniqueIdsIsMutable() {
        if (!rowStoreColumnUniqueIds_.isModifiable()) {
          rowStoreColumnUniqueIds_ = makeMutableCopy(rowStoreColumnUniqueIds_);
        }
        bitField0_ |= 0x00200000;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @return A list containing the rowStoreColumnUniqueIds.
       */
      public java.util.List<java.lang.Integer>
          getRowStoreColumnUniqueIdsList() {
        rowStoreColumnUniqueIds_.makeImmutable();
        return rowStoreColumnUniqueIds_;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @return The count of rowStoreColumnUniqueIds.
       */
      public int getRowStoreColumnUniqueIdsCount() {
        return rowStoreColumnUniqueIds_.size();
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param index The index of the element to return.
       * @return The rowStoreColumnUniqueIds at the given index.
       */
      public int getRowStoreColumnUniqueIds(int index) {
        return rowStoreColumnUniqueIds_.getInt(index);
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param index The index to set the value at.
       * @param value The rowStoreColumnUniqueIds to set.
       * @return This builder for chaining.
       */
      public Builder setRowStoreColumnUniqueIds(
          int index, int value) {

        ensureRowStoreColumnUniqueIdsIsMutable();
        rowStoreColumnUniqueIds_.setInt(index, value);
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param value The rowStoreColumnUniqueIds to add.
       * @return This builder for chaining.
       */
      public Builder addRowStoreColumnUniqueIds(int value) {

        ensureRowStoreColumnUniqueIdsIsMutable();
        rowStoreColumnUniqueIds_.addInt(value);
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @param values The rowStoreColumnUniqueIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllRowStoreColumnUniqueIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureRowStoreColumnUniqueIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rowStoreColumnUniqueIds_);
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * column unique ids for row store columns
       * </pre>
       *
       * <code>repeated int32 row_store_column_unique_ids = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowStoreColumnUniqueIds() {
        rowStoreColumnUniqueIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00200000);
        onChanged();
        return this;
      }

      private long rowStorePageSize_ = 16384L;
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @return Whether the rowStorePageSize field is set.
       */
      @java.lang.Override
      public boolean hasRowStorePageSize() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @return The rowStorePageSize.
       */
      @java.lang.Override
      public long getRowStorePageSize() {
        return rowStorePageSize_;
      }
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @param value The rowStorePageSize to set.
       * @return This builder for chaining.
       */
      public Builder setRowStorePageSize(long value) {

        rowStorePageSize_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 row_store_page_size = 27 [default = 16384];</code>
       * @return This builder for chaining.
       */
      public Builder clearRowStorePageSize() {
        bitField0_ = (bitField0_ & ~0x00400000);
        rowStorePageSize_ = 16384L;
        onChanged();
        return this;
      }

      private boolean enableVariantFlattenNested_ ;
      /**
       * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
       * @return Whether the enableVariantFlattenNested field is set.
       */
      @java.lang.Override
      public boolean hasEnableVariantFlattenNested() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
       * @return The enableVariantFlattenNested.
       */
      @java.lang.Override
      public boolean getEnableVariantFlattenNested() {
        return enableVariantFlattenNested_;
      }
      /**
       * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
       * @param value The enableVariantFlattenNested to set.
       * @return This builder for chaining.
       */
      public Builder setEnableVariantFlattenNested(boolean value) {

        enableVariantFlattenNested_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable_variant_flatten_nested = 29 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableVariantFlattenNested() {
        bitField0_ = (bitField0_ & ~0x00800000);
        enableVariantFlattenNested_ = false;
        onChanged();
        return this;
      }

      private int skipBitmapColIdx_ = -1;
      /**
       * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
       * @return Whether the skipBitmapColIdx field is set.
       */
      @java.lang.Override
      public boolean hasSkipBitmapColIdx() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
       * @return The skipBitmapColIdx.
       */
      @java.lang.Override
      public int getSkipBitmapColIdx() {
        return skipBitmapColIdx_;
      }
      /**
       * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
       * @param value The skipBitmapColIdx to set.
       * @return This builder for chaining.
       */
      public Builder setSkipBitmapColIdx(int value) {

        skipBitmapColIdx_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 skip_bitmap_col_idx = 30 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearSkipBitmapColIdx() {
        bitField0_ = (bitField0_ & ~0x01000000);
        skipBitmapColIdx_ = -1;
        onChanged();
        return this;
      }

      private long storagePageSize_ = 65536L;
      /**
       * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
       * @return Whether the storagePageSize field is set.
       */
      @java.lang.Override
      public boolean hasStoragePageSize() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
       * @return The storagePageSize.
       */
      @java.lang.Override
      public long getStoragePageSize() {
        return storagePageSize_;
      }
      /**
       * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
       * @param value The storagePageSize to set.
       * @return This builder for chaining.
       */
      public Builder setStoragePageSize(long value) {

        storagePageSize_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 storage_page_size = 31 [default = 65536];</code>
       * @return This builder for chaining.
       */
      public Builder clearStoragePageSize() {
        bitField0_ = (bitField0_ & ~0x02000000);
        storagePageSize_ = 65536L;
        onChanged();
        return this;
      }

      private boolean isDynamicSchema_ ;
      /**
       * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
       * @return Whether the isDynamicSchema field is set.
       */
      @java.lang.Override
      public boolean hasIsDynamicSchema() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
       * @return The isDynamicSchema.
       */
      @java.lang.Override
      public boolean getIsDynamicSchema() {
        return isDynamicSchema_;
      }
      /**
       * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
       * @param value The isDynamicSchema to set.
       * @return This builder for chaining.
       */
      public Builder setIsDynamicSchema(boolean value) {

        isDynamicSchema_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_dynamic_schema = 100 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsDynamicSchema() {
        bitField0_ = (bitField0_ & ~0x04000000);
        isDynamicSchema_ = false;
        onChanged();
        return this;
      }

      private boolean isInMemory_ ;
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 200 [default = false];</code>
       * @return Whether the isInMemory field is set.
       */
      @java.lang.Override
      public boolean hasIsInMemory() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 200 [default = false];</code>
       * @return The isInMemory.
       */
      @java.lang.Override
      public boolean getIsInMemory() {
        return isInMemory_;
      }
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 200 [default = false];</code>
       * @param value The isInMemory to set.
       * @return This builder for chaining.
       */
      public Builder setIsInMemory(boolean value) {

        isInMemory_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * FIXME(gavin): deprecate and remove in the future
       * </pre>
       *
       * <code>optional bool is_in_memory = 200 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsInMemory() {
        bitField0_ = (bitField0_ & ~0x08000000);
        isInMemory_ = 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.TabletSchemaCloudPB)
    }

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

    public static org.apache.doris.proto.OlapFile.TabletSchemaCloudPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TabletSchemaCloudPB>
        PARSER = new com.google.protobuf.AbstractParser<TabletSchemaCloudPB>() {
      @java.lang.Override
      public TabletSchemaCloudPB 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<TabletSchemaCloudPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional string s3_endpoint = 1;</code>
     * @return Whether the s3Endpoint field is set.
     */
    boolean hasS3Endpoint();
    /**
     * <code>optional string s3_endpoint = 1;</code>
     * @return The s3Endpoint.
     */
    java.lang.String getS3Endpoint();
    /**
     * <code>optional string s3_endpoint = 1;</code>
     * @return The bytes for s3Endpoint.
     */
    com.google.protobuf.ByteString
        getS3EndpointBytes();

    /**
     * <code>optional string s3_region = 2;</code>
     * @return Whether the s3Region field is set.
     */
    boolean hasS3Region();
    /**
     * <code>optional string s3_region = 2;</code>
     * @return The s3Region.
     */
    java.lang.String getS3Region();
    /**
     * <code>optional string s3_region = 2;</code>
     * @return The bytes for s3Region.
     */
    com.google.protobuf.ByteString
        getS3RegionBytes();

    /**
     * <code>optional string s3_ak = 3;</code>
     * @return Whether the s3Ak field is set.
     */
    boolean hasS3Ak();
    /**
     * <code>optional string s3_ak = 3;</code>
     * @return The s3Ak.
     */
    java.lang.String getS3Ak();
    /**
     * <code>optional string s3_ak = 3;</code>
     * @return The bytes for s3Ak.
     */
    com.google.protobuf.ByteString
        getS3AkBytes();

    /**
     * <code>optional string s3_sk = 4;</code>
     * @return Whether the s3Sk field is set.
     */
    boolean hasS3Sk();
    /**
     * <code>optional string s3_sk = 4;</code>
     * @return The s3Sk.
     */
    java.lang.String getS3Sk();
    /**
     * <code>optional string s3_sk = 4;</code>
     * @return The bytes for s3Sk.
     */
    com.google.protobuf.ByteString
        getS3SkBytes();

    /**
     * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
     * @return Whether the s3MaxConn field is set.
     */
    boolean hasS3MaxConn();
    /**
     * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
     * @return The s3MaxConn.
     */
    int getS3MaxConn();

    /**
     * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
     * @return Whether the s3RequestTimeoutMs field is set.
     */
    boolean hasS3RequestTimeoutMs();
    /**
     * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
     * @return The s3RequestTimeoutMs.
     */
    int getS3RequestTimeoutMs();

    /**
     * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
     * @return Whether the s3ConnTimeoutMs field is set.
     */
    boolean hasS3ConnTimeoutMs();
    /**
     * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
     * @return The s3ConnTimeoutMs.
     */
    int getS3ConnTimeoutMs();

    /**
     * <code>optional string root_path = 8;</code>
     * @return Whether the rootPath field is set.
     */
    boolean hasRootPath();
    /**
     * <code>optional string root_path = 8;</code>
     * @return The rootPath.
     */
    java.lang.String getRootPath();
    /**
     * <code>optional string root_path = 8;</code>
     * @return The bytes for rootPath.
     */
    com.google.protobuf.ByteString
        getRootPathBytes();
  }
  /**
   * Protobuf type {@code doris.S3StorageParamPB}
   */
  public static final class S3StorageParamPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.S3StorageParamPB)
      S3StorageParamPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use S3StorageParamPB.newBuilder() to construct.
    private S3StorageParamPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private S3StorageParamPB() {
      s3Endpoint_ = "";
      s3Region_ = "";
      s3Ak_ = "";
      s3Sk_ = "";
      s3MaxConn_ = 50;
      s3RequestTimeoutMs_ = 3000;
      s3ConnTimeoutMs_ = 1000;
      rootPath_ = "";
    }

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

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

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

    private int bitField0_;
    public static final int S3_ENDPOINT_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object s3Endpoint_ = "";
    /**
     * <code>optional string s3_endpoint = 1;</code>
     * @return Whether the s3Endpoint field is set.
     */
    @java.lang.Override
    public boolean hasS3Endpoint() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string s3_endpoint = 1;</code>
     * @return The s3Endpoint.
     */
    @java.lang.Override
    public java.lang.String getS3Endpoint() {
      java.lang.Object ref = s3Endpoint_;
      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()) {
          s3Endpoint_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string s3_endpoint = 1;</code>
     * @return The bytes for s3Endpoint.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getS3EndpointBytes() {
      java.lang.Object ref = s3Endpoint_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        s3Endpoint_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int S3_REGION_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object s3Region_ = "";
    /**
     * <code>optional string s3_region = 2;</code>
     * @return Whether the s3Region field is set.
     */
    @java.lang.Override
    public boolean hasS3Region() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string s3_region = 2;</code>
     * @return The s3Region.
     */
    @java.lang.Override
    public java.lang.String getS3Region() {
      java.lang.Object ref = s3Region_;
      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()) {
          s3Region_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string s3_region = 2;</code>
     * @return The bytes for s3Region.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getS3RegionBytes() {
      java.lang.Object ref = s3Region_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        s3Region_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int S3_AK_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object s3Ak_ = "";
    /**
     * <code>optional string s3_ak = 3;</code>
     * @return Whether the s3Ak field is set.
     */
    @java.lang.Override
    public boolean hasS3Ak() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string s3_ak = 3;</code>
     * @return The s3Ak.
     */
    @java.lang.Override
    public java.lang.String getS3Ak() {
      java.lang.Object ref = s3Ak_;
      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()) {
          s3Ak_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string s3_ak = 3;</code>
     * @return The bytes for s3Ak.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getS3AkBytes() {
      java.lang.Object ref = s3Ak_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        s3Ak_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int S3_SK_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object s3Sk_ = "";
    /**
     * <code>optional string s3_sk = 4;</code>
     * @return Whether the s3Sk field is set.
     */
    @java.lang.Override
    public boolean hasS3Sk() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string s3_sk = 4;</code>
     * @return The s3Sk.
     */
    @java.lang.Override
    public java.lang.String getS3Sk() {
      java.lang.Object ref = s3Sk_;
      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()) {
          s3Sk_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string s3_sk = 4;</code>
     * @return The bytes for s3Sk.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getS3SkBytes() {
      java.lang.Object ref = s3Sk_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        s3Sk_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int S3_MAX_CONN_FIELD_NUMBER = 5;
    private int s3MaxConn_ = 50;
    /**
     * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
     * @return Whether the s3MaxConn field is set.
     */
    @java.lang.Override
    public boolean hasS3MaxConn() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
     * @return The s3MaxConn.
     */
    @java.lang.Override
    public int getS3MaxConn() {
      return s3MaxConn_;
    }

    public static final int S3_REQUEST_TIMEOUT_MS_FIELD_NUMBER = 6;
    private int s3RequestTimeoutMs_ = 3000;
    /**
     * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
     * @return Whether the s3RequestTimeoutMs field is set.
     */
    @java.lang.Override
    public boolean hasS3RequestTimeoutMs() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
     * @return The s3RequestTimeoutMs.
     */
    @java.lang.Override
    public int getS3RequestTimeoutMs() {
      return s3RequestTimeoutMs_;
    }

    public static final int S3_CONN_TIMEOUT_MS_FIELD_NUMBER = 7;
    private int s3ConnTimeoutMs_ = 1000;
    /**
     * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
     * @return Whether the s3ConnTimeoutMs field is set.
     */
    @java.lang.Override
    public boolean hasS3ConnTimeoutMs() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
     * @return The s3ConnTimeoutMs.
     */
    @java.lang.Override
    public int getS3ConnTimeoutMs() {
      return s3ConnTimeoutMs_;
    }

    public static final int ROOT_PATH_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rootPath_ = "";
    /**
     * <code>optional string root_path = 8;</code>
     * @return Whether the rootPath field is set.
     */
    @java.lang.Override
    public boolean hasRootPath() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional string root_path = 8;</code>
     * @return The rootPath.
     */
    @java.lang.Override
    public java.lang.String getRootPath() {
      java.lang.Object ref = rootPath_;
      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()) {
          rootPath_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string root_path = 8;</code>
     * @return The bytes for rootPath.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRootPathBytes() {
      java.lang.Object ref = rootPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rootPath_ = 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;

      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, s3Endpoint_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, s3Region_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, s3Ak_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, s3Sk_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, s3MaxConn_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt32(6, s3RequestTimeoutMs_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(7, s3ConnTimeoutMs_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, rootPath_);
      }
      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, s3Endpoint_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, s3Region_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, s3Ak_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, s3Sk_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, s3MaxConn_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, s3RequestTimeoutMs_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, s3ConnTimeoutMs_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, rootPath_);
      }
      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.OlapFile.S3StorageParamPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.S3StorageParamPB other = (org.apache.doris.proto.OlapFile.S3StorageParamPB) obj;

      if (hasS3Endpoint() != other.hasS3Endpoint()) return false;
      if (hasS3Endpoint()) {
        if (!getS3Endpoint()
            .equals(other.getS3Endpoint())) return false;
      }
      if (hasS3Region() != other.hasS3Region()) return false;
      if (hasS3Region()) {
        if (!getS3Region()
            .equals(other.getS3Region())) return false;
      }
      if (hasS3Ak() != other.hasS3Ak()) return false;
      if (hasS3Ak()) {
        if (!getS3Ak()
            .equals(other.getS3Ak())) return false;
      }
      if (hasS3Sk() != other.hasS3Sk()) return false;
      if (hasS3Sk()) {
        if (!getS3Sk()
            .equals(other.getS3Sk())) return false;
      }
      if (hasS3MaxConn() != other.hasS3MaxConn()) return false;
      if (hasS3MaxConn()) {
        if (getS3MaxConn()
            != other.getS3MaxConn()) return false;
      }
      if (hasS3RequestTimeoutMs() != other.hasS3RequestTimeoutMs()) return false;
      if (hasS3RequestTimeoutMs()) {
        if (getS3RequestTimeoutMs()
            != other.getS3RequestTimeoutMs()) return false;
      }
      if (hasS3ConnTimeoutMs() != other.hasS3ConnTimeoutMs()) return false;
      if (hasS3ConnTimeoutMs()) {
        if (getS3ConnTimeoutMs()
            != other.getS3ConnTimeoutMs()) return false;
      }
      if (hasRootPath() != other.hasRootPath()) return false;
      if (hasRootPath()) {
        if (!getRootPath()
            .equals(other.getRootPath())) 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 (hasS3Endpoint()) {
        hash = (37 * hash) + S3_ENDPOINT_FIELD_NUMBER;
        hash = (53 * hash) + getS3Endpoint().hashCode();
      }
      if (hasS3Region()) {
        hash = (37 * hash) + S3_REGION_FIELD_NUMBER;
        hash = (53 * hash) + getS3Region().hashCode();
      }
      if (hasS3Ak()) {
        hash = (37 * hash) + S3_AK_FIELD_NUMBER;
        hash = (53 * hash) + getS3Ak().hashCode();
      }
      if (hasS3Sk()) {
        hash = (37 * hash) + S3_SK_FIELD_NUMBER;
        hash = (53 * hash) + getS3Sk().hashCode();
      }
      if (hasS3MaxConn()) {
        hash = (37 * hash) + S3_MAX_CONN_FIELD_NUMBER;
        hash = (53 * hash) + getS3MaxConn();
      }
      if (hasS3RequestTimeoutMs()) {
        hash = (37 * hash) + S3_REQUEST_TIMEOUT_MS_FIELD_NUMBER;
        hash = (53 * hash) + getS3RequestTimeoutMs();
      }
      if (hasS3ConnTimeoutMs()) {
        hash = (37 * hash) + S3_CONN_TIMEOUT_MS_FIELD_NUMBER;
        hash = (53 * hash) + getS3ConnTimeoutMs();
      }
      if (hasRootPath()) {
        hash = (37 * hash) + ROOT_PATH_FIELD_NUMBER;
        hash = (53 * hash) + getRootPath().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.S3StorageParamPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.S3StorageParamPB 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.OlapFile.S3StorageParamPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.S3StorageParamPB 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.OlapFile.S3StorageParamPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.S3StorageParamPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.S3StorageParamPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.S3StorageParamPB 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.OlapFile.S3StorageParamPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.S3StorageParamPB 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.OlapFile.S3StorageParamPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.S3StorageParamPB 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.OlapFile.S3StorageParamPB 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.S3StorageParamPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.S3StorageParamPB)
        org.apache.doris.proto.OlapFile.S3StorageParamPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_S3StorageParamPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.S3StorageParamPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        s3Endpoint_ = "";
        s3Region_ = "";
        s3Ak_ = "";
        s3Sk_ = "";
        s3MaxConn_ = 50;
        s3RequestTimeoutMs_ = 3000;
        s3ConnTimeoutMs_ = 1000;
        rootPath_ = "";
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.S3StorageParamPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.s3Endpoint_ = s3Endpoint_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.s3Region_ = s3Region_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.s3Ak_ = s3Ak_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.s3Sk_ = s3Sk_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.s3MaxConn_ = s3MaxConn_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.s3RequestTimeoutMs_ = s3RequestTimeoutMs_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.s3ConnTimeoutMs_ = s3ConnTimeoutMs_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.rootPath_ = rootPath_;
          to_bitField0_ |= 0x00000080;
        }
        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.OlapFile.S3StorageParamPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.S3StorageParamPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.S3StorageParamPB other) {
        if (other == org.apache.doris.proto.OlapFile.S3StorageParamPB.getDefaultInstance()) return this;
        if (other.hasS3Endpoint()) {
          s3Endpoint_ = other.s3Endpoint_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasS3Region()) {
          s3Region_ = other.s3Region_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasS3Ak()) {
          s3Ak_ = other.s3Ak_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasS3Sk()) {
          s3Sk_ = other.s3Sk_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.hasS3MaxConn()) {
          setS3MaxConn(other.getS3MaxConn());
        }
        if (other.hasS3RequestTimeoutMs()) {
          setS3RequestTimeoutMs(other.getS3RequestTimeoutMs());
        }
        if (other.hasS3ConnTimeoutMs()) {
          setS3ConnTimeoutMs(other.getS3ConnTimeoutMs());
        }
        if (other.hasRootPath()) {
          rootPath_ = other.rootPath_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                s3Endpoint_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                s3Region_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                s3Ak_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                s3Sk_ = input.readBytes();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                s3MaxConn_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                s3RequestTimeoutMs_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                s3ConnTimeoutMs_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 66: {
                rootPath_ = input.readBytes();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              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 s3Endpoint_ = "";
      /**
       * <code>optional string s3_endpoint = 1;</code>
       * @return Whether the s3Endpoint field is set.
       */
      public boolean hasS3Endpoint() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string s3_endpoint = 1;</code>
       * @return The s3Endpoint.
       */
      public java.lang.String getS3Endpoint() {
        java.lang.Object ref = s3Endpoint_;
        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()) {
            s3Endpoint_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string s3_endpoint = 1;</code>
       * @return The bytes for s3Endpoint.
       */
      public com.google.protobuf.ByteString
          getS3EndpointBytes() {
        java.lang.Object ref = s3Endpoint_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          s3Endpoint_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string s3_endpoint = 1;</code>
       * @param value The s3Endpoint to set.
       * @return This builder for chaining.
       */
      public Builder setS3Endpoint(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        s3Endpoint_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_endpoint = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearS3Endpoint() {
        s3Endpoint_ = getDefaultInstance().getS3Endpoint();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_endpoint = 1;</code>
       * @param value The bytes for s3Endpoint to set.
       * @return This builder for chaining.
       */
      public Builder setS3EndpointBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        s3Endpoint_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object s3Region_ = "";
      /**
       * <code>optional string s3_region = 2;</code>
       * @return Whether the s3Region field is set.
       */
      public boolean hasS3Region() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string s3_region = 2;</code>
       * @return The s3Region.
       */
      public java.lang.String getS3Region() {
        java.lang.Object ref = s3Region_;
        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()) {
            s3Region_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string s3_region = 2;</code>
       * @return The bytes for s3Region.
       */
      public com.google.protobuf.ByteString
          getS3RegionBytes() {
        java.lang.Object ref = s3Region_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          s3Region_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string s3_region = 2;</code>
       * @param value The s3Region to set.
       * @return This builder for chaining.
       */
      public Builder setS3Region(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        s3Region_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_region = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearS3Region() {
        s3Region_ = getDefaultInstance().getS3Region();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_region = 2;</code>
       * @param value The bytes for s3Region to set.
       * @return This builder for chaining.
       */
      public Builder setS3RegionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        s3Region_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object s3Ak_ = "";
      /**
       * <code>optional string s3_ak = 3;</code>
       * @return Whether the s3Ak field is set.
       */
      public boolean hasS3Ak() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string s3_ak = 3;</code>
       * @return The s3Ak.
       */
      public java.lang.String getS3Ak() {
        java.lang.Object ref = s3Ak_;
        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()) {
            s3Ak_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string s3_ak = 3;</code>
       * @return The bytes for s3Ak.
       */
      public com.google.protobuf.ByteString
          getS3AkBytes() {
        java.lang.Object ref = s3Ak_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          s3Ak_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string s3_ak = 3;</code>
       * @param value The s3Ak to set.
       * @return This builder for chaining.
       */
      public Builder setS3Ak(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        s3Ak_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_ak = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearS3Ak() {
        s3Ak_ = getDefaultInstance().getS3Ak();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_ak = 3;</code>
       * @param value The bytes for s3Ak to set.
       * @return This builder for chaining.
       */
      public Builder setS3AkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        s3Ak_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object s3Sk_ = "";
      /**
       * <code>optional string s3_sk = 4;</code>
       * @return Whether the s3Sk field is set.
       */
      public boolean hasS3Sk() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string s3_sk = 4;</code>
       * @return The s3Sk.
       */
      public java.lang.String getS3Sk() {
        java.lang.Object ref = s3Sk_;
        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()) {
            s3Sk_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string s3_sk = 4;</code>
       * @return The bytes for s3Sk.
       */
      public com.google.protobuf.ByteString
          getS3SkBytes() {
        java.lang.Object ref = s3Sk_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          s3Sk_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string s3_sk = 4;</code>
       * @param value The s3Sk to set.
       * @return This builder for chaining.
       */
      public Builder setS3Sk(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        s3Sk_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_sk = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearS3Sk() {
        s3Sk_ = getDefaultInstance().getS3Sk();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>optional string s3_sk = 4;</code>
       * @param value The bytes for s3Sk to set.
       * @return This builder for chaining.
       */
      public Builder setS3SkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        s3Sk_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private int s3MaxConn_ = 50;
      /**
       * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
       * @return Whether the s3MaxConn field is set.
       */
      @java.lang.Override
      public boolean hasS3MaxConn() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
       * @return The s3MaxConn.
       */
      @java.lang.Override
      public int getS3MaxConn() {
        return s3MaxConn_;
      }
      /**
       * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
       * @param value The s3MaxConn to set.
       * @return This builder for chaining.
       */
      public Builder setS3MaxConn(int value) {

        s3MaxConn_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 s3_max_conn = 5 [default = 50];</code>
       * @return This builder for chaining.
       */
      public Builder clearS3MaxConn() {
        bitField0_ = (bitField0_ & ~0x00000010);
        s3MaxConn_ = 50;
        onChanged();
        return this;
      }

      private int s3RequestTimeoutMs_ = 3000;
      /**
       * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
       * @return Whether the s3RequestTimeoutMs field is set.
       */
      @java.lang.Override
      public boolean hasS3RequestTimeoutMs() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
       * @return The s3RequestTimeoutMs.
       */
      @java.lang.Override
      public int getS3RequestTimeoutMs() {
        return s3RequestTimeoutMs_;
      }
      /**
       * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
       * @param value The s3RequestTimeoutMs to set.
       * @return This builder for chaining.
       */
      public Builder setS3RequestTimeoutMs(int value) {

        s3RequestTimeoutMs_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 s3_request_timeout_ms = 6 [default = 3000];</code>
       * @return This builder for chaining.
       */
      public Builder clearS3RequestTimeoutMs() {
        bitField0_ = (bitField0_ & ~0x00000020);
        s3RequestTimeoutMs_ = 3000;
        onChanged();
        return this;
      }

      private int s3ConnTimeoutMs_ = 1000;
      /**
       * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
       * @return Whether the s3ConnTimeoutMs field is set.
       */
      @java.lang.Override
      public boolean hasS3ConnTimeoutMs() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
       * @return The s3ConnTimeoutMs.
       */
      @java.lang.Override
      public int getS3ConnTimeoutMs() {
        return s3ConnTimeoutMs_;
      }
      /**
       * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
       * @param value The s3ConnTimeoutMs to set.
       * @return This builder for chaining.
       */
      public Builder setS3ConnTimeoutMs(int value) {

        s3ConnTimeoutMs_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 s3_conn_timeout_ms = 7 [default = 1000];</code>
       * @return This builder for chaining.
       */
      public Builder clearS3ConnTimeoutMs() {
        bitField0_ = (bitField0_ & ~0x00000040);
        s3ConnTimeoutMs_ = 1000;
        onChanged();
        return this;
      }

      private java.lang.Object rootPath_ = "";
      /**
       * <code>optional string root_path = 8;</code>
       * @return Whether the rootPath field is set.
       */
      public boolean hasRootPath() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional string root_path = 8;</code>
       * @return The rootPath.
       */
      public java.lang.String getRootPath() {
        java.lang.Object ref = rootPath_;
        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()) {
            rootPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string root_path = 8;</code>
       * @return The bytes for rootPath.
       */
      public com.google.protobuf.ByteString
          getRootPathBytes() {
        java.lang.Object ref = rootPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rootPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string root_path = 8;</code>
       * @param value The rootPath to set.
       * @return This builder for chaining.
       */
      public Builder setRootPath(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rootPath_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional string root_path = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearRootPath() {
        rootPath_ = getDefaultInstance().getRootPath();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>optional string root_path = 8;</code>
       * @param value The bytes for rootPath to set.
       * @return This builder for chaining.
       */
      public Builder setRootPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        rootPath_ = value;
        bitField0_ |= 0x00000080;
        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.S3StorageParamPB)
    }

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

    public static org.apache.doris.proto.OlapFile.S3StorageParamPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<S3StorageParamPB>
        PARSER = new com.google.protobuf.AbstractParser<S3StorageParamPB>() {
      @java.lang.Override
      public S3StorageParamPB 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<S3StorageParamPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional bool enable = 1;</code>
     * @return Whether the enable field is set.
     */
    boolean hasEnable();
    /**
     * <code>optional bool enable = 1;</code>
     * @return The enable.
     */
    boolean getEnable();

    /**
     * <code>optional int64 ttl_seconds = 2;</code>
     * @return Whether the ttlSeconds field is set.
     */
    boolean hasTtlSeconds();
    /**
     * <code>optional int64 ttl_seconds = 2;</code>
     * @return The ttlSeconds.
     */
    long getTtlSeconds();

    /**
     * <code>optional int64 max_bytes = 3;</code>
     * @return Whether the maxBytes field is set.
     */
    boolean hasMaxBytes();
    /**
     * <code>optional int64 max_bytes = 3;</code>
     * @return The maxBytes.
     */
    long getMaxBytes();

    /**
     * <code>optional int64 max_history_nums = 4;</code>
     * @return Whether the maxHistoryNums field is set.
     */
    boolean hasMaxHistoryNums();
    /**
     * <code>optional int64 max_history_nums = 4;</code>
     * @return The maxHistoryNums.
     */
    long getMaxHistoryNums();
  }
  /**
   * Protobuf type {@code doris.BinlogConfigPB}
   */
  public static final class BinlogConfigPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.BinlogConfigPB)
      BinlogConfigPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BinlogConfigPB.newBuilder() to construct.
    private BinlogConfigPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BinlogConfigPB() {
    }

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

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

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

    private int bitField0_;
    public static final int ENABLE_FIELD_NUMBER = 1;
    private boolean enable_ = false;
    /**
     * <code>optional bool enable = 1;</code>
     * @return Whether the enable field is set.
     */
    @java.lang.Override
    public boolean hasEnable() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bool enable = 1;</code>
     * @return The enable.
     */
    @java.lang.Override
    public boolean getEnable() {
      return enable_;
    }

    public static final int TTL_SECONDS_FIELD_NUMBER = 2;
    private long ttlSeconds_ = 0L;
    /**
     * <code>optional int64 ttl_seconds = 2;</code>
     * @return Whether the ttlSeconds field is set.
     */
    @java.lang.Override
    public boolean hasTtlSeconds() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 ttl_seconds = 2;</code>
     * @return The ttlSeconds.
     */
    @java.lang.Override
    public long getTtlSeconds() {
      return ttlSeconds_;
    }

    public static final int MAX_BYTES_FIELD_NUMBER = 3;
    private long maxBytes_ = 0L;
    /**
     * <code>optional int64 max_bytes = 3;</code>
     * @return Whether the maxBytes field is set.
     */
    @java.lang.Override
    public boolean hasMaxBytes() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int64 max_bytes = 3;</code>
     * @return The maxBytes.
     */
    @java.lang.Override
    public long getMaxBytes() {
      return maxBytes_;
    }

    public static final int MAX_HISTORY_NUMS_FIELD_NUMBER = 4;
    private long maxHistoryNums_ = 0L;
    /**
     * <code>optional int64 max_history_nums = 4;</code>
     * @return Whether the maxHistoryNums field is set.
     */
    @java.lang.Override
    public boolean hasMaxHistoryNums() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int64 max_history_nums = 4;</code>
     * @return The maxHistoryNums.
     */
    @java.lang.Override
    public long getMaxHistoryNums() {
      return maxHistoryNums_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 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.writeBool(1, enable_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, ttlSeconds_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, maxBytes_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(4, maxHistoryNums_);
      }
      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
          .computeBoolSize(1, enable_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, ttlSeconds_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, maxBytes_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, maxHistoryNums_);
      }
      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.OlapFile.BinlogConfigPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.BinlogConfigPB other = (org.apache.doris.proto.OlapFile.BinlogConfigPB) obj;

      if (hasEnable() != other.hasEnable()) return false;
      if (hasEnable()) {
        if (getEnable()
            != other.getEnable()) return false;
      }
      if (hasTtlSeconds() != other.hasTtlSeconds()) return false;
      if (hasTtlSeconds()) {
        if (getTtlSeconds()
            != other.getTtlSeconds()) return false;
      }
      if (hasMaxBytes() != other.hasMaxBytes()) return false;
      if (hasMaxBytes()) {
        if (getMaxBytes()
            != other.getMaxBytes()) return false;
      }
      if (hasMaxHistoryNums() != other.hasMaxHistoryNums()) return false;
      if (hasMaxHistoryNums()) {
        if (getMaxHistoryNums()
            != other.getMaxHistoryNums()) 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 (hasEnable()) {
        hash = (37 * hash) + ENABLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnable());
      }
      if (hasTtlSeconds()) {
        hash = (37 * hash) + TTL_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTtlSeconds());
      }
      if (hasMaxBytes()) {
        hash = (37 * hash) + MAX_BYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMaxBytes());
      }
      if (hasMaxHistoryNums()) {
        hash = (37 * hash) + MAX_HISTORY_NUMS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMaxHistoryNums());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.BinlogConfigPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.BinlogConfigPB 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.OlapFile.BinlogConfigPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.BinlogConfigPB 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.OlapFile.BinlogConfigPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.BinlogConfigPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.BinlogConfigPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.BinlogConfigPB 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.OlapFile.BinlogConfigPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.BinlogConfigPB 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.OlapFile.BinlogConfigPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.BinlogConfigPB 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.OlapFile.BinlogConfigPB 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.BinlogConfigPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.BinlogConfigPB)
        org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_BinlogConfigPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.BinlogConfigPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        enable_ = false;
        ttlSeconds_ = 0L;
        maxBytes_ = 0L;
        maxHistoryNums_ = 0L;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.BinlogConfigPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.enable_ = enable_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ttlSeconds_ = ttlSeconds_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.maxBytes_ = maxBytes_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.maxHistoryNums_ = maxHistoryNums_;
          to_bitField0_ |= 0x00000008;
        }
        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.OlapFile.BinlogConfigPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.BinlogConfigPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.BinlogConfigPB other) {
        if (other == org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance()) return this;
        if (other.hasEnable()) {
          setEnable(other.getEnable());
        }
        if (other.hasTtlSeconds()) {
          setTtlSeconds(other.getTtlSeconds());
        }
        if (other.hasMaxBytes()) {
          setMaxBytes(other.getMaxBytes());
        }
        if (other.hasMaxHistoryNums()) {
          setMaxHistoryNums(other.getMaxHistoryNums());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                enable_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                ttlSeconds_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                maxBytes_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                maxHistoryNums_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              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 boolean enable_ ;
      /**
       * <code>optional bool enable = 1;</code>
       * @return Whether the enable field is set.
       */
      @java.lang.Override
      public boolean hasEnable() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional bool enable = 1;</code>
       * @return The enable.
       */
      @java.lang.Override
      public boolean getEnable() {
        return enable_;
      }
      /**
       * <code>optional bool enable = 1;</code>
       * @param value The enable to set.
       * @return This builder for chaining.
       */
      public Builder setEnable(boolean value) {

        enable_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnable() {
        bitField0_ = (bitField0_ & ~0x00000001);
        enable_ = false;
        onChanged();
        return this;
      }

      private long ttlSeconds_ ;
      /**
       * <code>optional int64 ttl_seconds = 2;</code>
       * @return Whether the ttlSeconds field is set.
       */
      @java.lang.Override
      public boolean hasTtlSeconds() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 ttl_seconds = 2;</code>
       * @return The ttlSeconds.
       */
      @java.lang.Override
      public long getTtlSeconds() {
        return ttlSeconds_;
      }
      /**
       * <code>optional int64 ttl_seconds = 2;</code>
       * @param value The ttlSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setTtlSeconds(long value) {

        ttlSeconds_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 ttl_seconds = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTtlSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ttlSeconds_ = 0L;
        onChanged();
        return this;
      }

      private long maxBytes_ ;
      /**
       * <code>optional int64 max_bytes = 3;</code>
       * @return Whether the maxBytes field is set.
       */
      @java.lang.Override
      public boolean hasMaxBytes() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 max_bytes = 3;</code>
       * @return The maxBytes.
       */
      @java.lang.Override
      public long getMaxBytes() {
        return maxBytes_;
      }
      /**
       * <code>optional int64 max_bytes = 3;</code>
       * @param value The maxBytes to set.
       * @return This builder for chaining.
       */
      public Builder setMaxBytes(long value) {

        maxBytes_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 max_bytes = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxBytes() {
        bitField0_ = (bitField0_ & ~0x00000004);
        maxBytes_ = 0L;
        onChanged();
        return this;
      }

      private long maxHistoryNums_ ;
      /**
       * <code>optional int64 max_history_nums = 4;</code>
       * @return Whether the maxHistoryNums field is set.
       */
      @java.lang.Override
      public boolean hasMaxHistoryNums() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int64 max_history_nums = 4;</code>
       * @return The maxHistoryNums.
       */
      @java.lang.Override
      public long getMaxHistoryNums() {
        return maxHistoryNums_;
      }
      /**
       * <code>optional int64 max_history_nums = 4;</code>
       * @param value The maxHistoryNums to set.
       * @return This builder for chaining.
       */
      public Builder setMaxHistoryNums(long value) {

        maxHistoryNums_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 max_history_nums = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxHistoryNums() {
        bitField0_ = (bitField0_ & ~0x00000008);
        maxHistoryNums_ = 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.BinlogConfigPB)
    }

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

    public static org.apache.doris.proto.OlapFile.BinlogConfigPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<BinlogConfigPB>
        PARSER = new com.google.protobuf.AbstractParser<BinlogConfigPB>() {
      @java.lang.Override
      public BinlogConfigPB 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<BinlogConfigPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return Whether the tableId field is set.
     */
    boolean hasTableId();
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return The tableId.
     */
    long getTableId();

    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    boolean hasPartitionId();
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    long getPartitionId();

    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    boolean hasTabletId();
    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    long getTabletId();

    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return Whether the schemaHash field is set.
     */
    boolean hasSchemaHash();
    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return The schemaHash.
     */
    int getSchemaHash();

    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return Whether the shardId field is set.
     */
    boolean hasShardId();
    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return The shardId.
     */
    int getShardId();

    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return Whether the creationTime field is set.
     */
    boolean hasCreationTime();
    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return The creationTime.
     */
    long getCreationTime();

    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return Whether the cumulativeLayerPoint field is set.
     */
    boolean hasCumulativeLayerPoint();
    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return The cumulativeLayerPoint.
     */
    long getCumulativeLayerPoint();

    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return Whether the tabletState field is set.
     */
    boolean hasTabletState();
    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return The tabletState.
     */
    org.apache.doris.proto.OlapFile.TabletStatePB getTabletState();

    /**
     * <code>optional .doris.TabletSchemaPB schema = 9;</code>
     * @return Whether the schema field is set.
     */
    boolean hasSchema();
    /**
     * <code>optional .doris.TabletSchemaPB schema = 9;</code>
     * @return The schema.
     */
    org.apache.doris.proto.OlapFile.TabletSchemaPB getSchema();
    /**
     * <code>optional .doris.TabletSchemaPB schema = 9;</code>
     */
    org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder getSchemaOrBuilder();

    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> 
        getRsMetasList();
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaPB getRsMetas(int index);
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    int getRsMetasCount();
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
        getRsMetasOrBuilderList();
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getRsMetasOrBuilder(
        int index);

    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> 
        getIncRsMetasList();
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaPB getIncRsMetas(int index);
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    int getIncRsMetasCount();
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
        getIncRsMetasOrBuilderList();
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getIncRsMetasOrBuilder(
        int index);

    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return Whether the alterTask field is set.
     */
    boolean hasAlterTask();
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return The alterTask.
     */
    org.apache.doris.proto.OlapFile.AlterTabletPB getAlterTask();
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     */
    org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder getAlterTaskOrBuilder();

    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return Whether the inRestoreMode field is set.
     */
    boolean hasInRestoreMode();
    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return The inRestoreMode.
     */
    boolean getInRestoreMode();

    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return Whether the tabletUid field is set.
     */
    boolean hasTabletUid();
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return The tabletUid.
     */
    org.apache.doris.proto.Types.PUniqueId getTabletUid();
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder();

    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return Whether the endRowsetId field is set.
     */
    boolean hasEndRowsetId();
    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return The endRowsetId.
     */
    long getEndRowsetId();

    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return Whether the preferredRowsetType field is set.
     */
    boolean hasPreferredRowsetType();
    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return The preferredRowsetType.
     */
    org.apache.doris.proto.OlapFile.RowsetTypePB getPreferredRowsetType();

    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return Whether the tabletType field is set.
     */
    boolean hasTabletType();
    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return The tabletType.
     */
    org.apache.doris.proto.OlapFile.TabletTypePB getTabletType();

    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> 
        getStaleRsMetasList();
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaPB getStaleRsMetas(int index);
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    int getStaleRsMetasCount();
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
        getStaleRsMetasOrBuilderList();
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getStaleRsMetasOrBuilder(
        int index);

    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return Whether the replicaId field is set.
     */
    boolean hasReplicaId();
    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return The replicaId.
     */
    long getReplicaId();

    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return Whether the deleteBitmap field is set.
     */
    boolean hasDeleteBitmap();
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return The deleteBitmap.
     */
    org.apache.doris.proto.OlapFile.DeleteBitmapPB getDeleteBitmap();
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     */
    org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder getDeleteBitmapOrBuilder();

    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return Whether the enableUniqueKeyMergeOnWrite field is set.
     */
    boolean hasEnableUniqueKeyMergeOnWrite();
    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return The enableUniqueKeyMergeOnWrite.
     */
    boolean getEnableUniqueKeyMergeOnWrite();

    /**
     * <code>optional int64 storage_policy_id = 25;</code>
     * @return Whether the storagePolicyId field is set.
     */
    boolean hasStoragePolicyId();
    /**
     * <code>optional int64 storage_policy_id = 25;</code>
     * @return The storagePolicyId.
     */
    long getStoragePolicyId();

    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
     * @return Whether the cooldownMetaId field is set.
     */
    boolean hasCooldownMetaId();
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
     * @return The cooldownMetaId.
     */
    org.apache.doris.proto.Types.PUniqueId getCooldownMetaId();
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getCooldownMetaIdOrBuilder();

    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
     * @return Whether the binlogConfig field is set.
     */
    boolean hasBinlogConfig();
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
     * @return The binlogConfig.
     */
    org.apache.doris.proto.OlapFile.BinlogConfigPB getBinlogConfig();
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
     */
    org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder getBinlogConfigOrBuilder();

    /**
     * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
     * @return Whether the compactionPolicy field is set.
     */
    boolean hasCompactionPolicy();
    /**
     * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
     * @return The compactionPolicy.
     */
    java.lang.String getCompactionPolicy();
    /**
     * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
     * @return The bytes for compactionPolicy.
     */
    com.google.protobuf.ByteString
        getCompactionPolicyBytes();

    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
     * @return Whether the timeSeriesCompactionGoalSizeMbytes field is set.
     */
    boolean hasTimeSeriesCompactionGoalSizeMbytes();
    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
     * @return The timeSeriesCompactionGoalSizeMbytes.
     */
    long getTimeSeriesCompactionGoalSizeMbytes();

    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
     * @return Whether the timeSeriesCompactionFileCountThreshold field is set.
     */
    boolean hasTimeSeriesCompactionFileCountThreshold();
    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
     * @return The timeSeriesCompactionFileCountThreshold.
     */
    long getTimeSeriesCompactionFileCountThreshold();

    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
     * @return Whether the timeSeriesCompactionTimeThresholdSeconds field is set.
     */
    boolean hasTimeSeriesCompactionTimeThresholdSeconds();
    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
     * @return The timeSeriesCompactionTimeThresholdSeconds.
     */
    long getTimeSeriesCompactionTimeThresholdSeconds();

    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
     * @return Whether the timeSeriesCompactionEmptyRowsetsThreshold field is set.
     */
    boolean hasTimeSeriesCompactionEmptyRowsetsThreshold();
    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
     * @return The timeSeriesCompactionEmptyRowsetsThreshold.
     */
    long getTimeSeriesCompactionEmptyRowsetsThreshold();

    /**
     * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
     * @return Whether the timeSeriesCompactionLevelThreshold field is set.
     */
    boolean hasTimeSeriesCompactionLevelThreshold();
    /**
     * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
     * @return The timeSeriesCompactionLevelThreshold.
     */
    long getTimeSeriesCompactionLevelThreshold();

    /**
     * <pre>
     * For cloud
     * </pre>
     *
     * <code>optional int64 index_id = 1000;</code>
     * @return Whether the indexId field is set.
     */
    boolean hasIndexId();
    /**
     * <pre>
     * For cloud
     * </pre>
     *
     * <code>optional int64 index_id = 1000;</code>
     * @return The indexId.
     */
    long getIndexId();

    /**
     * <code>optional bool is_in_memory = 1001;</code>
     * @return Whether the isInMemory field is set.
     */
    boolean hasIsInMemory();
    /**
     * <code>optional bool is_in_memory = 1001;</code>
     * @return The isInMemory.
     */
    boolean getIsInMemory();

    /**
     * <code>optional bool is_persistent = 1002;</code>
     * @return Whether the isPersistent field is set.
     */
    boolean hasIsPersistent();
    /**
     * <code>optional bool is_persistent = 1002;</code>
     * @return The isPersistent.
     */
    boolean getIsPersistent();

    /**
     * <code>optional string table_name = 1003;</code>
     * @return Whether the tableName field is set.
     */
    boolean hasTableName();
    /**
     * <code>optional string table_name = 1003;</code>
     * @return The tableName.
     */
    java.lang.String getTableName();
    /**
     * <code>optional string table_name = 1003;</code>
     * @return The bytes for tableName.
     */
    com.google.protobuf.ByteString
        getTableNameBytes();

    /**
     * <code>optional int64 ttl_seconds = 1004;</code>
     * @return Whether the ttlSeconds field is set.
     */
    boolean hasTtlSeconds();
    /**
     * <code>optional int64 ttl_seconds = 1004;</code>
     * @return The ttlSeconds.
     */
    long getTtlSeconds();

    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 1005;</code>
     * @return Whether the schemaVersion field is set.
     */
    boolean hasSchemaVersion();
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 1005;</code>
     * @return The schemaVersion.
     */
    int getSchemaVersion();
  }
  /**
   * <pre>
   * ATTN: When adding or deleting fields, please update `message TabletMetaCloudPB`
   * simultaneously and modify the conversion function in the be/src/cloud/pb_convert.{h,cpp}.
   * </pre>
   *
   * Protobuf type {@code doris.TabletMetaPB}
   */
  public static final class TabletMetaPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.TabletMetaPB)
      TabletMetaPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TabletMetaPB.newBuilder() to construct.
    private TabletMetaPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TabletMetaPB() {
      tabletState_ = 0;
      rsMetas_ = java.util.Collections.emptyList();
      incRsMetas_ = java.util.Collections.emptyList();
      preferredRowsetType_ = 0;
      tabletType_ = 0;
      staleRsMetas_ = java.util.Collections.emptyList();
      compactionPolicy_ = "size_based";
      timeSeriesCompactionGoalSizeMbytes_ = 1024L;
      timeSeriesCompactionFileCountThreshold_ = 2000L;
      timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
      timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
      timeSeriesCompactionLevelThreshold_ = 1L;
      tableName_ = "";
    }

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

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

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

    private int bitField0_;
    private int bitField1_;
    public static final int TABLE_ID_FIELD_NUMBER = 1;
    private long tableId_ = 0L;
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return Whether the tableId field is set.
     */
    @java.lang.Override
    public boolean hasTableId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return The tableId.
     */
    @java.lang.Override
    public long getTableId() {
      return tableId_;
    }

    public static final int PARTITION_ID_FIELD_NUMBER = 2;
    private long partitionId_ = 0L;
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    @java.lang.Override
    public boolean hasPartitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    @java.lang.Override
    public long getPartitionId() {
      return partitionId_;
    }

    public static final int TABLET_ID_FIELD_NUMBER = 3;
    private long tabletId_ = 0L;
    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    @java.lang.Override
    public boolean hasTabletId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    @java.lang.Override
    public long getTabletId() {
      return tabletId_;
    }

    public static final int SCHEMA_HASH_FIELD_NUMBER = 4;
    private int schemaHash_ = 0;
    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return Whether the schemaHash field is set.
     */
    @java.lang.Override
    public boolean hasSchemaHash() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return The schemaHash.
     */
    @java.lang.Override
    public int getSchemaHash() {
      return schemaHash_;
    }

    public static final int SHARD_ID_FIELD_NUMBER = 5;
    private int shardId_ = 0;
    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return Whether the shardId field is set.
     */
    @java.lang.Override
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return The shardId.
     */
    @java.lang.Override
    public int getShardId() {
      return shardId_;
    }

    public static final int CREATION_TIME_FIELD_NUMBER = 6;
    private long creationTime_ = 0L;
    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return Whether the creationTime field is set.
     */
    @java.lang.Override
    public boolean hasCreationTime() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return The creationTime.
     */
    @java.lang.Override
    public long getCreationTime() {
      return creationTime_;
    }

    public static final int CUMULATIVE_LAYER_POINT_FIELD_NUMBER = 7;
    private long cumulativeLayerPoint_ = 0L;
    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return Whether the cumulativeLayerPoint field is set.
     */
    @java.lang.Override
    public boolean hasCumulativeLayerPoint() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return The cumulativeLayerPoint.
     */
    @java.lang.Override
    public long getCumulativeLayerPoint() {
      return cumulativeLayerPoint_;
    }

    public static final int TABLET_STATE_FIELD_NUMBER = 8;
    private int tabletState_ = 0;
    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return Whether the tabletState field is set.
     */
    @java.lang.Override public boolean hasTabletState() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return The tabletState.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.TabletStatePB getTabletState() {
      org.apache.doris.proto.OlapFile.TabletStatePB result = org.apache.doris.proto.OlapFile.TabletStatePB.forNumber(tabletState_);
      return result == null ? org.apache.doris.proto.OlapFile.TabletStatePB.PB_NOTREADY : result;
    }

    public static final int SCHEMA_FIELD_NUMBER = 9;
    private org.apache.doris.proto.OlapFile.TabletSchemaPB schema_;
    /**
     * <code>optional .doris.TabletSchemaPB schema = 9;</code>
     * @return Whether the schema field is set.
     */
    @java.lang.Override
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .doris.TabletSchemaPB schema = 9;</code>
     * @return The schema.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaPB getSchema() {
      return schema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : schema_;
    }
    /**
     * <code>optional .doris.TabletSchemaPB schema = 9;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder getSchemaOrBuilder() {
      return schema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : schema_;
    }

    public static final int RS_METAS_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> rsMetas_;
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> getRsMetasList() {
      return rsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
        getRsMetasOrBuilderList() {
      return rsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public int getRsMetasCount() {
      return rsMetas_.size();
    }
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaPB getRsMetas(int index) {
      return rsMetas_.get(index);
    }
    /**
     * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getRsMetasOrBuilder(
        int index) {
      return rsMetas_.get(index);
    }

    public static final int INC_RS_METAS_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> incRsMetas_;
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> getIncRsMetasList() {
      return incRsMetas_;
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
        getIncRsMetasOrBuilderList() {
      return incRsMetas_;
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public int getIncRsMetasCount() {
      return incRsMetas_.size();
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaPB getIncRsMetas(int index) {
      return incRsMetas_.get(index);
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getIncRsMetasOrBuilder(
        int index) {
      return incRsMetas_.get(index);
    }

    public static final int ALTER_TASK_FIELD_NUMBER = 12;
    private org.apache.doris.proto.OlapFile.AlterTabletPB alterTask_;
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return Whether the alterTask field is set.
     */
    @java.lang.Override
    public boolean hasAlterTask() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return The alterTask.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.AlterTabletPB getAlterTask() {
      return alterTask_ == null ? org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
    }
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder getAlterTaskOrBuilder() {
      return alterTask_ == null ? org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
    }

    public static final int IN_RESTORE_MODE_FIELD_NUMBER = 13;
    private boolean inRestoreMode_ = false;
    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return Whether the inRestoreMode field is set.
     */
    @java.lang.Override
    public boolean hasInRestoreMode() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return The inRestoreMode.
     */
    @java.lang.Override
    public boolean getInRestoreMode() {
      return inRestoreMode_;
    }

    public static final int TABLET_UID_FIELD_NUMBER = 14;
    private org.apache.doris.proto.Types.PUniqueId tabletUid_;
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return Whether the tabletUid field is set.
     */
    @java.lang.Override
    public boolean hasTabletUid() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return The tabletUid.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }

    public static final int END_ROWSET_ID_FIELD_NUMBER = 15;
    private long endRowsetId_ = 0L;
    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return Whether the endRowsetId field is set.
     */
    @java.lang.Override
    public boolean hasEndRowsetId() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return The endRowsetId.
     */
    @java.lang.Override
    public long getEndRowsetId() {
      return endRowsetId_;
    }

    public static final int PREFERRED_ROWSET_TYPE_FIELD_NUMBER = 16;
    private int preferredRowsetType_ = 0;
    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return Whether the preferredRowsetType field is set.
     */
    @java.lang.Override public boolean hasPreferredRowsetType() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return The preferredRowsetType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.RowsetTypePB getPreferredRowsetType() {
      org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(preferredRowsetType_);
      return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
    }

    public static final int TABLET_TYPE_FIELD_NUMBER = 17;
    private int tabletType_ = 0;
    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return Whether the tabletType field is set.
     */
    @java.lang.Override public boolean hasTabletType() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return The tabletType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.TabletTypePB getTabletType() {
      org.apache.doris.proto.OlapFile.TabletTypePB result = org.apache.doris.proto.OlapFile.TabletTypePB.forNumber(tabletType_);
      return result == null ? org.apache.doris.proto.OlapFile.TabletTypePB.TABLET_TYPE_DISK : result;
    }

    public static final int STALE_RS_METAS_FIELD_NUMBER = 18;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> staleRsMetas_;
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> getStaleRsMetasList() {
      return staleRsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
        getStaleRsMetasOrBuilderList() {
      return staleRsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public int getStaleRsMetasCount() {
      return staleRsMetas_.size();
    }
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaPB getStaleRsMetas(int index) {
      return staleRsMetas_.get(index);
    }
    /**
     * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getStaleRsMetasOrBuilder(
        int index) {
      return staleRsMetas_.get(index);
    }

    public static final int REPLICA_ID_FIELD_NUMBER = 21;
    private long replicaId_ = 0L;
    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return Whether the replicaId field is set.
     */
    @java.lang.Override
    public boolean hasReplicaId() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return The replicaId.
     */
    @java.lang.Override
    public long getReplicaId() {
      return replicaId_;
    }

    public static final int DELETE_BITMAP_FIELD_NUMBER = 23;
    private org.apache.doris.proto.OlapFile.DeleteBitmapPB deleteBitmap_;
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return Whether the deleteBitmap field is set.
     */
    @java.lang.Override
    public boolean hasDeleteBitmap() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return The deleteBitmap.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeleteBitmapPB getDeleteBitmap() {
      return deleteBitmap_ == null ? org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
    }
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder getDeleteBitmapOrBuilder() {
      return deleteBitmap_ == null ? org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
    }

    public static final int ENABLE_UNIQUE_KEY_MERGE_ON_WRITE_FIELD_NUMBER = 24;
    private boolean enableUniqueKeyMergeOnWrite_ = false;
    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return Whether the enableUniqueKeyMergeOnWrite field is set.
     */
    @java.lang.Override
    public boolean hasEnableUniqueKeyMergeOnWrite() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return The enableUniqueKeyMergeOnWrite.
     */
    @java.lang.Override
    public boolean getEnableUniqueKeyMergeOnWrite() {
      return enableUniqueKeyMergeOnWrite_;
    }

    public static final int STORAGE_POLICY_ID_FIELD_NUMBER = 25;
    private long storagePolicyId_ = 0L;
    /**
     * <code>optional int64 storage_policy_id = 25;</code>
     * @return Whether the storagePolicyId field is set.
     */
    @java.lang.Override
    public boolean hasStoragePolicyId() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional int64 storage_policy_id = 25;</code>
     * @return The storagePolicyId.
     */
    @java.lang.Override
    public long getStoragePolicyId() {
      return storagePolicyId_;
    }

    public static final int COOLDOWN_META_ID_FIELD_NUMBER = 26;
    private org.apache.doris.proto.Types.PUniqueId cooldownMetaId_;
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
     * @return Whether the cooldownMetaId field is set.
     */
    @java.lang.Override
    public boolean hasCooldownMetaId() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
     * @return The cooldownMetaId.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getCooldownMetaId() {
      return cooldownMetaId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
    }
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getCooldownMetaIdOrBuilder() {
      return cooldownMetaId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
    }

    public static final int BINLOG_CONFIG_FIELD_NUMBER = 27;
    private org.apache.doris.proto.OlapFile.BinlogConfigPB binlogConfig_;
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
     * @return Whether the binlogConfig field is set.
     */
    @java.lang.Override
    public boolean hasBinlogConfig() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
     * @return The binlogConfig.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.BinlogConfigPB getBinlogConfig() {
      return binlogConfig_ == null ? org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
    }
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder getBinlogConfigOrBuilder() {
      return binlogConfig_ == null ? org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
    }

    public static final int COMPACTION_POLICY_FIELD_NUMBER = 28;
    @SuppressWarnings("serial")
    private volatile java.lang.Object compactionPolicy_ = "size_based";
    /**
     * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
     * @return Whether the compactionPolicy field is set.
     */
    @java.lang.Override
    public boolean hasCompactionPolicy() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
     * @return The compactionPolicy.
     */
    @java.lang.Override
    public java.lang.String getCompactionPolicy() {
      java.lang.Object ref = compactionPolicy_;
      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()) {
          compactionPolicy_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
     * @return The bytes for compactionPolicy.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCompactionPolicyBytes() {
      java.lang.Object ref = compactionPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        compactionPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES_FIELD_NUMBER = 29;
    private long timeSeriesCompactionGoalSizeMbytes_ = 1024L;
    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
     * @return Whether the timeSeriesCompactionGoalSizeMbytes field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionGoalSizeMbytes() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
     * @return The timeSeriesCompactionGoalSizeMbytes.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionGoalSizeMbytes() {
      return timeSeriesCompactionGoalSizeMbytes_;
    }

    public static final int TIME_SERIES_COMPACTION_FILE_COUNT_THRESHOLD_FIELD_NUMBER = 30;
    private long timeSeriesCompactionFileCountThreshold_ = 2000L;
    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
     * @return Whether the timeSeriesCompactionFileCountThreshold field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionFileCountThreshold() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
     * @return The timeSeriesCompactionFileCountThreshold.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionFileCountThreshold() {
      return timeSeriesCompactionFileCountThreshold_;
    }

    public static final int TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS_FIELD_NUMBER = 31;
    private long timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
     * @return Whether the timeSeriesCompactionTimeThresholdSeconds field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionTimeThresholdSeconds() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
     * @return The timeSeriesCompactionTimeThresholdSeconds.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionTimeThresholdSeconds() {
      return timeSeriesCompactionTimeThresholdSeconds_;
    }

    public static final int TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_FIELD_NUMBER = 32;
    private long timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
     * @return Whether the timeSeriesCompactionEmptyRowsetsThreshold field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionEmptyRowsetsThreshold() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
     * @return The timeSeriesCompactionEmptyRowsetsThreshold.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionEmptyRowsetsThreshold() {
      return timeSeriesCompactionEmptyRowsetsThreshold_;
    }

    public static final int TIME_SERIES_COMPACTION_LEVEL_THRESHOLD_FIELD_NUMBER = 33;
    private long timeSeriesCompactionLevelThreshold_ = 1L;
    /**
     * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
     * @return Whether the timeSeriesCompactionLevelThreshold field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionLevelThreshold() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
     * @return The timeSeriesCompactionLevelThreshold.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionLevelThreshold() {
      return timeSeriesCompactionLevelThreshold_;
    }

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

    public static final int IS_IN_MEMORY_FIELD_NUMBER = 1001;
    private boolean isInMemory_ = false;
    /**
     * <code>optional bool is_in_memory = 1001;</code>
     * @return Whether the isInMemory field is set.
     */
    @java.lang.Override
    public boolean hasIsInMemory() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <code>optional bool is_in_memory = 1001;</code>
     * @return The isInMemory.
     */
    @java.lang.Override
    public boolean getIsInMemory() {
      return isInMemory_;
    }

    public static final int IS_PERSISTENT_FIELD_NUMBER = 1002;
    private boolean isPersistent_ = false;
    /**
     * <code>optional bool is_persistent = 1002;</code>
     * @return Whether the isPersistent field is set.
     */
    @java.lang.Override
    public boolean hasIsPersistent() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <code>optional bool is_persistent = 1002;</code>
     * @return The isPersistent.
     */
    @java.lang.Override
    public boolean getIsPersistent() {
      return isPersistent_;
    }

    public static final int TABLE_NAME_FIELD_NUMBER = 1003;
    @SuppressWarnings("serial")
    private volatile java.lang.Object tableName_ = "";
    /**
     * <code>optional string table_name = 1003;</code>
     * @return Whether the tableName field is set.
     */
    @java.lang.Override
    public boolean hasTableName() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <code>optional string table_name = 1003;</code>
     * @return The tableName.
     */
    @java.lang.Override
    public java.lang.String getTableName() {
      java.lang.Object ref = tableName_;
      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()) {
          tableName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string table_name = 1003;</code>
     * @return The bytes for tableName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTableNameBytes() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tableName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TTL_SECONDS_FIELD_NUMBER = 1004;
    private long ttlSeconds_ = 0L;
    /**
     * <code>optional int64 ttl_seconds = 1004;</code>
     * @return Whether the ttlSeconds field is set.
     */
    @java.lang.Override
    public boolean hasTtlSeconds() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <code>optional int64 ttl_seconds = 1004;</code>
     * @return The ttlSeconds.
     */
    @java.lang.Override
    public long getTtlSeconds() {
      return ttlSeconds_;
    }

    public static final int SCHEMA_VERSION_FIELD_NUMBER = 1005;
    private int schemaVersion_ = 0;
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 1005;</code>
     * @return Whether the schemaVersion field is set.
     */
    @java.lang.Override
    public boolean hasSchemaVersion() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 1005;</code>
     * @return The schemaVersion.
     */
    @java.lang.Override
    public int getSchemaVersion() {
      return schemaVersion_;
    }

    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 (hasSchema()) {
        if (!getSchema().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getRsMetasCount(); i++) {
        if (!getRsMetas(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getIncRsMetasCount(); i++) {
        if (!getIncRsMetas(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAlterTask()) {
        if (!getAlterTask().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTabletUid()) {
        if (!getTabletUid().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getStaleRsMetasCount(); i++) {
        if (!getStaleRsMetas(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasCooldownMetaId()) {
        if (!getCooldownMetaId().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.writeInt64(1, tableId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, schemaHash_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, shardId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt64(6, creationTime_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt64(7, cumulativeLayerPoint_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeEnum(8, tabletState_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeMessage(9, getSchema());
      }
      for (int i = 0; i < rsMetas_.size(); i++) {
        output.writeMessage(10, rsMetas_.get(i));
      }
      for (int i = 0; i < incRsMetas_.size(); i++) {
        output.writeMessage(11, incRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeMessage(12, getAlterTask());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeBool(13, inRestoreMode_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeMessage(14, getTabletUid());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt64(15, endRowsetId_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeEnum(16, preferredRowsetType_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeEnum(17, tabletType_);
      }
      for (int i = 0; i < staleRsMetas_.size(); i++) {
        output.writeMessage(18, staleRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeInt64(21, replicaId_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeMessage(23, getDeleteBitmap());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeBool(24, enableUniqueKeyMergeOnWrite_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeInt64(25, storagePolicyId_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeMessage(26, getCooldownMetaId());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeMessage(27, getBinlogConfig());
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 28, compactionPolicy_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeInt64(29, timeSeriesCompactionGoalSizeMbytes_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeInt64(30, timeSeriesCompactionFileCountThreshold_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        output.writeInt64(31, timeSeriesCompactionTimeThresholdSeconds_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        output.writeInt64(32, timeSeriesCompactionEmptyRowsetsThreshold_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        output.writeInt64(33, timeSeriesCompactionLevelThreshold_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        output.writeInt64(1000, indexId_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        output.writeBool(1001, isInMemory_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        output.writeBool(1002, isPersistent_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1003, tableName_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        output.writeInt64(1004, ttlSeconds_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        output.writeInt32(1005, schemaVersion_);
      }
      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, tableId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, schemaHash_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, shardId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, creationTime_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, cumulativeLayerPoint_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(8, tabletState_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getSchema());
      }
      for (int i = 0; i < rsMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, rsMetas_.get(i));
      }
      for (int i = 0; i < incRsMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, incRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getAlterTask());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, inRestoreMode_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getTabletUid());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(15, endRowsetId_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(16, preferredRowsetType_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(17, tabletType_);
      }
      for (int i = 0; i < staleRsMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, staleRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(21, replicaId_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, getDeleteBitmap());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(24, enableUniqueKeyMergeOnWrite_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(25, storagePolicyId_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(26, getCooldownMetaId());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, getBinlogConfig());
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(28, compactionPolicy_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(29, timeSeriesCompactionGoalSizeMbytes_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(30, timeSeriesCompactionFileCountThreshold_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(31, timeSeriesCompactionTimeThresholdSeconds_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(32, timeSeriesCompactionEmptyRowsetsThreshold_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(33, timeSeriesCompactionLevelThreshold_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1000, indexId_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1001, isInMemory_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1002, isPersistent_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1003, tableName_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1004, ttlSeconds_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1005, schemaVersion_);
      }
      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.OlapFile.TabletMetaPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.TabletMetaPB other = (org.apache.doris.proto.OlapFile.TabletMetaPB) obj;

      if (hasTableId() != other.hasTableId()) return false;
      if (hasTableId()) {
        if (getTableId()
            != other.getTableId()) return false;
      }
      if (hasPartitionId() != other.hasPartitionId()) return false;
      if (hasPartitionId()) {
        if (getPartitionId()
            != other.getPartitionId()) return false;
      }
      if (hasTabletId() != other.hasTabletId()) return false;
      if (hasTabletId()) {
        if (getTabletId()
            != other.getTabletId()) return false;
      }
      if (hasSchemaHash() != other.hasSchemaHash()) return false;
      if (hasSchemaHash()) {
        if (getSchemaHash()
            != other.getSchemaHash()) return false;
      }
      if (hasShardId() != other.hasShardId()) return false;
      if (hasShardId()) {
        if (getShardId()
            != other.getShardId()) return false;
      }
      if (hasCreationTime() != other.hasCreationTime()) return false;
      if (hasCreationTime()) {
        if (getCreationTime()
            != other.getCreationTime()) return false;
      }
      if (hasCumulativeLayerPoint() != other.hasCumulativeLayerPoint()) return false;
      if (hasCumulativeLayerPoint()) {
        if (getCumulativeLayerPoint()
            != other.getCumulativeLayerPoint()) return false;
      }
      if (hasTabletState() != other.hasTabletState()) return false;
      if (hasTabletState()) {
        if (tabletState_ != other.tabletState_) return false;
      }
      if (hasSchema() != other.hasSchema()) return false;
      if (hasSchema()) {
        if (!getSchema()
            .equals(other.getSchema())) return false;
      }
      if (!getRsMetasList()
          .equals(other.getRsMetasList())) return false;
      if (!getIncRsMetasList()
          .equals(other.getIncRsMetasList())) return false;
      if (hasAlterTask() != other.hasAlterTask()) return false;
      if (hasAlterTask()) {
        if (!getAlterTask()
            .equals(other.getAlterTask())) return false;
      }
      if (hasInRestoreMode() != other.hasInRestoreMode()) return false;
      if (hasInRestoreMode()) {
        if (getInRestoreMode()
            != other.getInRestoreMode()) return false;
      }
      if (hasTabletUid() != other.hasTabletUid()) return false;
      if (hasTabletUid()) {
        if (!getTabletUid()
            .equals(other.getTabletUid())) return false;
      }
      if (hasEndRowsetId() != other.hasEndRowsetId()) return false;
      if (hasEndRowsetId()) {
        if (getEndRowsetId()
            != other.getEndRowsetId()) return false;
      }
      if (hasPreferredRowsetType() != other.hasPreferredRowsetType()) return false;
      if (hasPreferredRowsetType()) {
        if (preferredRowsetType_ != other.preferredRowsetType_) return false;
      }
      if (hasTabletType() != other.hasTabletType()) return false;
      if (hasTabletType()) {
        if (tabletType_ != other.tabletType_) return false;
      }
      if (!getStaleRsMetasList()
          .equals(other.getStaleRsMetasList())) return false;
      if (hasReplicaId() != other.hasReplicaId()) return false;
      if (hasReplicaId()) {
        if (getReplicaId()
            != other.getReplicaId()) return false;
      }
      if (hasDeleteBitmap() != other.hasDeleteBitmap()) return false;
      if (hasDeleteBitmap()) {
        if (!getDeleteBitmap()
            .equals(other.getDeleteBitmap())) return false;
      }
      if (hasEnableUniqueKeyMergeOnWrite() != other.hasEnableUniqueKeyMergeOnWrite()) return false;
      if (hasEnableUniqueKeyMergeOnWrite()) {
        if (getEnableUniqueKeyMergeOnWrite()
            != other.getEnableUniqueKeyMergeOnWrite()) return false;
      }
      if (hasStoragePolicyId() != other.hasStoragePolicyId()) return false;
      if (hasStoragePolicyId()) {
        if (getStoragePolicyId()
            != other.getStoragePolicyId()) return false;
      }
      if (hasCooldownMetaId() != other.hasCooldownMetaId()) return false;
      if (hasCooldownMetaId()) {
        if (!getCooldownMetaId()
            .equals(other.getCooldownMetaId())) return false;
      }
      if (hasBinlogConfig() != other.hasBinlogConfig()) return false;
      if (hasBinlogConfig()) {
        if (!getBinlogConfig()
            .equals(other.getBinlogConfig())) return false;
      }
      if (hasCompactionPolicy() != other.hasCompactionPolicy()) return false;
      if (hasCompactionPolicy()) {
        if (!getCompactionPolicy()
            .equals(other.getCompactionPolicy())) return false;
      }
      if (hasTimeSeriesCompactionGoalSizeMbytes() != other.hasTimeSeriesCompactionGoalSizeMbytes()) return false;
      if (hasTimeSeriesCompactionGoalSizeMbytes()) {
        if (getTimeSeriesCompactionGoalSizeMbytes()
            != other.getTimeSeriesCompactionGoalSizeMbytes()) return false;
      }
      if (hasTimeSeriesCompactionFileCountThreshold() != other.hasTimeSeriesCompactionFileCountThreshold()) return false;
      if (hasTimeSeriesCompactionFileCountThreshold()) {
        if (getTimeSeriesCompactionFileCountThreshold()
            != other.getTimeSeriesCompactionFileCountThreshold()) return false;
      }
      if (hasTimeSeriesCompactionTimeThresholdSeconds() != other.hasTimeSeriesCompactionTimeThresholdSeconds()) return false;
      if (hasTimeSeriesCompactionTimeThresholdSeconds()) {
        if (getTimeSeriesCompactionTimeThresholdSeconds()
            != other.getTimeSeriesCompactionTimeThresholdSeconds()) return false;
      }
      if (hasTimeSeriesCompactionEmptyRowsetsThreshold() != other.hasTimeSeriesCompactionEmptyRowsetsThreshold()) return false;
      if (hasTimeSeriesCompactionEmptyRowsetsThreshold()) {
        if (getTimeSeriesCompactionEmptyRowsetsThreshold()
            != other.getTimeSeriesCompactionEmptyRowsetsThreshold()) return false;
      }
      if (hasTimeSeriesCompactionLevelThreshold() != other.hasTimeSeriesCompactionLevelThreshold()) return false;
      if (hasTimeSeriesCompactionLevelThreshold()) {
        if (getTimeSeriesCompactionLevelThreshold()
            != other.getTimeSeriesCompactionLevelThreshold()) return false;
      }
      if (hasIndexId() != other.hasIndexId()) return false;
      if (hasIndexId()) {
        if (getIndexId()
            != other.getIndexId()) return false;
      }
      if (hasIsInMemory() != other.hasIsInMemory()) return false;
      if (hasIsInMemory()) {
        if (getIsInMemory()
            != other.getIsInMemory()) return false;
      }
      if (hasIsPersistent() != other.hasIsPersistent()) return false;
      if (hasIsPersistent()) {
        if (getIsPersistent()
            != other.getIsPersistent()) return false;
      }
      if (hasTableName() != other.hasTableName()) return false;
      if (hasTableName()) {
        if (!getTableName()
            .equals(other.getTableName())) return false;
      }
      if (hasTtlSeconds() != other.hasTtlSeconds()) return false;
      if (hasTtlSeconds()) {
        if (getTtlSeconds()
            != other.getTtlSeconds()) return false;
      }
      if (hasSchemaVersion() != other.hasSchemaVersion()) return false;
      if (hasSchemaVersion()) {
        if (getSchemaVersion()
            != other.getSchemaVersion()) 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 (hasTableId()) {
        hash = (37 * hash) + TABLE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTableId());
      }
      if (hasPartitionId()) {
        hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPartitionId());
      }
      if (hasTabletId()) {
        hash = (37 * hash) + TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTabletId());
      }
      if (hasSchemaHash()) {
        hash = (37 * hash) + SCHEMA_HASH_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaHash();
      }
      if (hasShardId()) {
        hash = (37 * hash) + SHARD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getShardId();
      }
      if (hasCreationTime()) {
        hash = (37 * hash) + CREATION_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCreationTime());
      }
      if (hasCumulativeLayerPoint()) {
        hash = (37 * hash) + CUMULATIVE_LAYER_POINT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCumulativeLayerPoint());
      }
      if (hasTabletState()) {
        hash = (37 * hash) + TABLET_STATE_FIELD_NUMBER;
        hash = (53 * hash) + tabletState_;
      }
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      if (getRsMetasCount() > 0) {
        hash = (37 * hash) + RS_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getRsMetasList().hashCode();
      }
      if (getIncRsMetasCount() > 0) {
        hash = (37 * hash) + INC_RS_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getIncRsMetasList().hashCode();
      }
      if (hasAlterTask()) {
        hash = (37 * hash) + ALTER_TASK_FIELD_NUMBER;
        hash = (53 * hash) + getAlterTask().hashCode();
      }
      if (hasInRestoreMode()) {
        hash = (37 * hash) + IN_RESTORE_MODE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getInRestoreMode());
      }
      if (hasTabletUid()) {
        hash = (37 * hash) + TABLET_UID_FIELD_NUMBER;
        hash = (53 * hash) + getTabletUid().hashCode();
      }
      if (hasEndRowsetId()) {
        hash = (37 * hash) + END_ROWSET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getEndRowsetId());
      }
      if (hasPreferredRowsetType()) {
        hash = (37 * hash) + PREFERRED_ROWSET_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + preferredRowsetType_;
      }
      if (hasTabletType()) {
        hash = (37 * hash) + TABLET_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + tabletType_;
      }
      if (getStaleRsMetasCount() > 0) {
        hash = (37 * hash) + STALE_RS_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getStaleRsMetasList().hashCode();
      }
      if (hasReplicaId()) {
        hash = (37 * hash) + REPLICA_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReplicaId());
      }
      if (hasDeleteBitmap()) {
        hash = (37 * hash) + DELETE_BITMAP_FIELD_NUMBER;
        hash = (53 * hash) + getDeleteBitmap().hashCode();
      }
      if (hasEnableUniqueKeyMergeOnWrite()) {
        hash = (37 * hash) + ENABLE_UNIQUE_KEY_MERGE_ON_WRITE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableUniqueKeyMergeOnWrite());
      }
      if (hasStoragePolicyId()) {
        hash = (37 * hash) + STORAGE_POLICY_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStoragePolicyId());
      }
      if (hasCooldownMetaId()) {
        hash = (37 * hash) + COOLDOWN_META_ID_FIELD_NUMBER;
        hash = (53 * hash) + getCooldownMetaId().hashCode();
      }
      if (hasBinlogConfig()) {
        hash = (37 * hash) + BINLOG_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getBinlogConfig().hashCode();
      }
      if (hasCompactionPolicy()) {
        hash = (37 * hash) + COMPACTION_POLICY_FIELD_NUMBER;
        hash = (53 * hash) + getCompactionPolicy().hashCode();
      }
      if (hasTimeSeriesCompactionGoalSizeMbytes()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionGoalSizeMbytes());
      }
      if (hasTimeSeriesCompactionFileCountThreshold()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_FILE_COUNT_THRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionFileCountThreshold());
      }
      if (hasTimeSeriesCompactionTimeThresholdSeconds()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionTimeThresholdSeconds());
      }
      if (hasTimeSeriesCompactionEmptyRowsetsThreshold()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionEmptyRowsetsThreshold());
      }
      if (hasTimeSeriesCompactionLevelThreshold()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_LEVEL_THRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionLevelThreshold());
      }
      if (hasIndexId()) {
        hash = (37 * hash) + INDEX_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexId());
      }
      if (hasIsInMemory()) {
        hash = (37 * hash) + IS_IN_MEMORY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsInMemory());
      }
      if (hasIsPersistent()) {
        hash = (37 * hash) + IS_PERSISTENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsPersistent());
      }
      if (hasTableName()) {
        hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getTableName().hashCode();
      }
      if (hasTtlSeconds()) {
        hash = (37 * hash) + TTL_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTtlSeconds());
      }
      if (hasSchemaVersion()) {
        hash = (37 * hash) + SCHEMA_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaVersion();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.TabletMetaPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaPB 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.OlapFile.TabletMetaPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaPB 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.OlapFile.TabletMetaPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaPB 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.OlapFile.TabletMetaPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.TabletMetaPB 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.OlapFile.TabletMetaPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaPB 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.OlapFile.TabletMetaPB 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;
    }
    /**
     * <pre>
     * ATTN: When adding or deleting fields, please update `message TabletMetaCloudPB`
     * simultaneously and modify the conversion function in the be/src/cloud/pb_convert.{h,cpp}.
     * </pre>
     *
     * Protobuf type {@code doris.TabletMetaPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.TabletMetaPB)
        org.apache.doris.proto.OlapFile.TabletMetaPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_TabletMetaPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.TabletMetaPB.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSchemaFieldBuilder();
          getRsMetasFieldBuilder();
          getIncRsMetasFieldBuilder();
          getAlterTaskFieldBuilder();
          getTabletUidFieldBuilder();
          getStaleRsMetasFieldBuilder();
          getDeleteBitmapFieldBuilder();
          getCooldownMetaIdFieldBuilder();
          getBinlogConfigFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        tableId_ = 0L;
        partitionId_ = 0L;
        tabletId_ = 0L;
        schemaHash_ = 0;
        shardId_ = 0;
        creationTime_ = 0L;
        cumulativeLayerPoint_ = 0L;
        tabletState_ = 0;
        schema_ = null;
        if (schemaBuilder_ != null) {
          schemaBuilder_.dispose();
          schemaBuilder_ = null;
        }
        if (rsMetasBuilder_ == null) {
          rsMetas_ = java.util.Collections.emptyList();
        } else {
          rsMetas_ = null;
          rsMetasBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (incRsMetasBuilder_ == null) {
          incRsMetas_ = java.util.Collections.emptyList();
        } else {
          incRsMetas_ = null;
          incRsMetasBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        alterTask_ = null;
        if (alterTaskBuilder_ != null) {
          alterTaskBuilder_.dispose();
          alterTaskBuilder_ = null;
        }
        inRestoreMode_ = false;
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        endRowsetId_ = 0L;
        preferredRowsetType_ = 0;
        tabletType_ = 0;
        if (staleRsMetasBuilder_ == null) {
          staleRsMetas_ = java.util.Collections.emptyList();
        } else {
          staleRsMetas_ = null;
          staleRsMetasBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        replicaId_ = 0L;
        deleteBitmap_ = null;
        if (deleteBitmapBuilder_ != null) {
          deleteBitmapBuilder_.dispose();
          deleteBitmapBuilder_ = null;
        }
        enableUniqueKeyMergeOnWrite_ = false;
        storagePolicyId_ = 0L;
        cooldownMetaId_ = null;
        if (cooldownMetaIdBuilder_ != null) {
          cooldownMetaIdBuilder_.dispose();
          cooldownMetaIdBuilder_ = null;
        }
        binlogConfig_ = null;
        if (binlogConfigBuilder_ != null) {
          binlogConfigBuilder_.dispose();
          binlogConfigBuilder_ = null;
        }
        compactionPolicy_ = "size_based";
        timeSeriesCompactionGoalSizeMbytes_ = 1024L;
        timeSeriesCompactionFileCountThreshold_ = 2000L;
        timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
        timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
        timeSeriesCompactionLevelThreshold_ = 1L;
        indexId_ = 0L;
        isInMemory_ = false;
        isPersistent_ = false;
        tableName_ = "";
        ttlSeconds_ = 0L;
        schemaVersion_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.TabletMetaPB result) {
        if (rsMetasBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0)) {
            rsMetas_ = java.util.Collections.unmodifiableList(rsMetas_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.rsMetas_ = rsMetas_;
        } else {
          result.rsMetas_ = rsMetasBuilder_.build();
        }
        if (incRsMetasBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0)) {
            incRsMetas_ = java.util.Collections.unmodifiableList(incRsMetas_);
            bitField0_ = (bitField0_ & ~0x00000400);
          }
          result.incRsMetas_ = incRsMetas_;
        } else {
          result.incRsMetas_ = incRsMetasBuilder_.build();
        }
        if (staleRsMetasBuilder_ == null) {
          if (((bitField0_ & 0x00020000) != 0)) {
            staleRsMetas_ = java.util.Collections.unmodifiableList(staleRsMetas_);
            bitField0_ = (bitField0_ & ~0x00020000);
          }
          result.staleRsMetas_ = staleRsMetas_;
        } else {
          result.staleRsMetas_ = staleRsMetasBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.TabletMetaPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.tableId_ = tableId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.partitionId_ = partitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.tabletId_ = tabletId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.schemaHash_ = schemaHash_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.shardId_ = shardId_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.creationTime_ = creationTime_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.cumulativeLayerPoint_ = cumulativeLayerPoint_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.tabletState_ = tabletState_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.schema_ = schemaBuilder_ == null
              ? schema_
              : schemaBuilder_.build();
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.alterTask_ = alterTaskBuilder_ == null
              ? alterTask_
              : alterTaskBuilder_.build();
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.inRestoreMode_ = inRestoreMode_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.tabletUid_ = tabletUidBuilder_ == null
              ? tabletUid_
              : tabletUidBuilder_.build();
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.endRowsetId_ = endRowsetId_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.preferredRowsetType_ = preferredRowsetType_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.tabletType_ = tabletType_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.replicaId_ = replicaId_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.deleteBitmap_ = deleteBitmapBuilder_ == null
              ? deleteBitmap_
              : deleteBitmapBuilder_.build();
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.enableUniqueKeyMergeOnWrite_ = enableUniqueKeyMergeOnWrite_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.storagePolicyId_ = storagePolicyId_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.cooldownMetaId_ = cooldownMetaIdBuilder_ == null
              ? cooldownMetaId_
              : cooldownMetaIdBuilder_.build();
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.binlogConfig_ = binlogConfigBuilder_ == null
              ? binlogConfig_
              : binlogConfigBuilder_.build();
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.compactionPolicy_ = compactionPolicy_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.timeSeriesCompactionGoalSizeMbytes_ = timeSeriesCompactionGoalSizeMbytes_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.timeSeriesCompactionFileCountThreshold_ = timeSeriesCompactionFileCountThreshold_;
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.timeSeriesCompactionTimeThresholdSeconds_ = timeSeriesCompactionTimeThresholdSeconds_;
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.timeSeriesCompactionEmptyRowsetsThreshold_ = timeSeriesCompactionEmptyRowsetsThreshold_;
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.timeSeriesCompactionLevelThreshold_ = timeSeriesCompactionLevelThreshold_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.indexId_ = indexId_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.isInMemory_ = isInMemory_;
          to_bitField0_ |= 0x10000000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartial1(org.apache.doris.proto.OlapFile.TabletMetaPB result) {
        int from_bitField1_ = bitField1_;
        int to_bitField0_ = 0;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          result.isPersistent_ = isPersistent_;
          to_bitField0_ |= 0x20000000;
        }
        if (((from_bitField1_ & 0x00000002) != 0)) {
          result.tableName_ = tableName_;
          to_bitField0_ |= 0x40000000;
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.ttlSeconds_ = ttlSeconds_;
          to_bitField0_ |= 0x80000000;
        }
        int to_bitField1_ = 0;
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.schemaVersion_ = schemaVersion_;
          to_bitField1_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
        result.bitField1_ |= to_bitField1_;
      }

      @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.OlapFile.TabletMetaPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.TabletMetaPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.TabletMetaPB other) {
        if (other == org.apache.doris.proto.OlapFile.TabletMetaPB.getDefaultInstance()) return this;
        if (other.hasTableId()) {
          setTableId(other.getTableId());
        }
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasTabletId()) {
          setTabletId(other.getTabletId());
        }
        if (other.hasSchemaHash()) {
          setSchemaHash(other.getSchemaHash());
        }
        if (other.hasShardId()) {
          setShardId(other.getShardId());
        }
        if (other.hasCreationTime()) {
          setCreationTime(other.getCreationTime());
        }
        if (other.hasCumulativeLayerPoint()) {
          setCumulativeLayerPoint(other.getCumulativeLayerPoint());
        }
        if (other.hasTabletState()) {
          setTabletState(other.getTabletState());
        }
        if (other.hasSchema()) {
          mergeSchema(other.getSchema());
        }
        if (rsMetasBuilder_ == null) {
          if (!other.rsMetas_.isEmpty()) {
            if (rsMetas_.isEmpty()) {
              rsMetas_ = other.rsMetas_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureRsMetasIsMutable();
              rsMetas_.addAll(other.rsMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.rsMetas_.isEmpty()) {
            if (rsMetasBuilder_.isEmpty()) {
              rsMetasBuilder_.dispose();
              rsMetasBuilder_ = null;
              rsMetas_ = other.rsMetas_;
              bitField0_ = (bitField0_ & ~0x00000200);
              rsMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRsMetasFieldBuilder() : null;
            } else {
              rsMetasBuilder_.addAllMessages(other.rsMetas_);
            }
          }
        }
        if (incRsMetasBuilder_ == null) {
          if (!other.incRsMetas_.isEmpty()) {
            if (incRsMetas_.isEmpty()) {
              incRsMetas_ = other.incRsMetas_;
              bitField0_ = (bitField0_ & ~0x00000400);
            } else {
              ensureIncRsMetasIsMutable();
              incRsMetas_.addAll(other.incRsMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.incRsMetas_.isEmpty()) {
            if (incRsMetasBuilder_.isEmpty()) {
              incRsMetasBuilder_.dispose();
              incRsMetasBuilder_ = null;
              incRsMetas_ = other.incRsMetas_;
              bitField0_ = (bitField0_ & ~0x00000400);
              incRsMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIncRsMetasFieldBuilder() : null;
            } else {
              incRsMetasBuilder_.addAllMessages(other.incRsMetas_);
            }
          }
        }
        if (other.hasAlterTask()) {
          mergeAlterTask(other.getAlterTask());
        }
        if (other.hasInRestoreMode()) {
          setInRestoreMode(other.getInRestoreMode());
        }
        if (other.hasTabletUid()) {
          mergeTabletUid(other.getTabletUid());
        }
        if (other.hasEndRowsetId()) {
          setEndRowsetId(other.getEndRowsetId());
        }
        if (other.hasPreferredRowsetType()) {
          setPreferredRowsetType(other.getPreferredRowsetType());
        }
        if (other.hasTabletType()) {
          setTabletType(other.getTabletType());
        }
        if (staleRsMetasBuilder_ == null) {
          if (!other.staleRsMetas_.isEmpty()) {
            if (staleRsMetas_.isEmpty()) {
              staleRsMetas_ = other.staleRsMetas_;
              bitField0_ = (bitField0_ & ~0x00020000);
            } else {
              ensureStaleRsMetasIsMutable();
              staleRsMetas_.addAll(other.staleRsMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.staleRsMetas_.isEmpty()) {
            if (staleRsMetasBuilder_.isEmpty()) {
              staleRsMetasBuilder_.dispose();
              staleRsMetasBuilder_ = null;
              staleRsMetas_ = other.staleRsMetas_;
              bitField0_ = (bitField0_ & ~0x00020000);
              staleRsMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getStaleRsMetasFieldBuilder() : null;
            } else {
              staleRsMetasBuilder_.addAllMessages(other.staleRsMetas_);
            }
          }
        }
        if (other.hasReplicaId()) {
          setReplicaId(other.getReplicaId());
        }
        if (other.hasDeleteBitmap()) {
          mergeDeleteBitmap(other.getDeleteBitmap());
        }
        if (other.hasEnableUniqueKeyMergeOnWrite()) {
          setEnableUniqueKeyMergeOnWrite(other.getEnableUniqueKeyMergeOnWrite());
        }
        if (other.hasStoragePolicyId()) {
          setStoragePolicyId(other.getStoragePolicyId());
        }
        if (other.hasCooldownMetaId()) {
          mergeCooldownMetaId(other.getCooldownMetaId());
        }
        if (other.hasBinlogConfig()) {
          mergeBinlogConfig(other.getBinlogConfig());
        }
        if (other.hasCompactionPolicy()) {
          compactionPolicy_ = other.compactionPolicy_;
          bitField0_ |= 0x01000000;
          onChanged();
        }
        if (other.hasTimeSeriesCompactionGoalSizeMbytes()) {
          setTimeSeriesCompactionGoalSizeMbytes(other.getTimeSeriesCompactionGoalSizeMbytes());
        }
        if (other.hasTimeSeriesCompactionFileCountThreshold()) {
          setTimeSeriesCompactionFileCountThreshold(other.getTimeSeriesCompactionFileCountThreshold());
        }
        if (other.hasTimeSeriesCompactionTimeThresholdSeconds()) {
          setTimeSeriesCompactionTimeThresholdSeconds(other.getTimeSeriesCompactionTimeThresholdSeconds());
        }
        if (other.hasTimeSeriesCompactionEmptyRowsetsThreshold()) {
          setTimeSeriesCompactionEmptyRowsetsThreshold(other.getTimeSeriesCompactionEmptyRowsetsThreshold());
        }
        if (other.hasTimeSeriesCompactionLevelThreshold()) {
          setTimeSeriesCompactionLevelThreshold(other.getTimeSeriesCompactionLevelThreshold());
        }
        if (other.hasIndexId()) {
          setIndexId(other.getIndexId());
        }
        if (other.hasIsInMemory()) {
          setIsInMemory(other.getIsInMemory());
        }
        if (other.hasIsPersistent()) {
          setIsPersistent(other.getIsPersistent());
        }
        if (other.hasTableName()) {
          tableName_ = other.tableName_;
          bitField1_ |= 0x00000002;
          onChanged();
        }
        if (other.hasTtlSeconds()) {
          setTtlSeconds(other.getTtlSeconds());
        }
        if (other.hasSchemaVersion()) {
          setSchemaVersion(other.getSchemaVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (hasSchema()) {
          if (!getSchema().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getRsMetasCount(); i++) {
          if (!getRsMetas(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getIncRsMetasCount(); i++) {
          if (!getIncRsMetas(i).isInitialized()) {
            return false;
          }
        }
        if (hasAlterTask()) {
          if (!getAlterTask().isInitialized()) {
            return false;
          }
        }
        if (hasTabletUid()) {
          if (!getTabletUid().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getStaleRsMetasCount(); i++) {
          if (!getStaleRsMetas(i).isInitialized()) {
            return false;
          }
        }
        if (hasCooldownMetaId()) {
          if (!getCooldownMetaId().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: {
                tableId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                partitionId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                tabletId_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                schemaHash_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                shardId_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                creationTime_ = input.readInt64();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                cumulativeLayerPoint_ = input.readInt64();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.TabletStatePB tmpValue =
                    org.apache.doris.proto.OlapFile.TabletStatePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(8, tmpRaw);
                } else {
                  tabletState_ = tmpRaw;
                  bitField0_ |= 0x00000080;
                }
                break;
              } // case 64
              case 74: {
                input.readMessage(
                    getSchemaFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                org.apache.doris.proto.OlapFile.RowsetMetaPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.RowsetMetaPB.PARSER,
                        extensionRegistry);
                if (rsMetasBuilder_ == null) {
                  ensureRsMetasIsMutable();
                  rsMetas_.add(m);
                } else {
                  rsMetasBuilder_.addMessage(m);
                }
                break;
              } // case 82
              case 90: {
                org.apache.doris.proto.OlapFile.RowsetMetaPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.RowsetMetaPB.PARSER,
                        extensionRegistry);
                if (incRsMetasBuilder_ == null) {
                  ensureIncRsMetasIsMutable();
                  incRsMetas_.add(m);
                } else {
                  incRsMetasBuilder_.addMessage(m);
                }
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    getAlterTaskFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 104: {
                inRestoreMode_ = input.readBool();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 114: {
                input.readMessage(
                    getTabletUidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 120: {
                endRowsetId_ = input.readInt64();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              case 128: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.RowsetTypePB tmpValue =
                    org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(16, tmpRaw);
                } else {
                  preferredRowsetType_ = tmpRaw;
                  bitField0_ |= 0x00008000;
                }
                break;
              } // case 128
              case 136: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.TabletTypePB tmpValue =
                    org.apache.doris.proto.OlapFile.TabletTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(17, tmpRaw);
                } else {
                  tabletType_ = tmpRaw;
                  bitField0_ |= 0x00010000;
                }
                break;
              } // case 136
              case 146: {
                org.apache.doris.proto.OlapFile.RowsetMetaPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.RowsetMetaPB.PARSER,
                        extensionRegistry);
                if (staleRsMetasBuilder_ == null) {
                  ensureStaleRsMetasIsMutable();
                  staleRsMetas_.add(m);
                } else {
                  staleRsMetasBuilder_.addMessage(m);
                }
                break;
              } // case 146
              case 168: {
                replicaId_ = input.readInt64();
                bitField0_ |= 0x00040000;
                break;
              } // case 168
              case 186: {
                input.readMessage(
                    getDeleteBitmapFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00080000;
                break;
              } // case 186
              case 192: {
                enableUniqueKeyMergeOnWrite_ = input.readBool();
                bitField0_ |= 0x00100000;
                break;
              } // case 192
              case 200: {
                storagePolicyId_ = input.readInt64();
                bitField0_ |= 0x00200000;
                break;
              } // case 200
              case 210: {
                input.readMessage(
                    getCooldownMetaIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00400000;
                break;
              } // case 210
              case 218: {
                input.readMessage(
                    getBinlogConfigFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00800000;
                break;
              } // case 218
              case 226: {
                compactionPolicy_ = input.readBytes();
                bitField0_ |= 0x01000000;
                break;
              } // case 226
              case 232: {
                timeSeriesCompactionGoalSizeMbytes_ = input.readInt64();
                bitField0_ |= 0x02000000;
                break;
              } // case 232
              case 240: {
                timeSeriesCompactionFileCountThreshold_ = input.readInt64();
                bitField0_ |= 0x04000000;
                break;
              } // case 240
              case 248: {
                timeSeriesCompactionTimeThresholdSeconds_ = input.readInt64();
                bitField0_ |= 0x08000000;
                break;
              } // case 248
              case 256: {
                timeSeriesCompactionEmptyRowsetsThreshold_ = input.readInt64();
                bitField0_ |= 0x10000000;
                break;
              } // case 256
              case 264: {
                timeSeriesCompactionLevelThreshold_ = input.readInt64();
                bitField0_ |= 0x20000000;
                break;
              } // case 264
              case 8000: {
                indexId_ = input.readInt64();
                bitField0_ |= 0x40000000;
                break;
              } // case 8000
              case 8008: {
                isInMemory_ = input.readBool();
                bitField0_ |= 0x80000000;
                break;
              } // case 8008
              case 8016: {
                isPersistent_ = input.readBool();
                bitField1_ |= 0x00000001;
                break;
              } // case 8016
              case 8026: {
                tableName_ = input.readBytes();
                bitField1_ |= 0x00000002;
                break;
              } // case 8026
              case 8032: {
                ttlSeconds_ = input.readInt64();
                bitField1_ |= 0x00000004;
                break;
              } // case 8032
              case 8040: {
                schemaVersion_ = input.readInt32();
                bitField1_ |= 0x00000008;
                break;
              } // case 8040
              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 bitField1_;

      private long tableId_ ;
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @return Whether the tableId field is set.
       */
      @java.lang.Override
      public boolean hasTableId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @return The tableId.
       */
      @java.lang.Override
      public long getTableId() {
        return tableId_;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @param value The tableId to set.
       * @return This builder for chaining.
       */
      public Builder setTableId(long value) {

        tableId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tableId_ = 0L;
        onChanged();
        return this;
      }

      private long partitionId_ ;
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @return Whether the partitionId field is set.
       */
      @java.lang.Override
      public boolean hasPartitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @return The partitionId.
       */
      @java.lang.Override
      public long getPartitionId() {
        return partitionId_;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(long value) {

        partitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        partitionId_ = 0L;
        onChanged();
        return this;
      }

      private long tabletId_ ;
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @return Whether the tabletId field is set.
       */
      @java.lang.Override
      public boolean hasTabletId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @return The tabletId.
       */
      @java.lang.Override
      public long getTabletId() {
        return tabletId_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @param value The tabletId to set.
       * @return This builder for chaining.
       */
      public Builder setTabletId(long value) {

        tabletId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tabletId_ = 0L;
        onChanged();
        return this;
      }

      private int schemaHash_ ;
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @return Whether the schemaHash field is set.
       */
      @java.lang.Override
      public boolean hasSchemaHash() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @return The schemaHash.
       */
      @java.lang.Override
      public int getSchemaHash() {
        return schemaHash_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @param value The schemaHash to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaHash(int value) {

        schemaHash_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaHash() {
        bitField0_ = (bitField0_ & ~0x00000008);
        schemaHash_ = 0;
        onChanged();
        return this;
      }

      private int shardId_ ;
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @return Whether the shardId field is set.
       */
      @java.lang.Override
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @return The shardId.
       */
      @java.lang.Override
      public int getShardId() {
        return shardId_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @param value The shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardId(int value) {

        shardId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        shardId_ = 0;
        onChanged();
        return this;
      }

      private long creationTime_ ;
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @return Whether the creationTime field is set.
       */
      @java.lang.Override
      public boolean hasCreationTime() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @return The creationTime.
       */
      @java.lang.Override
      public long getCreationTime() {
        return creationTime_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @param value The creationTime to set.
       * @return This builder for chaining.
       */
      public Builder setCreationTime(long value) {

        creationTime_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreationTime() {
        bitField0_ = (bitField0_ & ~0x00000020);
        creationTime_ = 0L;
        onChanged();
        return this;
      }

      private long cumulativeLayerPoint_ ;
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @return Whether the cumulativeLayerPoint field is set.
       */
      @java.lang.Override
      public boolean hasCumulativeLayerPoint() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @return The cumulativeLayerPoint.
       */
      @java.lang.Override
      public long getCumulativeLayerPoint() {
        return cumulativeLayerPoint_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @param value The cumulativeLayerPoint to set.
       * @return This builder for chaining.
       */
      public Builder setCumulativeLayerPoint(long value) {

        cumulativeLayerPoint_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCumulativeLayerPoint() {
        bitField0_ = (bitField0_ & ~0x00000040);
        cumulativeLayerPoint_ = 0L;
        onChanged();
        return this;
      }

      private int tabletState_ = 0;
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @return Whether the tabletState field is set.
       */
      @java.lang.Override public boolean hasTabletState() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @return The tabletState.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.TabletStatePB getTabletState() {
        org.apache.doris.proto.OlapFile.TabletStatePB result = org.apache.doris.proto.OlapFile.TabletStatePB.forNumber(tabletState_);
        return result == null ? org.apache.doris.proto.OlapFile.TabletStatePB.PB_NOTREADY : result;
      }
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @param value The tabletState to set.
       * @return This builder for chaining.
       */
      public Builder setTabletState(org.apache.doris.proto.OlapFile.TabletStatePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        tabletState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletState() {
        bitField0_ = (bitField0_ & ~0x00000080);
        tabletState_ = 0;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.OlapFile.TabletSchemaPB schema_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaPB, org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder> schemaBuilder_;
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       * @return Whether the schema field is set.
       */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       * @return The schema.
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaPB getSchema() {
        if (schemaBuilder_ == null) {
          return schema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : schema_;
        } else {
          return schemaBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       */
      public Builder setSchema(org.apache.doris.proto.OlapFile.TabletSchemaPB value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schema_ = value;
        } else {
          schemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       */
      public Builder setSchema(
          org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          schema_ = builderForValue.build();
        } else {
          schemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       */
      public Builder mergeSchema(org.apache.doris.proto.OlapFile.TabletSchemaPB value) {
        if (schemaBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
            schema_ != null &&
            schema_ != org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance()) {
            getSchemaBuilder().mergeFrom(value);
          } else {
            schema_ = value;
          }
        } else {
          schemaBuilder_.mergeFrom(value);
        }
        if (schema_ != null) {
          bitField0_ |= 0x00000100;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       */
      public Builder clearSchema() {
        bitField0_ = (bitField0_ & ~0x00000100);
        schema_ = null;
        if (schemaBuilder_ != null) {
          schemaBuilder_.dispose();
          schemaBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder getSchemaBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getSchemaFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder getSchemaOrBuilder() {
        if (schemaBuilder_ != null) {
          return schemaBuilder_.getMessageOrBuilder();
        } else {
          return schema_ == null ?
              org.apache.doris.proto.OlapFile.TabletSchemaPB.getDefaultInstance() : schema_;
        }
      }
      /**
       * <code>optional .doris.TabletSchemaPB schema = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaPB, org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder> 
          getSchemaFieldBuilder() {
        if (schemaBuilder_ == null) {
          schemaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.TabletSchemaPB, org.apache.doris.proto.OlapFile.TabletSchemaPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaPBOrBuilder>(
                  getSchema(),
                  getParentForChildren(),
                  isClean());
          schema_ = null;
        }
        return schemaBuilder_;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> rsMetas_ =
        java.util.Collections.emptyList();
      private void ensureRsMetasIsMutable() {
        if (!((bitField0_ & 0x00000200) != 0)) {
          rsMetas_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.RowsetMetaPB>(rsMetas_);
          bitField0_ |= 0x00000200;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> rsMetasBuilder_;

      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> getRsMetasList() {
        if (rsMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rsMetas_);
        } else {
          return rsMetasBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public int getRsMetasCount() {
        if (rsMetasBuilder_ == null) {
          return rsMetas_.size();
        } else {
          return rsMetasBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB getRsMetas(int index) {
        if (rsMetasBuilder_ == null) {
          return rsMetas_.get(index);
        } else {
          return rsMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder setRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (rsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRsMetasIsMutable();
          rsMetas_.set(index, value);
          onChanged();
        } else {
          rsMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder setRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          rsMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (rsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRsMetasIsMutable();
          rsMetas_.add(value);
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (rsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRsMetasIsMutable();
          rsMetas_.add(index, value);
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(
          org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.add(builderForValue.build());
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder addAllRsMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.RowsetMetaPB> values) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rsMetas_);
          onChanged();
        } else {
          rsMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder clearRsMetas() {
        if (rsMetasBuilder_ == null) {
          rsMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          rsMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public Builder removeRsMetas(int index) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.remove(index);
          onChanged();
        } else {
          rsMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder getRsMetasBuilder(
          int index) {
        return getRsMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getRsMetasOrBuilder(
          int index) {
        if (rsMetasBuilder_ == null) {
          return rsMetas_.get(index);  } else {
          return rsMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
           getRsMetasOrBuilderList() {
        if (rsMetasBuilder_ != null) {
          return rsMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rsMetas_);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder addRsMetasBuilder() {
        return getRsMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.RowsetMetaPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder addRsMetasBuilder(
          int index) {
        return getRsMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.RowsetMetaPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaPB rs_metas = 10;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder> 
           getRsMetasBuilderList() {
        return getRsMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
          getRsMetasFieldBuilder() {
        if (rsMetasBuilder_ == null) {
          rsMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder>(
                  rsMetas_,
                  ((bitField0_ & 0x00000200) != 0),
                  getParentForChildren(),
                  isClean());
          rsMetas_ = null;
        }
        return rsMetasBuilder_;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> incRsMetas_ =
        java.util.Collections.emptyList();
      private void ensureIncRsMetasIsMutable() {
        if (!((bitField0_ & 0x00000400) != 0)) {
          incRsMetas_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.RowsetMetaPB>(incRsMetas_);
          bitField0_ |= 0x00000400;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> incRsMetasBuilder_;

      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> getIncRsMetasList() {
        if (incRsMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(incRsMetas_);
        } else {
          return incRsMetasBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public int getIncRsMetasCount() {
        if (incRsMetasBuilder_ == null) {
          return incRsMetas_.size();
        } else {
          return incRsMetasBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB getIncRsMetas(int index) {
        if (incRsMetasBuilder_ == null) {
          return incRsMetas_.get(index);
        } else {
          return incRsMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder setIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (incRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIncRsMetasIsMutable();
          incRsMetas_.set(index, value);
          onChanged();
        } else {
          incRsMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder setIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          incRsMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (incRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(value);
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (incRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(index, value);
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(
          org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(builderForValue.build());
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder addAllIncRsMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.RowsetMetaPB> values) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, incRsMetas_);
          onChanged();
        } else {
          incRsMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder clearIncRsMetas() {
        if (incRsMetasBuilder_ == null) {
          incRsMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
          onChanged();
        } else {
          incRsMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public Builder removeIncRsMetas(int index) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.remove(index);
          onChanged();
        } else {
          incRsMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder getIncRsMetasBuilder(
          int index) {
        return getIncRsMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getIncRsMetasOrBuilder(
          int index) {
        if (incRsMetasBuilder_ == null) {
          return incRsMetas_.get(index);  } else {
          return incRsMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
           getIncRsMetasOrBuilderList() {
        if (incRsMetasBuilder_ != null) {
          return incRsMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(incRsMetas_);
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder addIncRsMetasBuilder() {
        return getIncRsMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.RowsetMetaPB.getDefaultInstance());
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder addIncRsMetasBuilder(
          int index) {
        return getIncRsMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.RowsetMetaPB.getDefaultInstance());
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaPB inc_rs_metas = 11;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder> 
           getIncRsMetasBuilderList() {
        return getIncRsMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
          getIncRsMetasFieldBuilder() {
        if (incRsMetasBuilder_ == null) {
          incRsMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder>(
                  incRsMetas_,
                  ((bitField0_ & 0x00000400) != 0),
                  getParentForChildren(),
                  isClean());
          incRsMetas_ = null;
        }
        return incRsMetasBuilder_;
      }

      private org.apache.doris.proto.OlapFile.AlterTabletPB alterTask_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.AlterTabletPB, org.apache.doris.proto.OlapFile.AlterTabletPB.Builder, org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder> alterTaskBuilder_;
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       * @return Whether the alterTask field is set.
       */
      public boolean hasAlterTask() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       * @return The alterTask.
       */
      public org.apache.doris.proto.OlapFile.AlterTabletPB getAlterTask() {
        if (alterTaskBuilder_ == null) {
          return alterTask_ == null ? org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
        } else {
          return alterTaskBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder setAlterTask(org.apache.doris.proto.OlapFile.AlterTabletPB value) {
        if (alterTaskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          alterTask_ = value;
        } else {
          alterTaskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder setAlterTask(
          org.apache.doris.proto.OlapFile.AlterTabletPB.Builder builderForValue) {
        if (alterTaskBuilder_ == null) {
          alterTask_ = builderForValue.build();
        } else {
          alterTaskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder mergeAlterTask(org.apache.doris.proto.OlapFile.AlterTabletPB value) {
        if (alterTaskBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
            alterTask_ != null &&
            alterTask_ != org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance()) {
            getAlterTaskBuilder().mergeFrom(value);
          } else {
            alterTask_ = value;
          }
        } else {
          alterTaskBuilder_.mergeFrom(value);
        }
        if (alterTask_ != null) {
          bitField0_ |= 0x00000800;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder clearAlterTask() {
        bitField0_ = (bitField0_ & ~0x00000800);
        alterTask_ = null;
        if (alterTaskBuilder_ != null) {
          alterTaskBuilder_.dispose();
          alterTaskBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public org.apache.doris.proto.OlapFile.AlterTabletPB.Builder getAlterTaskBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getAlterTaskFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder getAlterTaskOrBuilder() {
        if (alterTaskBuilder_ != null) {
          return alterTaskBuilder_.getMessageOrBuilder();
        } else {
          return alterTask_ == null ?
              org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
        }
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.AlterTabletPB, org.apache.doris.proto.OlapFile.AlterTabletPB.Builder, org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder> 
          getAlterTaskFieldBuilder() {
        if (alterTaskBuilder_ == null) {
          alterTaskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.AlterTabletPB, org.apache.doris.proto.OlapFile.AlterTabletPB.Builder, org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder>(
                  getAlterTask(),
                  getParentForChildren(),
                  isClean());
          alterTask_ = null;
        }
        return alterTaskBuilder_;
      }

      private boolean inRestoreMode_ ;
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @return Whether the inRestoreMode field is set.
       */
      @java.lang.Override
      public boolean hasInRestoreMode() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @return The inRestoreMode.
       */
      @java.lang.Override
      public boolean getInRestoreMode() {
        return inRestoreMode_;
      }
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @param value The inRestoreMode to set.
       * @return This builder for chaining.
       */
      public Builder setInRestoreMode(boolean value) {

        inRestoreMode_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearInRestoreMode() {
        bitField0_ = (bitField0_ & ~0x00001000);
        inRestoreMode_ = false;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId tabletUid_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> tabletUidBuilder_;
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       * @return Whether the tabletUid field is set.
       */
      public boolean hasTabletUid() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       * @return The tabletUid.
       */
      public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
        if (tabletUidBuilder_ == null) {
          return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        } else {
          return tabletUidBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder setTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tabletUid_ = value;
        } else {
          tabletUidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder setTabletUid(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (tabletUidBuilder_ == null) {
          tabletUid_ = builderForValue.build();
        } else {
          tabletUidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder mergeTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            tabletUid_ != null &&
            tabletUid_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getTabletUidBuilder().mergeFrom(value);
          } else {
            tabletUid_ = value;
          }
        } else {
          tabletUidBuilder_.mergeFrom(value);
        }
        if (tabletUid_ != null) {
          bitField0_ |= 0x00002000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder clearTabletUid() {
        bitField0_ = (bitField0_ & ~0x00002000);
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getTabletUidBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getTabletUidFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
        if (tabletUidBuilder_ != null) {
          return tabletUidBuilder_.getMessageOrBuilder();
        } else {
          return tabletUid_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        }
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getTabletUidFieldBuilder() {
        if (tabletUidBuilder_ == null) {
          tabletUidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getTabletUid(),
                  getParentForChildren(),
                  isClean());
          tabletUid_ = null;
        }
        return tabletUidBuilder_;
      }

      private long endRowsetId_ ;
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @return Whether the endRowsetId field is set.
       */
      @java.lang.Override
      public boolean hasEndRowsetId() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @return The endRowsetId.
       */
      @java.lang.Override
      public long getEndRowsetId() {
        return endRowsetId_;
      }
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @param value The endRowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setEndRowsetId(long value) {

        endRowsetId_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndRowsetId() {
        bitField0_ = (bitField0_ & ~0x00004000);
        endRowsetId_ = 0L;
        onChanged();
        return this;
      }

      private int preferredRowsetType_ = 0;
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @return Whether the preferredRowsetType field is set.
       */
      @java.lang.Override public boolean hasPreferredRowsetType() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @return The preferredRowsetType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.RowsetTypePB getPreferredRowsetType() {
        org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(preferredRowsetType_);
        return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
      }
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @param value The preferredRowsetType to set.
       * @return This builder for chaining.
       */
      public Builder setPreferredRowsetType(org.apache.doris.proto.OlapFile.RowsetTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00008000;
        preferredRowsetType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearPreferredRowsetType() {
        bitField0_ = (bitField0_ & ~0x00008000);
        preferredRowsetType_ = 0;
        onChanged();
        return this;
      }

      private int tabletType_ = 0;
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @return Whether the tabletType field is set.
       */
      @java.lang.Override public boolean hasTabletType() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @return The tabletType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.TabletTypePB getTabletType() {
        org.apache.doris.proto.OlapFile.TabletTypePB result = org.apache.doris.proto.OlapFile.TabletTypePB.forNumber(tabletType_);
        return result == null ? org.apache.doris.proto.OlapFile.TabletTypePB.TABLET_TYPE_DISK : result;
      }
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @param value The tabletType to set.
       * @return This builder for chaining.
       */
      public Builder setTabletType(org.apache.doris.proto.OlapFile.TabletTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00010000;
        tabletType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletType() {
        bitField0_ = (bitField0_ & ~0x00010000);
        tabletType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> staleRsMetas_ =
        java.util.Collections.emptyList();
      private void ensureStaleRsMetasIsMutable() {
        if (!((bitField0_ & 0x00020000) != 0)) {
          staleRsMetas_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.RowsetMetaPB>(staleRsMetas_);
          bitField0_ |= 0x00020000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> staleRsMetasBuilder_;

      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB> getStaleRsMetasList() {
        if (staleRsMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(staleRsMetas_);
        } else {
          return staleRsMetasBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public int getStaleRsMetasCount() {
        if (staleRsMetasBuilder_ == null) {
          return staleRsMetas_.size();
        } else {
          return staleRsMetasBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB getStaleRsMetas(int index) {
        if (staleRsMetasBuilder_ == null) {
          return staleRsMetas_.get(index);
        } else {
          return staleRsMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder setStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (staleRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.set(index, value);
          onChanged();
        } else {
          staleRsMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder setStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          staleRsMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (staleRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(value);
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB value) {
        if (staleRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(index, value);
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(
          org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(builderForValue.build());
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder builderForValue) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder addAllStaleRsMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.RowsetMetaPB> values) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, staleRsMetas_);
          onChanged();
        } else {
          staleRsMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder clearStaleRsMetas() {
        if (staleRsMetasBuilder_ == null) {
          staleRsMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00020000);
          onChanged();
        } else {
          staleRsMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public Builder removeStaleRsMetas(int index) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.remove(index);
          onChanged();
        } else {
          staleRsMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder getStaleRsMetasBuilder(
          int index) {
        return getStaleRsMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder getStaleRsMetasOrBuilder(
          int index) {
        if (staleRsMetasBuilder_ == null) {
          return staleRsMetas_.get(index);  } else {
          return staleRsMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
           getStaleRsMetasOrBuilderList() {
        if (staleRsMetasBuilder_ != null) {
          return staleRsMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(staleRsMetas_);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder addStaleRsMetasBuilder() {
        return getStaleRsMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.RowsetMetaPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder addStaleRsMetasBuilder(
          int index) {
        return getStaleRsMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.RowsetMetaPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaPB stale_rs_metas = 18;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder> 
           getStaleRsMetasBuilderList() {
        return getStaleRsMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder> 
          getStaleRsMetasFieldBuilder() {
        if (staleRsMetasBuilder_ == null) {
          staleRsMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.RowsetMetaPB, org.apache.doris.proto.OlapFile.RowsetMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaPBOrBuilder>(
                  staleRsMetas_,
                  ((bitField0_ & 0x00020000) != 0),
                  getParentForChildren(),
                  isClean());
          staleRsMetas_ = null;
        }
        return staleRsMetasBuilder_;
      }

      private long replicaId_ ;
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @return Whether the replicaId field is set.
       */
      @java.lang.Override
      public boolean hasReplicaId() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @return The replicaId.
       */
      @java.lang.Override
      public long getReplicaId() {
        return replicaId_;
      }
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @param value The replicaId to set.
       * @return This builder for chaining.
       */
      public Builder setReplicaId(long value) {

        replicaId_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearReplicaId() {
        bitField0_ = (bitField0_ & ~0x00040000);
        replicaId_ = 0L;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.OlapFile.DeleteBitmapPB deleteBitmap_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeleteBitmapPB, org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder, org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder> deleteBitmapBuilder_;
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       * @return Whether the deleteBitmap field is set.
       */
      public boolean hasDeleteBitmap() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       * @return The deleteBitmap.
       */
      public org.apache.doris.proto.OlapFile.DeleteBitmapPB getDeleteBitmap() {
        if (deleteBitmapBuilder_ == null) {
          return deleteBitmap_ == null ? org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
        } else {
          return deleteBitmapBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder setDeleteBitmap(org.apache.doris.proto.OlapFile.DeleteBitmapPB value) {
        if (deleteBitmapBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deleteBitmap_ = value;
        } else {
          deleteBitmapBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder setDeleteBitmap(
          org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder builderForValue) {
        if (deleteBitmapBuilder_ == null) {
          deleteBitmap_ = builderForValue.build();
        } else {
          deleteBitmapBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder mergeDeleteBitmap(org.apache.doris.proto.OlapFile.DeleteBitmapPB value) {
        if (deleteBitmapBuilder_ == null) {
          if (((bitField0_ & 0x00080000) != 0) &&
            deleteBitmap_ != null &&
            deleteBitmap_ != org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance()) {
            getDeleteBitmapBuilder().mergeFrom(value);
          } else {
            deleteBitmap_ = value;
          }
        } else {
          deleteBitmapBuilder_.mergeFrom(value);
        }
        if (deleteBitmap_ != null) {
          bitField0_ |= 0x00080000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder clearDeleteBitmap() {
        bitField0_ = (bitField0_ & ~0x00080000);
        deleteBitmap_ = null;
        if (deleteBitmapBuilder_ != null) {
          deleteBitmapBuilder_.dispose();
          deleteBitmapBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder getDeleteBitmapBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getDeleteBitmapFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder getDeleteBitmapOrBuilder() {
        if (deleteBitmapBuilder_ != null) {
          return deleteBitmapBuilder_.getMessageOrBuilder();
        } else {
          return deleteBitmap_ == null ?
              org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
        }
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeleteBitmapPB, org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder, org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder> 
          getDeleteBitmapFieldBuilder() {
        if (deleteBitmapBuilder_ == null) {
          deleteBitmapBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.DeleteBitmapPB, org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder, org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder>(
                  getDeleteBitmap(),
                  getParentForChildren(),
                  isClean());
          deleteBitmap_ = null;
        }
        return deleteBitmapBuilder_;
      }

      private boolean enableUniqueKeyMergeOnWrite_ ;
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @return Whether the enableUniqueKeyMergeOnWrite field is set.
       */
      @java.lang.Override
      public boolean hasEnableUniqueKeyMergeOnWrite() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @return The enableUniqueKeyMergeOnWrite.
       */
      @java.lang.Override
      public boolean getEnableUniqueKeyMergeOnWrite() {
        return enableUniqueKeyMergeOnWrite_;
      }
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @param value The enableUniqueKeyMergeOnWrite to set.
       * @return This builder for chaining.
       */
      public Builder setEnableUniqueKeyMergeOnWrite(boolean value) {

        enableUniqueKeyMergeOnWrite_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableUniqueKeyMergeOnWrite() {
        bitField0_ = (bitField0_ & ~0x00100000);
        enableUniqueKeyMergeOnWrite_ = false;
        onChanged();
        return this;
      }

      private long storagePolicyId_ ;
      /**
       * <code>optional int64 storage_policy_id = 25;</code>
       * @return Whether the storagePolicyId field is set.
       */
      @java.lang.Override
      public boolean hasStoragePolicyId() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <code>optional int64 storage_policy_id = 25;</code>
       * @return The storagePolicyId.
       */
      @java.lang.Override
      public long getStoragePolicyId() {
        return storagePolicyId_;
      }
      /**
       * <code>optional int64 storage_policy_id = 25;</code>
       * @param value The storagePolicyId to set.
       * @return This builder for chaining.
       */
      public Builder setStoragePolicyId(long value) {

        storagePolicyId_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 storage_policy_id = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearStoragePolicyId() {
        bitField0_ = (bitField0_ & ~0x00200000);
        storagePolicyId_ = 0L;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId cooldownMetaId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> cooldownMetaIdBuilder_;
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       * @return Whether the cooldownMetaId field is set.
       */
      public boolean hasCooldownMetaId() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       * @return The cooldownMetaId.
       */
      public org.apache.doris.proto.Types.PUniqueId getCooldownMetaId() {
        if (cooldownMetaIdBuilder_ == null) {
          return cooldownMetaId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
        } else {
          return cooldownMetaIdBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       */
      public Builder setCooldownMetaId(org.apache.doris.proto.Types.PUniqueId value) {
        if (cooldownMetaIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cooldownMetaId_ = value;
        } else {
          cooldownMetaIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       */
      public Builder setCooldownMetaId(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (cooldownMetaIdBuilder_ == null) {
          cooldownMetaId_ = builderForValue.build();
        } else {
          cooldownMetaIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       */
      public Builder mergeCooldownMetaId(org.apache.doris.proto.Types.PUniqueId value) {
        if (cooldownMetaIdBuilder_ == null) {
          if (((bitField0_ & 0x00400000) != 0) &&
            cooldownMetaId_ != null &&
            cooldownMetaId_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getCooldownMetaIdBuilder().mergeFrom(value);
          } else {
            cooldownMetaId_ = value;
          }
        } else {
          cooldownMetaIdBuilder_.mergeFrom(value);
        }
        if (cooldownMetaId_ != null) {
          bitField0_ |= 0x00400000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       */
      public Builder clearCooldownMetaId() {
        bitField0_ = (bitField0_ & ~0x00400000);
        cooldownMetaId_ = null;
        if (cooldownMetaIdBuilder_ != null) {
          cooldownMetaIdBuilder_.dispose();
          cooldownMetaIdBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getCooldownMetaIdBuilder() {
        bitField0_ |= 0x00400000;
        onChanged();
        return getCooldownMetaIdFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getCooldownMetaIdOrBuilder() {
        if (cooldownMetaIdBuilder_ != null) {
          return cooldownMetaIdBuilder_.getMessageOrBuilder();
        } else {
          return cooldownMetaId_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
        }
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 26;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getCooldownMetaIdFieldBuilder() {
        if (cooldownMetaIdBuilder_ == null) {
          cooldownMetaIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getCooldownMetaId(),
                  getParentForChildren(),
                  isClean());
          cooldownMetaId_ = null;
        }
        return cooldownMetaIdBuilder_;
      }

      private org.apache.doris.proto.OlapFile.BinlogConfigPB binlogConfig_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.BinlogConfigPB, org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder, org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder> binlogConfigBuilder_;
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       * @return Whether the binlogConfig field is set.
       */
      public boolean hasBinlogConfig() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       * @return The binlogConfig.
       */
      public org.apache.doris.proto.OlapFile.BinlogConfigPB getBinlogConfig() {
        if (binlogConfigBuilder_ == null) {
          return binlogConfig_ == null ? org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
        } else {
          return binlogConfigBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       */
      public Builder setBinlogConfig(org.apache.doris.proto.OlapFile.BinlogConfigPB value) {
        if (binlogConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          binlogConfig_ = value;
        } else {
          binlogConfigBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       */
      public Builder setBinlogConfig(
          org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder builderForValue) {
        if (binlogConfigBuilder_ == null) {
          binlogConfig_ = builderForValue.build();
        } else {
          binlogConfigBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       */
      public Builder mergeBinlogConfig(org.apache.doris.proto.OlapFile.BinlogConfigPB value) {
        if (binlogConfigBuilder_ == null) {
          if (((bitField0_ & 0x00800000) != 0) &&
            binlogConfig_ != null &&
            binlogConfig_ != org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance()) {
            getBinlogConfigBuilder().mergeFrom(value);
          } else {
            binlogConfig_ = value;
          }
        } else {
          binlogConfigBuilder_.mergeFrom(value);
        }
        if (binlogConfig_ != null) {
          bitField0_ |= 0x00800000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       */
      public Builder clearBinlogConfig() {
        bitField0_ = (bitField0_ & ~0x00800000);
        binlogConfig_ = null;
        if (binlogConfigBuilder_ != null) {
          binlogConfigBuilder_.dispose();
          binlogConfigBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder getBinlogConfigBuilder() {
        bitField0_ |= 0x00800000;
        onChanged();
        return getBinlogConfigFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       */
      public org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder getBinlogConfigOrBuilder() {
        if (binlogConfigBuilder_ != null) {
          return binlogConfigBuilder_.getMessageOrBuilder();
        } else {
          return binlogConfig_ == null ?
              org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
        }
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 27;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.BinlogConfigPB, org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder, org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder> 
          getBinlogConfigFieldBuilder() {
        if (binlogConfigBuilder_ == null) {
          binlogConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.BinlogConfigPB, org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder, org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder>(
                  getBinlogConfig(),
                  getParentForChildren(),
                  isClean());
          binlogConfig_ = null;
        }
        return binlogConfigBuilder_;
      }

      private java.lang.Object compactionPolicy_ = "size_based";
      /**
       * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
       * @return Whether the compactionPolicy field is set.
       */
      public boolean hasCompactionPolicy() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
       * @return The compactionPolicy.
       */
      public java.lang.String getCompactionPolicy() {
        java.lang.Object ref = compactionPolicy_;
        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()) {
            compactionPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
       * @return The bytes for compactionPolicy.
       */
      public com.google.protobuf.ByteString
          getCompactionPolicyBytes() {
        java.lang.Object ref = compactionPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          compactionPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
       * @param value The compactionPolicy to set.
       * @return This builder for chaining.
       */
      public Builder setCompactionPolicy(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        compactionPolicy_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompactionPolicy() {
        compactionPolicy_ = getDefaultInstance().getCompactionPolicy();
        bitField0_ = (bitField0_ & ~0x01000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string compaction_policy = 28 [default = "size_based"];</code>
       * @param value The bytes for compactionPolicy to set.
       * @return This builder for chaining.
       */
      public Builder setCompactionPolicyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        compactionPolicy_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionGoalSizeMbytes_ = 1024L;
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
       * @return Whether the timeSeriesCompactionGoalSizeMbytes field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionGoalSizeMbytes() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
       * @return The timeSeriesCompactionGoalSizeMbytes.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionGoalSizeMbytes() {
        return timeSeriesCompactionGoalSizeMbytes_;
      }
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
       * @param value The timeSeriesCompactionGoalSizeMbytes to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionGoalSizeMbytes(long value) {

        timeSeriesCompactionGoalSizeMbytes_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 29 [default = 1024];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionGoalSizeMbytes() {
        bitField0_ = (bitField0_ & ~0x02000000);
        timeSeriesCompactionGoalSizeMbytes_ = 1024L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionFileCountThreshold_ = 2000L;
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
       * @return Whether the timeSeriesCompactionFileCountThreshold field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionFileCountThreshold() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
       * @return The timeSeriesCompactionFileCountThreshold.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionFileCountThreshold() {
        return timeSeriesCompactionFileCountThreshold_;
      }
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
       * @param value The timeSeriesCompactionFileCountThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionFileCountThreshold(long value) {

        timeSeriesCompactionFileCountThreshold_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 30 [default = 2000];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionFileCountThreshold() {
        bitField0_ = (bitField0_ & ~0x04000000);
        timeSeriesCompactionFileCountThreshold_ = 2000L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
       * @return Whether the timeSeriesCompactionTimeThresholdSeconds field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionTimeThresholdSeconds() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
       * @return The timeSeriesCompactionTimeThresholdSeconds.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionTimeThresholdSeconds() {
        return timeSeriesCompactionTimeThresholdSeconds_;
      }
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
       * @param value The timeSeriesCompactionTimeThresholdSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionTimeThresholdSeconds(long value) {

        timeSeriesCompactionTimeThresholdSeconds_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 31 [default = 3600];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionTimeThresholdSeconds() {
        bitField0_ = (bitField0_ & ~0x08000000);
        timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
       * @return Whether the timeSeriesCompactionEmptyRowsetsThreshold field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionEmptyRowsetsThreshold() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
       * @return The timeSeriesCompactionEmptyRowsetsThreshold.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionEmptyRowsetsThreshold() {
        return timeSeriesCompactionEmptyRowsetsThreshold_;
      }
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
       * @param value The timeSeriesCompactionEmptyRowsetsThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionEmptyRowsetsThreshold(long value) {

        timeSeriesCompactionEmptyRowsetsThreshold_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 32 [default = 5];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionEmptyRowsetsThreshold() {
        bitField0_ = (bitField0_ & ~0x10000000);
        timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionLevelThreshold_ = 1L;
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
       * @return Whether the timeSeriesCompactionLevelThreshold field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionLevelThreshold() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
       * @return The timeSeriesCompactionLevelThreshold.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionLevelThreshold() {
        return timeSeriesCompactionLevelThreshold_;
      }
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
       * @param value The timeSeriesCompactionLevelThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionLevelThreshold(long value) {

        timeSeriesCompactionLevelThreshold_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 33 [default = 1];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionLevelThreshold() {
        bitField0_ = (bitField0_ & ~0x20000000);
        timeSeriesCompactionLevelThreshold_ = 1L;
        onChanged();
        return this;
      }

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

        indexId_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * For cloud
       * </pre>
       *
       * <code>optional int64 index_id = 1000;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndexId() {
        bitField0_ = (bitField0_ & ~0x40000000);
        indexId_ = 0L;
        onChanged();
        return this;
      }

      private boolean isInMemory_ ;
      /**
       * <code>optional bool is_in_memory = 1001;</code>
       * @return Whether the isInMemory field is set.
       */
      @java.lang.Override
      public boolean hasIsInMemory() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <code>optional bool is_in_memory = 1001;</code>
       * @return The isInMemory.
       */
      @java.lang.Override
      public boolean getIsInMemory() {
        return isInMemory_;
      }
      /**
       * <code>optional bool is_in_memory = 1001;</code>
       * @param value The isInMemory to set.
       * @return This builder for chaining.
       */
      public Builder setIsInMemory(boolean value) {

        isInMemory_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_in_memory = 1001;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsInMemory() {
        bitField0_ = (bitField0_ & ~0x80000000);
        isInMemory_ = false;
        onChanged();
        return this;
      }

      private boolean isPersistent_ ;
      /**
       * <code>optional bool is_persistent = 1002;</code>
       * @return Whether the isPersistent field is set.
       */
      @java.lang.Override
      public boolean hasIsPersistent() {
        return ((bitField1_ & 0x00000001) != 0);
      }
      /**
       * <code>optional bool is_persistent = 1002;</code>
       * @return The isPersistent.
       */
      @java.lang.Override
      public boolean getIsPersistent() {
        return isPersistent_;
      }
      /**
       * <code>optional bool is_persistent = 1002;</code>
       * @param value The isPersistent to set.
       * @return This builder for chaining.
       */
      public Builder setIsPersistent(boolean value) {

        isPersistent_ = value;
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_persistent = 1002;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsPersistent() {
        bitField1_ = (bitField1_ & ~0x00000001);
        isPersistent_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object tableName_ = "";
      /**
       * <code>optional string table_name = 1003;</code>
       * @return Whether the tableName field is set.
       */
      public boolean hasTableName() {
        return ((bitField1_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string table_name = 1003;</code>
       * @return The tableName.
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        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()) {
            tableName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string table_name = 1003;</code>
       * @return The bytes for tableName.
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string table_name = 1003;</code>
       * @param value The tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tableName_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional string table_name = 1003;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableName() {
        tableName_ = getDefaultInstance().getTableName();
        bitField1_ = (bitField1_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>optional string table_name = 1003;</code>
       * @param value The bytes for tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        tableName_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }

      private long ttlSeconds_ ;
      /**
       * <code>optional int64 ttl_seconds = 1004;</code>
       * @return Whether the ttlSeconds field is set.
       */
      @java.lang.Override
      public boolean hasTtlSeconds() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 ttl_seconds = 1004;</code>
       * @return The ttlSeconds.
       */
      @java.lang.Override
      public long getTtlSeconds() {
        return ttlSeconds_;
      }
      /**
       * <code>optional int64 ttl_seconds = 1004;</code>
       * @param value The ttlSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setTtlSeconds(long value) {

        ttlSeconds_ = value;
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 ttl_seconds = 1004;</code>
       * @return This builder for chaining.
       */
      public Builder clearTtlSeconds() {
        bitField1_ = (bitField1_ & ~0x00000004);
        ttlSeconds_ = 0L;
        onChanged();
        return this;
      }

      private int schemaVersion_ ;
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 1005;</code>
       * @return Whether the schemaVersion field is set.
       */
      @java.lang.Override
      public boolean hasSchemaVersion() {
        return ((bitField1_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 1005;</code>
       * @return The schemaVersion.
       */
      @java.lang.Override
      public int getSchemaVersion() {
        return schemaVersion_;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 1005;</code>
       * @param value The schemaVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaVersion(int value) {

        schemaVersion_ = value;
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 1005;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaVersion() {
        bitField1_ = (bitField1_ & ~0x00000008);
        schemaVersion_ = 0;
        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.TabletMetaPB)
    }

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

    public static org.apache.doris.proto.OlapFile.TabletMetaPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TabletMetaPB>
        PARSER = new com.google.protobuf.AbstractParser<TabletMetaPB>() {
      @java.lang.Override
      public TabletMetaPB 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<TabletMetaPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return Whether the tableId field is set.
     */
    boolean hasTableId();
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return The tableId.
     */
    long getTableId();

    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    boolean hasPartitionId();
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    long getPartitionId();

    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    boolean hasTabletId();
    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    long getTabletId();

    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return Whether the schemaHash field is set.
     */
    boolean hasSchemaHash();
    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return The schemaHash.
     */
    int getSchemaHash();

    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return Whether the shardId field is set.
     */
    boolean hasShardId();
    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return The shardId.
     */
    int getShardId();

    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return Whether the creationTime field is set.
     */
    boolean hasCreationTime();
    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return The creationTime.
     */
    long getCreationTime();

    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return Whether the cumulativeLayerPoint field is set.
     */
    boolean hasCumulativeLayerPoint();
    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return The cumulativeLayerPoint.
     */
    long getCumulativeLayerPoint();

    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return Whether the tabletState field is set.
     */
    boolean hasTabletState();
    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return The tabletState.
     */
    org.apache.doris.proto.OlapFile.TabletStatePB getTabletState();

    /**
     * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
     * @return Whether the schema field is set.
     */
    boolean hasSchema();
    /**
     * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
     * @return The schema.
     */
    org.apache.doris.proto.OlapFile.TabletSchemaCloudPB getSchema();
    /**
     * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
     */
    org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder getSchemaOrBuilder();

    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> 
        getRsMetasList();
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getRsMetas(int index);
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    int getRsMetasCount();
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
        getRsMetasOrBuilderList();
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getRsMetasOrBuilder(
        int index);

    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> 
        getIncRsMetasList();
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getIncRsMetas(int index);
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    int getIncRsMetasCount();
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
        getIncRsMetasOrBuilderList();
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getIncRsMetasOrBuilder(
        int index);

    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return Whether the alterTask field is set.
     */
    boolean hasAlterTask();
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return The alterTask.
     */
    org.apache.doris.proto.OlapFile.AlterTabletPB getAlterTask();
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     */
    org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder getAlterTaskOrBuilder();

    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return Whether the inRestoreMode field is set.
     */
    boolean hasInRestoreMode();
    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return The inRestoreMode.
     */
    boolean getInRestoreMode();

    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return Whether the tabletUid field is set.
     */
    boolean hasTabletUid();
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return The tabletUid.
     */
    org.apache.doris.proto.Types.PUniqueId getTabletUid();
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder();

    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return Whether the endRowsetId field is set.
     */
    boolean hasEndRowsetId();
    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return The endRowsetId.
     */
    long getEndRowsetId();

    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return Whether the preferredRowsetType field is set.
     */
    boolean hasPreferredRowsetType();
    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return The preferredRowsetType.
     */
    org.apache.doris.proto.OlapFile.RowsetTypePB getPreferredRowsetType();

    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return Whether the tabletType field is set.
     */
    boolean hasTabletType();
    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return The tabletType.
     */
    org.apache.doris.proto.OlapFile.TabletTypePB getTabletType();

    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> 
        getStaleRsMetasList();
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getStaleRsMetas(int index);
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    int getStaleRsMetasCount();
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
        getStaleRsMetasOrBuilderList();
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getStaleRsMetasOrBuilder(
        int index);

    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return Whether the replicaId field is set.
     */
    boolean hasReplicaId();
    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return The replicaId.
     */
    long getReplicaId();

    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return Whether the deleteBitmap field is set.
     */
    boolean hasDeleteBitmap();
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return The deleteBitmap.
     */
    org.apache.doris.proto.OlapFile.DeleteBitmapPB getDeleteBitmap();
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     */
    org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder getDeleteBitmapOrBuilder();

    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return Whether the enableUniqueKeyMergeOnWrite field is set.
     */
    boolean hasEnableUniqueKeyMergeOnWrite();
    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return The enableUniqueKeyMergeOnWrite.
     */
    boolean getEnableUniqueKeyMergeOnWrite();

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

    /**
     * <code>optional bool is_in_memory = 26 [default = false];</code>
     * @return Whether the isInMemory field is set.
     */
    boolean hasIsInMemory();
    /**
     * <code>optional bool is_in_memory = 26 [default = false];</code>
     * @return The isInMemory.
     */
    boolean getIsInMemory();

    /**
     * <code>optional bool is_persistent = 27 [default = false];</code>
     * @return Whether the isPersistent field is set.
     */
    boolean hasIsPersistent();
    /**
     * <code>optional bool is_persistent = 27 [default = false];</code>
     * @return The isPersistent.
     */
    boolean getIsPersistent();

    /**
     * <code>optional int64 storage_policy_id = 28;</code>
     * @return Whether the storagePolicyId field is set.
     */
    boolean hasStoragePolicyId();
    /**
     * <code>optional int64 storage_policy_id = 28;</code>
     * @return The storagePolicyId.
     */
    long getStoragePolicyId();

    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
     * @return Whether the cooldownMetaId field is set.
     */
    boolean hasCooldownMetaId();
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
     * @return The cooldownMetaId.
     */
    org.apache.doris.proto.Types.PUniqueId getCooldownMetaId();
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
     */
    org.apache.doris.proto.Types.PUniqueIdOrBuilder getCooldownMetaIdOrBuilder();

    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
     * @return Whether the binlogConfig field is set.
     */
    boolean hasBinlogConfig();
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
     * @return The binlogConfig.
     */
    org.apache.doris.proto.OlapFile.BinlogConfigPB getBinlogConfig();
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
     */
    org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder getBinlogConfigOrBuilder();

    /**
     * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
     * @return Whether the compactionPolicy field is set.
     */
    boolean hasCompactionPolicy();
    /**
     * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
     * @return The compactionPolicy.
     */
    java.lang.String getCompactionPolicy();
    /**
     * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
     * @return The bytes for compactionPolicy.
     */
    com.google.protobuf.ByteString
        getCompactionPolicyBytes();

    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
     * @return Whether the timeSeriesCompactionGoalSizeMbytes field is set.
     */
    boolean hasTimeSeriesCompactionGoalSizeMbytes();
    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
     * @return The timeSeriesCompactionGoalSizeMbytes.
     */
    long getTimeSeriesCompactionGoalSizeMbytes();

    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
     * @return Whether the timeSeriesCompactionFileCountThreshold field is set.
     */
    boolean hasTimeSeriesCompactionFileCountThreshold();
    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
     * @return The timeSeriesCompactionFileCountThreshold.
     */
    long getTimeSeriesCompactionFileCountThreshold();

    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
     * @return Whether the timeSeriesCompactionTimeThresholdSeconds field is set.
     */
    boolean hasTimeSeriesCompactionTimeThresholdSeconds();
    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
     * @return The timeSeriesCompactionTimeThresholdSeconds.
     */
    long getTimeSeriesCompactionTimeThresholdSeconds();

    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
     * @return Whether the timeSeriesCompactionEmptyRowsetsThreshold field is set.
     */
    boolean hasTimeSeriesCompactionEmptyRowsetsThreshold();
    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
     * @return The timeSeriesCompactionEmptyRowsetsThreshold.
     */
    long getTimeSeriesCompactionEmptyRowsetsThreshold();

    /**
     * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
     * @return Whether the timeSeriesCompactionLevelThreshold field is set.
     */
    boolean hasTimeSeriesCompactionLevelThreshold();
    /**
     * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
     * @return The timeSeriesCompactionLevelThreshold.
     */
    long getTimeSeriesCompactionLevelThreshold();

    /**
     * <pre>
     * Use for selectdb-cloud
     * </pre>
     *
     * <code>optional string table_name = 101;</code>
     * @return Whether the tableName field is set.
     */
    boolean hasTableName();
    /**
     * <pre>
     * Use for selectdb-cloud
     * </pre>
     *
     * <code>optional string table_name = 101;</code>
     * @return The tableName.
     */
    java.lang.String getTableName();
    /**
     * <pre>
     * Use for selectdb-cloud
     * </pre>
     *
     * <code>optional string table_name = 101;</code>
     * @return The bytes for tableName.
     */
    com.google.protobuf.ByteString
        getTableNameBytes();

    /**
     * <code>optional int64 ttl_seconds = 102;</code>
     * @return Whether the ttlSeconds field is set.
     */
    boolean hasTtlSeconds();
    /**
     * <code>optional int64 ttl_seconds = 102;</code>
     * @return The ttlSeconds.
     */
    long getTtlSeconds();

    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 103;</code>
     * @return Whether the schemaVersion field is set.
     */
    boolean hasSchemaVersion();
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 103;</code>
     * @return The schemaVersion.
     */
    int getSchemaVersion();
  }
  /**
   * Protobuf type {@code doris.TabletMetaCloudPB}
   */
  public static final class TabletMetaCloudPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.TabletMetaCloudPB)
      TabletMetaCloudPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TabletMetaCloudPB.newBuilder() to construct.
    private TabletMetaCloudPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TabletMetaCloudPB() {
      tabletState_ = 0;
      rsMetas_ = java.util.Collections.emptyList();
      incRsMetas_ = java.util.Collections.emptyList();
      preferredRowsetType_ = 0;
      tabletType_ = 0;
      staleRsMetas_ = java.util.Collections.emptyList();
      compactionPolicy_ = "size_based";
      timeSeriesCompactionGoalSizeMbytes_ = 1024L;
      timeSeriesCompactionFileCountThreshold_ = 2000L;
      timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
      timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
      timeSeriesCompactionLevelThreshold_ = 1L;
      tableName_ = "";
    }

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

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

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

    private int bitField0_;
    private int bitField1_;
    public static final int TABLE_ID_FIELD_NUMBER = 1;
    private long tableId_ = 0L;
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return Whether the tableId field is set.
     */
    @java.lang.Override
    public boolean hasTableId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 table_id = 1;</code>
     * @return The tableId.
     */
    @java.lang.Override
    public long getTableId() {
      return tableId_;
    }

    public static final int PARTITION_ID_FIELD_NUMBER = 2;
    private long partitionId_ = 0L;
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return Whether the partitionId field is set.
     */
    @java.lang.Override
    public boolean hasPartitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * ?
     * </pre>
     *
     * <code>optional int64 partition_id = 2;</code>
     * @return The partitionId.
     */
    @java.lang.Override
    public long getPartitionId() {
      return partitionId_;
    }

    public static final int TABLET_ID_FIELD_NUMBER = 3;
    private long tabletId_ = 0L;
    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return Whether the tabletId field is set.
     */
    @java.lang.Override
    public boolean hasTabletId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.tablet_id
     * </pre>
     *
     * <code>optional int64 tablet_id = 3;</code>
     * @return The tabletId.
     */
    @java.lang.Override
    public long getTabletId() {
      return tabletId_;
    }

    public static final int SCHEMA_HASH_FIELD_NUMBER = 4;
    private int schemaHash_ = 0;
    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return Whether the schemaHash field is set.
     */
    @java.lang.Override
    public boolean hasSchemaHash() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.schema_hash
     * </pre>
     *
     * <code>optional int32 schema_hash = 4;</code>
     * @return The schemaHash.
     */
    @java.lang.Override
    public int getSchemaHash() {
      return schemaHash_;
    }

    public static final int SHARD_ID_FIELD_NUMBER = 5;
    private int shardId_ = 0;
    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return Whether the shardId field is set.
     */
    @java.lang.Override
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.shard
     * </pre>
     *
     * <code>optional int32 shard_id = 5;</code>
     * @return The shardId.
     */
    @java.lang.Override
    public int getShardId() {
      return shardId_;
    }

    public static final int CREATION_TIME_FIELD_NUMBER = 6;
    private long creationTime_ = 0L;
    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return Whether the creationTime field is set.
     */
    @java.lang.Override
    public boolean hasCreationTime() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.creation_time
     * </pre>
     *
     * <code>optional int64 creation_time = 6;</code>
     * @return The creationTime.
     */
    @java.lang.Override
    public long getCreationTime() {
      return creationTime_;
    }

    public static final int CUMULATIVE_LAYER_POINT_FIELD_NUMBER = 7;
    private long cumulativeLayerPoint_ = 0L;
    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return Whether the cumulativeLayerPoint field is set.
     */
    @java.lang.Override
    public boolean hasCumulativeLayerPoint() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * OlapHeaderMessage.cumulative_layer_point
     * </pre>
     *
     * <code>optional int64 cumulative_layer_point = 7;</code>
     * @return The cumulativeLayerPoint.
     */
    @java.lang.Override
    public long getCumulativeLayerPoint() {
      return cumulativeLayerPoint_;
    }

    public static final int TABLET_STATE_FIELD_NUMBER = 8;
    private int tabletState_ = 0;
    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return Whether the tabletState field is set.
     */
    @java.lang.Override public boolean hasTabletState() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
     * @return The tabletState.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.TabletStatePB getTabletState() {
      org.apache.doris.proto.OlapFile.TabletStatePB result = org.apache.doris.proto.OlapFile.TabletStatePB.forNumber(tabletState_);
      return result == null ? org.apache.doris.proto.OlapFile.TabletStatePB.PB_NOTREADY : result;
    }

    public static final int SCHEMA_FIELD_NUMBER = 9;
    private org.apache.doris.proto.OlapFile.TabletSchemaCloudPB schema_;
    /**
     * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
     * @return Whether the schema field is set.
     */
    @java.lang.Override
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
     * @return The schema.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaCloudPB getSchema() {
      return schema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : schema_;
    }
    /**
     * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder getSchemaOrBuilder() {
      return schema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : schema_;
    }

    public static final int RS_METAS_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> rsMetas_;
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> getRsMetasList() {
      return rsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
        getRsMetasOrBuilderList() {
      return rsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public int getRsMetasCount() {
      return rsMetas_.size();
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getRsMetas(int index) {
      return rsMetas_.get(index);
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getRsMetasOrBuilder(
        int index) {
      return rsMetas_.get(index);
    }

    public static final int INC_RS_METAS_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> incRsMetas_;
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> getIncRsMetasList() {
      return incRsMetas_;
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
        getIncRsMetasOrBuilderList() {
      return incRsMetas_;
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public int getIncRsMetasCount() {
      return incRsMetas_.size();
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getIncRsMetas(int index) {
      return incRsMetas_.get(index);
    }
    /**
     * <pre>
     * &#64;Deprecated
     * </pre>
     *
     * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getIncRsMetasOrBuilder(
        int index) {
      return incRsMetas_.get(index);
    }

    public static final int ALTER_TASK_FIELD_NUMBER = 12;
    private org.apache.doris.proto.OlapFile.AlterTabletPB alterTask_;
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return Whether the alterTask field is set.
     */
    @java.lang.Override
    public boolean hasAlterTask() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     * @return The alterTask.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.AlterTabletPB getAlterTask() {
      return alterTask_ == null ? org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
    }
    /**
     * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder getAlterTaskOrBuilder() {
      return alterTask_ == null ? org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
    }

    public static final int IN_RESTORE_MODE_FIELD_NUMBER = 13;
    private boolean inRestoreMode_ = false;
    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return Whether the inRestoreMode field is set.
     */
    @java.lang.Override
    public boolean hasInRestoreMode() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * if true, this tablet will not do compaction,
     * and does not create init version
     * </pre>
     *
     * <code>optional bool in_restore_mode = 13 [default = false];</code>
     * @return The inRestoreMode.
     */
    @java.lang.Override
    public boolean getInRestoreMode() {
      return inRestoreMode_;
    }

    public static final int TABLET_UID_FIELD_NUMBER = 14;
    private org.apache.doris.proto.Types.PUniqueId tabletUid_;
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return Whether the tabletUid field is set.
     */
    @java.lang.Override
    public boolean hasTabletUid() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     * @return The tabletUid.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }
    /**
     * <pre>
     * a uniqued id to identified tablet with same tablet_id and schema hash
     * </pre>
     *
     * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
      return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
    }

    public static final int END_ROWSET_ID_FIELD_NUMBER = 15;
    private long endRowsetId_ = 0L;
    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return Whether the endRowsetId field is set.
     */
    @java.lang.Override
    public boolean hasEndRowsetId() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional int64 end_rowset_id = 15;</code>
     * @return The endRowsetId.
     */
    @java.lang.Override
    public long getEndRowsetId() {
      return endRowsetId_;
    }

    public static final int PREFERRED_ROWSET_TYPE_FIELD_NUMBER = 16;
    private int preferredRowsetType_ = 0;
    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return Whether the preferredRowsetType field is set.
     */
    @java.lang.Override public boolean hasPreferredRowsetType() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
     * @return The preferredRowsetType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.RowsetTypePB getPreferredRowsetType() {
      org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(preferredRowsetType_);
      return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
    }

    public static final int TABLET_TYPE_FIELD_NUMBER = 17;
    private int tabletType_ = 0;
    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return Whether the tabletType field is set.
     */
    @java.lang.Override public boolean hasTabletType() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
     * @return The tabletType.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.TabletTypePB getTabletType() {
      org.apache.doris.proto.OlapFile.TabletTypePB result = org.apache.doris.proto.OlapFile.TabletTypePB.forNumber(tabletType_);
      return result == null ? org.apache.doris.proto.OlapFile.TabletTypePB.TABLET_TYPE_DISK : result;
    }

    public static final int STALE_RS_METAS_FIELD_NUMBER = 18;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> staleRsMetas_;
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> getStaleRsMetasList() {
      return staleRsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
        getStaleRsMetasOrBuilderList() {
      return staleRsMetas_;
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public int getStaleRsMetasCount() {
      return staleRsMetas_.size();
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getStaleRsMetas(int index) {
      return staleRsMetas_.get(index);
    }
    /**
     * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getStaleRsMetasOrBuilder(
        int index) {
      return staleRsMetas_.get(index);
    }

    public static final int REPLICA_ID_FIELD_NUMBER = 21;
    private long replicaId_ = 0L;
    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return Whether the replicaId field is set.
     */
    @java.lang.Override
    public boolean hasReplicaId() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * optional StorageMediumPB storage_medium = 19 [default = HDD];
     * optional string remote_storage_name = 20;
     * </pre>
     *
     * <code>optional int64 replica_id = 21 [default = 0];</code>
     * @return The replicaId.
     */
    @java.lang.Override
    public long getReplicaId() {
      return replicaId_;
    }

    public static final int DELETE_BITMAP_FIELD_NUMBER = 23;
    private org.apache.doris.proto.OlapFile.DeleteBitmapPB deleteBitmap_;
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return Whether the deleteBitmap field is set.
     */
    @java.lang.Override
    public boolean hasDeleteBitmap() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     * @return The deleteBitmap.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeleteBitmapPB getDeleteBitmap() {
      return deleteBitmap_ == null ? org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
    }
    /**
     * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder getDeleteBitmapOrBuilder() {
      return deleteBitmap_ == null ? org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
    }

    public static final int ENABLE_UNIQUE_KEY_MERGE_ON_WRITE_FIELD_NUMBER = 24;
    private boolean enableUniqueKeyMergeOnWrite_ = false;
    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return Whether the enableUniqueKeyMergeOnWrite field is set.
     */
    @java.lang.Override
    public boolean hasEnableUniqueKeyMergeOnWrite() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * Use primary key index to speed up tabel unique key model
     * </pre>
     *
     * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
     * @return The enableUniqueKeyMergeOnWrite.
     */
    @java.lang.Override
    public boolean getEnableUniqueKeyMergeOnWrite() {
      return enableUniqueKeyMergeOnWrite_;
    }

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

    public static final int IS_IN_MEMORY_FIELD_NUMBER = 26;
    private boolean isInMemory_ = false;
    /**
     * <code>optional bool is_in_memory = 26 [default = false];</code>
     * @return Whether the isInMemory field is set.
     */
    @java.lang.Override
    public boolean hasIsInMemory() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional bool is_in_memory = 26 [default = false];</code>
     * @return The isInMemory.
     */
    @java.lang.Override
    public boolean getIsInMemory() {
      return isInMemory_;
    }

    public static final int IS_PERSISTENT_FIELD_NUMBER = 27;
    private boolean isPersistent_ = false;
    /**
     * <code>optional bool is_persistent = 27 [default = false];</code>
     * @return Whether the isPersistent field is set.
     */
    @java.lang.Override
    public boolean hasIsPersistent() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional bool is_persistent = 27 [default = false];</code>
     * @return The isPersistent.
     */
    @java.lang.Override
    public boolean getIsPersistent() {
      return isPersistent_;
    }

    public static final int STORAGE_POLICY_ID_FIELD_NUMBER = 28;
    private long storagePolicyId_ = 0L;
    /**
     * <code>optional int64 storage_policy_id = 28;</code>
     * @return Whether the storagePolicyId field is set.
     */
    @java.lang.Override
    public boolean hasStoragePolicyId() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional int64 storage_policy_id = 28;</code>
     * @return The storagePolicyId.
     */
    @java.lang.Override
    public long getStoragePolicyId() {
      return storagePolicyId_;
    }

    public static final int COOLDOWN_META_ID_FIELD_NUMBER = 29;
    private org.apache.doris.proto.Types.PUniqueId cooldownMetaId_;
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
     * @return Whether the cooldownMetaId field is set.
     */
    @java.lang.Override
    public boolean hasCooldownMetaId() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
     * @return The cooldownMetaId.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueId getCooldownMetaId() {
      return cooldownMetaId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
    }
    /**
     * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PUniqueIdOrBuilder getCooldownMetaIdOrBuilder() {
      return cooldownMetaId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
    }

    public static final int BINLOG_CONFIG_FIELD_NUMBER = 30;
    private org.apache.doris.proto.OlapFile.BinlogConfigPB binlogConfig_;
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
     * @return Whether the binlogConfig field is set.
     */
    @java.lang.Override
    public boolean hasBinlogConfig() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
     * @return The binlogConfig.
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.BinlogConfigPB getBinlogConfig() {
      return binlogConfig_ == null ? org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
    }
    /**
     * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder getBinlogConfigOrBuilder() {
      return binlogConfig_ == null ? org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
    }

    public static final int COMPACTION_POLICY_FIELD_NUMBER = 31;
    @SuppressWarnings("serial")
    private volatile java.lang.Object compactionPolicy_ = "size_based";
    /**
     * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
     * @return Whether the compactionPolicy field is set.
     */
    @java.lang.Override
    public boolean hasCompactionPolicy() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
     * @return The compactionPolicy.
     */
    @java.lang.Override
    public java.lang.String getCompactionPolicy() {
      java.lang.Object ref = compactionPolicy_;
      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()) {
          compactionPolicy_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
     * @return The bytes for compactionPolicy.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCompactionPolicyBytes() {
      java.lang.Object ref = compactionPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        compactionPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES_FIELD_NUMBER = 32;
    private long timeSeriesCompactionGoalSizeMbytes_ = 1024L;
    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
     * @return Whether the timeSeriesCompactionGoalSizeMbytes field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionGoalSizeMbytes() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
     * @return The timeSeriesCompactionGoalSizeMbytes.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionGoalSizeMbytes() {
      return timeSeriesCompactionGoalSizeMbytes_;
    }

    public static final int TIME_SERIES_COMPACTION_FILE_COUNT_THRESHOLD_FIELD_NUMBER = 33;
    private long timeSeriesCompactionFileCountThreshold_ = 2000L;
    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
     * @return Whether the timeSeriesCompactionFileCountThreshold field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionFileCountThreshold() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
     * @return The timeSeriesCompactionFileCountThreshold.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionFileCountThreshold() {
      return timeSeriesCompactionFileCountThreshold_;
    }

    public static final int TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS_FIELD_NUMBER = 34;
    private long timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
     * @return Whether the timeSeriesCompactionTimeThresholdSeconds field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionTimeThresholdSeconds() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
     * @return The timeSeriesCompactionTimeThresholdSeconds.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionTimeThresholdSeconds() {
      return timeSeriesCompactionTimeThresholdSeconds_;
    }

    public static final int TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_FIELD_NUMBER = 37;
    private long timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
     * @return Whether the timeSeriesCompactionEmptyRowsetsThreshold field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionEmptyRowsetsThreshold() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
     * @return The timeSeriesCompactionEmptyRowsetsThreshold.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionEmptyRowsetsThreshold() {
      return timeSeriesCompactionEmptyRowsetsThreshold_;
    }

    public static final int TIME_SERIES_COMPACTION_LEVEL_THRESHOLD_FIELD_NUMBER = 38;
    private long timeSeriesCompactionLevelThreshold_ = 1L;
    /**
     * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
     * @return Whether the timeSeriesCompactionLevelThreshold field is set.
     */
    @java.lang.Override
    public boolean hasTimeSeriesCompactionLevelThreshold() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
     * @return The timeSeriesCompactionLevelThreshold.
     */
    @java.lang.Override
    public long getTimeSeriesCompactionLevelThreshold() {
      return timeSeriesCompactionLevelThreshold_;
    }

    public static final int TABLE_NAME_FIELD_NUMBER = 101;
    @SuppressWarnings("serial")
    private volatile java.lang.Object tableName_ = "";
    /**
     * <pre>
     * Use for selectdb-cloud
     * </pre>
     *
     * <code>optional string table_name = 101;</code>
     * @return Whether the tableName field is set.
     */
    @java.lang.Override
    public boolean hasTableName() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <pre>
     * Use for selectdb-cloud
     * </pre>
     *
     * <code>optional string table_name = 101;</code>
     * @return The tableName.
     */
    @java.lang.Override
    public java.lang.String getTableName() {
      java.lang.Object ref = tableName_;
      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()) {
          tableName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Use for selectdb-cloud
     * </pre>
     *
     * <code>optional string table_name = 101;</code>
     * @return The bytes for tableName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTableNameBytes() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tableName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TTL_SECONDS_FIELD_NUMBER = 102;
    private long ttlSeconds_ = 0L;
    /**
     * <code>optional int64 ttl_seconds = 102;</code>
     * @return Whether the ttlSeconds field is set.
     */
    @java.lang.Override
    public boolean hasTtlSeconds() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <code>optional int64 ttl_seconds = 102;</code>
     * @return The ttlSeconds.
     */
    @java.lang.Override
    public long getTtlSeconds() {
      return ttlSeconds_;
    }

    public static final int SCHEMA_VERSION_FIELD_NUMBER = 103;
    private int schemaVersion_ = 0;
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 103;</code>
     * @return Whether the schemaVersion field is set.
     */
    @java.lang.Override
    public boolean hasSchemaVersion() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * index_id, schema_version -&gt; schema
     * </pre>
     *
     * <code>optional int32 schema_version = 103;</code>
     * @return The schemaVersion.
     */
    @java.lang.Override
    public int getSchemaVersion() {
      return schemaVersion_;
    }

    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 (hasSchema()) {
        if (!getSchema().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getRsMetasCount(); i++) {
        if (!getRsMetas(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getIncRsMetasCount(); i++) {
        if (!getIncRsMetas(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAlterTask()) {
        if (!getAlterTask().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTabletUid()) {
        if (!getTabletUid().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getStaleRsMetasCount(); i++) {
        if (!getStaleRsMetas(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasCooldownMetaId()) {
        if (!getCooldownMetaId().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.writeInt64(1, tableId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, schemaHash_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, shardId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt64(6, creationTime_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt64(7, cumulativeLayerPoint_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeEnum(8, tabletState_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeMessage(9, getSchema());
      }
      for (int i = 0; i < rsMetas_.size(); i++) {
        output.writeMessage(10, rsMetas_.get(i));
      }
      for (int i = 0; i < incRsMetas_.size(); i++) {
        output.writeMessage(11, incRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeMessage(12, getAlterTask());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeBool(13, inRestoreMode_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeMessage(14, getTabletUid());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt64(15, endRowsetId_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeEnum(16, preferredRowsetType_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeEnum(17, tabletType_);
      }
      for (int i = 0; i < staleRsMetas_.size(); i++) {
        output.writeMessage(18, staleRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeInt64(21, replicaId_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeMessage(23, getDeleteBitmap());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeBool(24, enableUniqueKeyMergeOnWrite_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeInt64(25, indexId_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeBool(26, isInMemory_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeBool(27, isPersistent_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeInt64(28, storagePolicyId_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeMessage(29, getCooldownMetaId());
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeMessage(30, getBinlogConfig());
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 31, compactionPolicy_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        output.writeInt64(32, timeSeriesCompactionGoalSizeMbytes_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        output.writeInt64(33, timeSeriesCompactionFileCountThreshold_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        output.writeInt64(34, timeSeriesCompactionTimeThresholdSeconds_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        output.writeInt64(37, timeSeriesCompactionEmptyRowsetsThreshold_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        output.writeInt64(38, timeSeriesCompactionLevelThreshold_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 101, tableName_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        output.writeInt64(102, ttlSeconds_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        output.writeInt32(103, schemaVersion_);
      }
      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, tableId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, partitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, tabletId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, schemaHash_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, shardId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, creationTime_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, cumulativeLayerPoint_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(8, tabletState_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getSchema());
      }
      for (int i = 0; i < rsMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, rsMetas_.get(i));
      }
      for (int i = 0; i < incRsMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, incRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getAlterTask());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, inRestoreMode_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getTabletUid());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(15, endRowsetId_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(16, preferredRowsetType_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(17, tabletType_);
      }
      for (int i = 0; i < staleRsMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, staleRsMetas_.get(i));
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(21, replicaId_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, getDeleteBitmap());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(24, enableUniqueKeyMergeOnWrite_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(25, indexId_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(26, isInMemory_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(27, isPersistent_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(28, storagePolicyId_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, getCooldownMetaId());
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(30, getBinlogConfig());
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, compactionPolicy_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(32, timeSeriesCompactionGoalSizeMbytes_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(33, timeSeriesCompactionFileCountThreshold_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(34, timeSeriesCompactionTimeThresholdSeconds_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(37, timeSeriesCompactionEmptyRowsetsThreshold_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(38, timeSeriesCompactionLevelThreshold_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(101, tableName_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(102, ttlSeconds_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(103, schemaVersion_);
      }
      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.OlapFile.TabletMetaCloudPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.TabletMetaCloudPB other = (org.apache.doris.proto.OlapFile.TabletMetaCloudPB) obj;

      if (hasTableId() != other.hasTableId()) return false;
      if (hasTableId()) {
        if (getTableId()
            != other.getTableId()) return false;
      }
      if (hasPartitionId() != other.hasPartitionId()) return false;
      if (hasPartitionId()) {
        if (getPartitionId()
            != other.getPartitionId()) return false;
      }
      if (hasTabletId() != other.hasTabletId()) return false;
      if (hasTabletId()) {
        if (getTabletId()
            != other.getTabletId()) return false;
      }
      if (hasSchemaHash() != other.hasSchemaHash()) return false;
      if (hasSchemaHash()) {
        if (getSchemaHash()
            != other.getSchemaHash()) return false;
      }
      if (hasShardId() != other.hasShardId()) return false;
      if (hasShardId()) {
        if (getShardId()
            != other.getShardId()) return false;
      }
      if (hasCreationTime() != other.hasCreationTime()) return false;
      if (hasCreationTime()) {
        if (getCreationTime()
            != other.getCreationTime()) return false;
      }
      if (hasCumulativeLayerPoint() != other.hasCumulativeLayerPoint()) return false;
      if (hasCumulativeLayerPoint()) {
        if (getCumulativeLayerPoint()
            != other.getCumulativeLayerPoint()) return false;
      }
      if (hasTabletState() != other.hasTabletState()) return false;
      if (hasTabletState()) {
        if (tabletState_ != other.tabletState_) return false;
      }
      if (hasSchema() != other.hasSchema()) return false;
      if (hasSchema()) {
        if (!getSchema()
            .equals(other.getSchema())) return false;
      }
      if (!getRsMetasList()
          .equals(other.getRsMetasList())) return false;
      if (!getIncRsMetasList()
          .equals(other.getIncRsMetasList())) return false;
      if (hasAlterTask() != other.hasAlterTask()) return false;
      if (hasAlterTask()) {
        if (!getAlterTask()
            .equals(other.getAlterTask())) return false;
      }
      if (hasInRestoreMode() != other.hasInRestoreMode()) return false;
      if (hasInRestoreMode()) {
        if (getInRestoreMode()
            != other.getInRestoreMode()) return false;
      }
      if (hasTabletUid() != other.hasTabletUid()) return false;
      if (hasTabletUid()) {
        if (!getTabletUid()
            .equals(other.getTabletUid())) return false;
      }
      if (hasEndRowsetId() != other.hasEndRowsetId()) return false;
      if (hasEndRowsetId()) {
        if (getEndRowsetId()
            != other.getEndRowsetId()) return false;
      }
      if (hasPreferredRowsetType() != other.hasPreferredRowsetType()) return false;
      if (hasPreferredRowsetType()) {
        if (preferredRowsetType_ != other.preferredRowsetType_) return false;
      }
      if (hasTabletType() != other.hasTabletType()) return false;
      if (hasTabletType()) {
        if (tabletType_ != other.tabletType_) return false;
      }
      if (!getStaleRsMetasList()
          .equals(other.getStaleRsMetasList())) return false;
      if (hasReplicaId() != other.hasReplicaId()) return false;
      if (hasReplicaId()) {
        if (getReplicaId()
            != other.getReplicaId()) return false;
      }
      if (hasDeleteBitmap() != other.hasDeleteBitmap()) return false;
      if (hasDeleteBitmap()) {
        if (!getDeleteBitmap()
            .equals(other.getDeleteBitmap())) return false;
      }
      if (hasEnableUniqueKeyMergeOnWrite() != other.hasEnableUniqueKeyMergeOnWrite()) return false;
      if (hasEnableUniqueKeyMergeOnWrite()) {
        if (getEnableUniqueKeyMergeOnWrite()
            != other.getEnableUniqueKeyMergeOnWrite()) return false;
      }
      if (hasIndexId() != other.hasIndexId()) return false;
      if (hasIndexId()) {
        if (getIndexId()
            != other.getIndexId()) return false;
      }
      if (hasIsInMemory() != other.hasIsInMemory()) return false;
      if (hasIsInMemory()) {
        if (getIsInMemory()
            != other.getIsInMemory()) return false;
      }
      if (hasIsPersistent() != other.hasIsPersistent()) return false;
      if (hasIsPersistent()) {
        if (getIsPersistent()
            != other.getIsPersistent()) return false;
      }
      if (hasStoragePolicyId() != other.hasStoragePolicyId()) return false;
      if (hasStoragePolicyId()) {
        if (getStoragePolicyId()
            != other.getStoragePolicyId()) return false;
      }
      if (hasCooldownMetaId() != other.hasCooldownMetaId()) return false;
      if (hasCooldownMetaId()) {
        if (!getCooldownMetaId()
            .equals(other.getCooldownMetaId())) return false;
      }
      if (hasBinlogConfig() != other.hasBinlogConfig()) return false;
      if (hasBinlogConfig()) {
        if (!getBinlogConfig()
            .equals(other.getBinlogConfig())) return false;
      }
      if (hasCompactionPolicy() != other.hasCompactionPolicy()) return false;
      if (hasCompactionPolicy()) {
        if (!getCompactionPolicy()
            .equals(other.getCompactionPolicy())) return false;
      }
      if (hasTimeSeriesCompactionGoalSizeMbytes() != other.hasTimeSeriesCompactionGoalSizeMbytes()) return false;
      if (hasTimeSeriesCompactionGoalSizeMbytes()) {
        if (getTimeSeriesCompactionGoalSizeMbytes()
            != other.getTimeSeriesCompactionGoalSizeMbytes()) return false;
      }
      if (hasTimeSeriesCompactionFileCountThreshold() != other.hasTimeSeriesCompactionFileCountThreshold()) return false;
      if (hasTimeSeriesCompactionFileCountThreshold()) {
        if (getTimeSeriesCompactionFileCountThreshold()
            != other.getTimeSeriesCompactionFileCountThreshold()) return false;
      }
      if (hasTimeSeriesCompactionTimeThresholdSeconds() != other.hasTimeSeriesCompactionTimeThresholdSeconds()) return false;
      if (hasTimeSeriesCompactionTimeThresholdSeconds()) {
        if (getTimeSeriesCompactionTimeThresholdSeconds()
            != other.getTimeSeriesCompactionTimeThresholdSeconds()) return false;
      }
      if (hasTimeSeriesCompactionEmptyRowsetsThreshold() != other.hasTimeSeriesCompactionEmptyRowsetsThreshold()) return false;
      if (hasTimeSeriesCompactionEmptyRowsetsThreshold()) {
        if (getTimeSeriesCompactionEmptyRowsetsThreshold()
            != other.getTimeSeriesCompactionEmptyRowsetsThreshold()) return false;
      }
      if (hasTimeSeriesCompactionLevelThreshold() != other.hasTimeSeriesCompactionLevelThreshold()) return false;
      if (hasTimeSeriesCompactionLevelThreshold()) {
        if (getTimeSeriesCompactionLevelThreshold()
            != other.getTimeSeriesCompactionLevelThreshold()) return false;
      }
      if (hasTableName() != other.hasTableName()) return false;
      if (hasTableName()) {
        if (!getTableName()
            .equals(other.getTableName())) return false;
      }
      if (hasTtlSeconds() != other.hasTtlSeconds()) return false;
      if (hasTtlSeconds()) {
        if (getTtlSeconds()
            != other.getTtlSeconds()) return false;
      }
      if (hasSchemaVersion() != other.hasSchemaVersion()) return false;
      if (hasSchemaVersion()) {
        if (getSchemaVersion()
            != other.getSchemaVersion()) 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 (hasTableId()) {
        hash = (37 * hash) + TABLE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTableId());
      }
      if (hasPartitionId()) {
        hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPartitionId());
      }
      if (hasTabletId()) {
        hash = (37 * hash) + TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTabletId());
      }
      if (hasSchemaHash()) {
        hash = (37 * hash) + SCHEMA_HASH_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaHash();
      }
      if (hasShardId()) {
        hash = (37 * hash) + SHARD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getShardId();
      }
      if (hasCreationTime()) {
        hash = (37 * hash) + CREATION_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCreationTime());
      }
      if (hasCumulativeLayerPoint()) {
        hash = (37 * hash) + CUMULATIVE_LAYER_POINT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCumulativeLayerPoint());
      }
      if (hasTabletState()) {
        hash = (37 * hash) + TABLET_STATE_FIELD_NUMBER;
        hash = (53 * hash) + tabletState_;
      }
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      if (getRsMetasCount() > 0) {
        hash = (37 * hash) + RS_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getRsMetasList().hashCode();
      }
      if (getIncRsMetasCount() > 0) {
        hash = (37 * hash) + INC_RS_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getIncRsMetasList().hashCode();
      }
      if (hasAlterTask()) {
        hash = (37 * hash) + ALTER_TASK_FIELD_NUMBER;
        hash = (53 * hash) + getAlterTask().hashCode();
      }
      if (hasInRestoreMode()) {
        hash = (37 * hash) + IN_RESTORE_MODE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getInRestoreMode());
      }
      if (hasTabletUid()) {
        hash = (37 * hash) + TABLET_UID_FIELD_NUMBER;
        hash = (53 * hash) + getTabletUid().hashCode();
      }
      if (hasEndRowsetId()) {
        hash = (37 * hash) + END_ROWSET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getEndRowsetId());
      }
      if (hasPreferredRowsetType()) {
        hash = (37 * hash) + PREFERRED_ROWSET_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + preferredRowsetType_;
      }
      if (hasTabletType()) {
        hash = (37 * hash) + TABLET_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + tabletType_;
      }
      if (getStaleRsMetasCount() > 0) {
        hash = (37 * hash) + STALE_RS_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getStaleRsMetasList().hashCode();
      }
      if (hasReplicaId()) {
        hash = (37 * hash) + REPLICA_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReplicaId());
      }
      if (hasDeleteBitmap()) {
        hash = (37 * hash) + DELETE_BITMAP_FIELD_NUMBER;
        hash = (53 * hash) + getDeleteBitmap().hashCode();
      }
      if (hasEnableUniqueKeyMergeOnWrite()) {
        hash = (37 * hash) + ENABLE_UNIQUE_KEY_MERGE_ON_WRITE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getEnableUniqueKeyMergeOnWrite());
      }
      if (hasIndexId()) {
        hash = (37 * hash) + INDEX_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getIndexId());
      }
      if (hasIsInMemory()) {
        hash = (37 * hash) + IS_IN_MEMORY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsInMemory());
      }
      if (hasIsPersistent()) {
        hash = (37 * hash) + IS_PERSISTENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsPersistent());
      }
      if (hasStoragePolicyId()) {
        hash = (37 * hash) + STORAGE_POLICY_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStoragePolicyId());
      }
      if (hasCooldownMetaId()) {
        hash = (37 * hash) + COOLDOWN_META_ID_FIELD_NUMBER;
        hash = (53 * hash) + getCooldownMetaId().hashCode();
      }
      if (hasBinlogConfig()) {
        hash = (37 * hash) + BINLOG_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getBinlogConfig().hashCode();
      }
      if (hasCompactionPolicy()) {
        hash = (37 * hash) + COMPACTION_POLICY_FIELD_NUMBER;
        hash = (53 * hash) + getCompactionPolicy().hashCode();
      }
      if (hasTimeSeriesCompactionGoalSizeMbytes()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionGoalSizeMbytes());
      }
      if (hasTimeSeriesCompactionFileCountThreshold()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_FILE_COUNT_THRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionFileCountThreshold());
      }
      if (hasTimeSeriesCompactionTimeThresholdSeconds()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionTimeThresholdSeconds());
      }
      if (hasTimeSeriesCompactionEmptyRowsetsThreshold()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionEmptyRowsetsThreshold());
      }
      if (hasTimeSeriesCompactionLevelThreshold()) {
        hash = (37 * hash) + TIME_SERIES_COMPACTION_LEVEL_THRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeSeriesCompactionLevelThreshold());
      }
      if (hasTableName()) {
        hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getTableName().hashCode();
      }
      if (hasTtlSeconds()) {
        hash = (37 * hash) + TTL_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTtlSeconds());
      }
      if (hasSchemaVersion()) {
        hash = (37 * hash) + SCHEMA_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaVersion();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB 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.OlapFile.TabletMetaCloudPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB 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.OlapFile.TabletMetaCloudPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB 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.OlapFile.TabletMetaCloudPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB 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.OlapFile.TabletMetaCloudPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB 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.OlapFile.TabletMetaCloudPB 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.TabletMetaCloudPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.TabletMetaCloudPB)
        org.apache.doris.proto.OlapFile.TabletMetaCloudPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_TabletMetaCloudPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.TabletMetaCloudPB.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSchemaFieldBuilder();
          getRsMetasFieldBuilder();
          getIncRsMetasFieldBuilder();
          getAlterTaskFieldBuilder();
          getTabletUidFieldBuilder();
          getStaleRsMetasFieldBuilder();
          getDeleteBitmapFieldBuilder();
          getCooldownMetaIdFieldBuilder();
          getBinlogConfigFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        tableId_ = 0L;
        partitionId_ = 0L;
        tabletId_ = 0L;
        schemaHash_ = 0;
        shardId_ = 0;
        creationTime_ = 0L;
        cumulativeLayerPoint_ = 0L;
        tabletState_ = 0;
        schema_ = null;
        if (schemaBuilder_ != null) {
          schemaBuilder_.dispose();
          schemaBuilder_ = null;
        }
        if (rsMetasBuilder_ == null) {
          rsMetas_ = java.util.Collections.emptyList();
        } else {
          rsMetas_ = null;
          rsMetasBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (incRsMetasBuilder_ == null) {
          incRsMetas_ = java.util.Collections.emptyList();
        } else {
          incRsMetas_ = null;
          incRsMetasBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        alterTask_ = null;
        if (alterTaskBuilder_ != null) {
          alterTaskBuilder_.dispose();
          alterTaskBuilder_ = null;
        }
        inRestoreMode_ = false;
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        endRowsetId_ = 0L;
        preferredRowsetType_ = 0;
        tabletType_ = 0;
        if (staleRsMetasBuilder_ == null) {
          staleRsMetas_ = java.util.Collections.emptyList();
        } else {
          staleRsMetas_ = null;
          staleRsMetasBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        replicaId_ = 0L;
        deleteBitmap_ = null;
        if (deleteBitmapBuilder_ != null) {
          deleteBitmapBuilder_.dispose();
          deleteBitmapBuilder_ = null;
        }
        enableUniqueKeyMergeOnWrite_ = false;
        indexId_ = 0L;
        isInMemory_ = false;
        isPersistent_ = false;
        storagePolicyId_ = 0L;
        cooldownMetaId_ = null;
        if (cooldownMetaIdBuilder_ != null) {
          cooldownMetaIdBuilder_.dispose();
          cooldownMetaIdBuilder_ = null;
        }
        binlogConfig_ = null;
        if (binlogConfigBuilder_ != null) {
          binlogConfigBuilder_.dispose();
          binlogConfigBuilder_ = null;
        }
        compactionPolicy_ = "size_based";
        timeSeriesCompactionGoalSizeMbytes_ = 1024L;
        timeSeriesCompactionFileCountThreshold_ = 2000L;
        timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
        timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
        timeSeriesCompactionLevelThreshold_ = 1L;
        tableName_ = "";
        ttlSeconds_ = 0L;
        schemaVersion_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.TabletMetaCloudPB result) {
        if (rsMetasBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0)) {
            rsMetas_ = java.util.Collections.unmodifiableList(rsMetas_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.rsMetas_ = rsMetas_;
        } else {
          result.rsMetas_ = rsMetasBuilder_.build();
        }
        if (incRsMetasBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0)) {
            incRsMetas_ = java.util.Collections.unmodifiableList(incRsMetas_);
            bitField0_ = (bitField0_ & ~0x00000400);
          }
          result.incRsMetas_ = incRsMetas_;
        } else {
          result.incRsMetas_ = incRsMetasBuilder_.build();
        }
        if (staleRsMetasBuilder_ == null) {
          if (((bitField0_ & 0x00020000) != 0)) {
            staleRsMetas_ = java.util.Collections.unmodifiableList(staleRsMetas_);
            bitField0_ = (bitField0_ & ~0x00020000);
          }
          result.staleRsMetas_ = staleRsMetas_;
        } else {
          result.staleRsMetas_ = staleRsMetasBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.TabletMetaCloudPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.tableId_ = tableId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.partitionId_ = partitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.tabletId_ = tabletId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.schemaHash_ = schemaHash_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.shardId_ = shardId_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.creationTime_ = creationTime_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.cumulativeLayerPoint_ = cumulativeLayerPoint_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.tabletState_ = tabletState_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.schema_ = schemaBuilder_ == null
              ? schema_
              : schemaBuilder_.build();
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.alterTask_ = alterTaskBuilder_ == null
              ? alterTask_
              : alterTaskBuilder_.build();
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.inRestoreMode_ = inRestoreMode_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.tabletUid_ = tabletUidBuilder_ == null
              ? tabletUid_
              : tabletUidBuilder_.build();
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.endRowsetId_ = endRowsetId_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.preferredRowsetType_ = preferredRowsetType_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.tabletType_ = tabletType_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.replicaId_ = replicaId_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.deleteBitmap_ = deleteBitmapBuilder_ == null
              ? deleteBitmap_
              : deleteBitmapBuilder_.build();
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.enableUniqueKeyMergeOnWrite_ = enableUniqueKeyMergeOnWrite_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.indexId_ = indexId_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.isInMemory_ = isInMemory_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.isPersistent_ = isPersistent_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.storagePolicyId_ = storagePolicyId_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.cooldownMetaId_ = cooldownMetaIdBuilder_ == null
              ? cooldownMetaId_
              : cooldownMetaIdBuilder_.build();
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.binlogConfig_ = binlogConfigBuilder_ == null
              ? binlogConfig_
              : binlogConfigBuilder_.build();
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.compactionPolicy_ = compactionPolicy_;
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.timeSeriesCompactionGoalSizeMbytes_ = timeSeriesCompactionGoalSizeMbytes_;
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.timeSeriesCompactionFileCountThreshold_ = timeSeriesCompactionFileCountThreshold_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.timeSeriesCompactionTimeThresholdSeconds_ = timeSeriesCompactionTimeThresholdSeconds_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.timeSeriesCompactionEmptyRowsetsThreshold_ = timeSeriesCompactionEmptyRowsetsThreshold_;
          to_bitField0_ |= 0x10000000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartial1(org.apache.doris.proto.OlapFile.TabletMetaCloudPB result) {
        int from_bitField1_ = bitField1_;
        int to_bitField0_ = 0;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          result.timeSeriesCompactionLevelThreshold_ = timeSeriesCompactionLevelThreshold_;
          to_bitField0_ |= 0x20000000;
        }
        if (((from_bitField1_ & 0x00000002) != 0)) {
          result.tableName_ = tableName_;
          to_bitField0_ |= 0x40000000;
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.ttlSeconds_ = ttlSeconds_;
          to_bitField0_ |= 0x80000000;
        }
        int to_bitField1_ = 0;
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.schemaVersion_ = schemaVersion_;
          to_bitField1_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
        result.bitField1_ |= to_bitField1_;
      }

      @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.OlapFile.TabletMetaCloudPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.TabletMetaCloudPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.TabletMetaCloudPB other) {
        if (other == org.apache.doris.proto.OlapFile.TabletMetaCloudPB.getDefaultInstance()) return this;
        if (other.hasTableId()) {
          setTableId(other.getTableId());
        }
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasTabletId()) {
          setTabletId(other.getTabletId());
        }
        if (other.hasSchemaHash()) {
          setSchemaHash(other.getSchemaHash());
        }
        if (other.hasShardId()) {
          setShardId(other.getShardId());
        }
        if (other.hasCreationTime()) {
          setCreationTime(other.getCreationTime());
        }
        if (other.hasCumulativeLayerPoint()) {
          setCumulativeLayerPoint(other.getCumulativeLayerPoint());
        }
        if (other.hasTabletState()) {
          setTabletState(other.getTabletState());
        }
        if (other.hasSchema()) {
          mergeSchema(other.getSchema());
        }
        if (rsMetasBuilder_ == null) {
          if (!other.rsMetas_.isEmpty()) {
            if (rsMetas_.isEmpty()) {
              rsMetas_ = other.rsMetas_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureRsMetasIsMutable();
              rsMetas_.addAll(other.rsMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.rsMetas_.isEmpty()) {
            if (rsMetasBuilder_.isEmpty()) {
              rsMetasBuilder_.dispose();
              rsMetasBuilder_ = null;
              rsMetas_ = other.rsMetas_;
              bitField0_ = (bitField0_ & ~0x00000200);
              rsMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRsMetasFieldBuilder() : null;
            } else {
              rsMetasBuilder_.addAllMessages(other.rsMetas_);
            }
          }
        }
        if (incRsMetasBuilder_ == null) {
          if (!other.incRsMetas_.isEmpty()) {
            if (incRsMetas_.isEmpty()) {
              incRsMetas_ = other.incRsMetas_;
              bitField0_ = (bitField0_ & ~0x00000400);
            } else {
              ensureIncRsMetasIsMutable();
              incRsMetas_.addAll(other.incRsMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.incRsMetas_.isEmpty()) {
            if (incRsMetasBuilder_.isEmpty()) {
              incRsMetasBuilder_.dispose();
              incRsMetasBuilder_ = null;
              incRsMetas_ = other.incRsMetas_;
              bitField0_ = (bitField0_ & ~0x00000400);
              incRsMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIncRsMetasFieldBuilder() : null;
            } else {
              incRsMetasBuilder_.addAllMessages(other.incRsMetas_);
            }
          }
        }
        if (other.hasAlterTask()) {
          mergeAlterTask(other.getAlterTask());
        }
        if (other.hasInRestoreMode()) {
          setInRestoreMode(other.getInRestoreMode());
        }
        if (other.hasTabletUid()) {
          mergeTabletUid(other.getTabletUid());
        }
        if (other.hasEndRowsetId()) {
          setEndRowsetId(other.getEndRowsetId());
        }
        if (other.hasPreferredRowsetType()) {
          setPreferredRowsetType(other.getPreferredRowsetType());
        }
        if (other.hasTabletType()) {
          setTabletType(other.getTabletType());
        }
        if (staleRsMetasBuilder_ == null) {
          if (!other.staleRsMetas_.isEmpty()) {
            if (staleRsMetas_.isEmpty()) {
              staleRsMetas_ = other.staleRsMetas_;
              bitField0_ = (bitField0_ & ~0x00020000);
            } else {
              ensureStaleRsMetasIsMutable();
              staleRsMetas_.addAll(other.staleRsMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.staleRsMetas_.isEmpty()) {
            if (staleRsMetasBuilder_.isEmpty()) {
              staleRsMetasBuilder_.dispose();
              staleRsMetasBuilder_ = null;
              staleRsMetas_ = other.staleRsMetas_;
              bitField0_ = (bitField0_ & ~0x00020000);
              staleRsMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getStaleRsMetasFieldBuilder() : null;
            } else {
              staleRsMetasBuilder_.addAllMessages(other.staleRsMetas_);
            }
          }
        }
        if (other.hasReplicaId()) {
          setReplicaId(other.getReplicaId());
        }
        if (other.hasDeleteBitmap()) {
          mergeDeleteBitmap(other.getDeleteBitmap());
        }
        if (other.hasEnableUniqueKeyMergeOnWrite()) {
          setEnableUniqueKeyMergeOnWrite(other.getEnableUniqueKeyMergeOnWrite());
        }
        if (other.hasIndexId()) {
          setIndexId(other.getIndexId());
        }
        if (other.hasIsInMemory()) {
          setIsInMemory(other.getIsInMemory());
        }
        if (other.hasIsPersistent()) {
          setIsPersistent(other.getIsPersistent());
        }
        if (other.hasStoragePolicyId()) {
          setStoragePolicyId(other.getStoragePolicyId());
        }
        if (other.hasCooldownMetaId()) {
          mergeCooldownMetaId(other.getCooldownMetaId());
        }
        if (other.hasBinlogConfig()) {
          mergeBinlogConfig(other.getBinlogConfig());
        }
        if (other.hasCompactionPolicy()) {
          compactionPolicy_ = other.compactionPolicy_;
          bitField0_ |= 0x08000000;
          onChanged();
        }
        if (other.hasTimeSeriesCompactionGoalSizeMbytes()) {
          setTimeSeriesCompactionGoalSizeMbytes(other.getTimeSeriesCompactionGoalSizeMbytes());
        }
        if (other.hasTimeSeriesCompactionFileCountThreshold()) {
          setTimeSeriesCompactionFileCountThreshold(other.getTimeSeriesCompactionFileCountThreshold());
        }
        if (other.hasTimeSeriesCompactionTimeThresholdSeconds()) {
          setTimeSeriesCompactionTimeThresholdSeconds(other.getTimeSeriesCompactionTimeThresholdSeconds());
        }
        if (other.hasTimeSeriesCompactionEmptyRowsetsThreshold()) {
          setTimeSeriesCompactionEmptyRowsetsThreshold(other.getTimeSeriesCompactionEmptyRowsetsThreshold());
        }
        if (other.hasTimeSeriesCompactionLevelThreshold()) {
          setTimeSeriesCompactionLevelThreshold(other.getTimeSeriesCompactionLevelThreshold());
        }
        if (other.hasTableName()) {
          tableName_ = other.tableName_;
          bitField1_ |= 0x00000002;
          onChanged();
        }
        if (other.hasTtlSeconds()) {
          setTtlSeconds(other.getTtlSeconds());
        }
        if (other.hasSchemaVersion()) {
          setSchemaVersion(other.getSchemaVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (hasSchema()) {
          if (!getSchema().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getRsMetasCount(); i++) {
          if (!getRsMetas(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getIncRsMetasCount(); i++) {
          if (!getIncRsMetas(i).isInitialized()) {
            return false;
          }
        }
        if (hasAlterTask()) {
          if (!getAlterTask().isInitialized()) {
            return false;
          }
        }
        if (hasTabletUid()) {
          if (!getTabletUid().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getStaleRsMetasCount(); i++) {
          if (!getStaleRsMetas(i).isInitialized()) {
            return false;
          }
        }
        if (hasCooldownMetaId()) {
          if (!getCooldownMetaId().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: {
                tableId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                partitionId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                tabletId_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                schemaHash_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                shardId_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                creationTime_ = input.readInt64();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                cumulativeLayerPoint_ = input.readInt64();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.TabletStatePB tmpValue =
                    org.apache.doris.proto.OlapFile.TabletStatePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(8, tmpRaw);
                } else {
                  tabletState_ = tmpRaw;
                  bitField0_ |= 0x00000080;
                }
                break;
              } // case 64
              case 74: {
                input.readMessage(
                    getSchemaFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                org.apache.doris.proto.OlapFile.RowsetMetaCloudPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.PARSER,
                        extensionRegistry);
                if (rsMetasBuilder_ == null) {
                  ensureRsMetasIsMutable();
                  rsMetas_.add(m);
                } else {
                  rsMetasBuilder_.addMessage(m);
                }
                break;
              } // case 82
              case 90: {
                org.apache.doris.proto.OlapFile.RowsetMetaCloudPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.PARSER,
                        extensionRegistry);
                if (incRsMetasBuilder_ == null) {
                  ensureIncRsMetasIsMutable();
                  incRsMetas_.add(m);
                } else {
                  incRsMetasBuilder_.addMessage(m);
                }
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    getAlterTaskFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 104: {
                inRestoreMode_ = input.readBool();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 114: {
                input.readMessage(
                    getTabletUidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 120: {
                endRowsetId_ = input.readInt64();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              case 128: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.RowsetTypePB tmpValue =
                    org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(16, tmpRaw);
                } else {
                  preferredRowsetType_ = tmpRaw;
                  bitField0_ |= 0x00008000;
                }
                break;
              } // case 128
              case 136: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.TabletTypePB tmpValue =
                    org.apache.doris.proto.OlapFile.TabletTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(17, tmpRaw);
                } else {
                  tabletType_ = tmpRaw;
                  bitField0_ |= 0x00010000;
                }
                break;
              } // case 136
              case 146: {
                org.apache.doris.proto.OlapFile.RowsetMetaCloudPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.PARSER,
                        extensionRegistry);
                if (staleRsMetasBuilder_ == null) {
                  ensureStaleRsMetasIsMutable();
                  staleRsMetas_.add(m);
                } else {
                  staleRsMetasBuilder_.addMessage(m);
                }
                break;
              } // case 146
              case 168: {
                replicaId_ = input.readInt64();
                bitField0_ |= 0x00040000;
                break;
              } // case 168
              case 186: {
                input.readMessage(
                    getDeleteBitmapFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00080000;
                break;
              } // case 186
              case 192: {
                enableUniqueKeyMergeOnWrite_ = input.readBool();
                bitField0_ |= 0x00100000;
                break;
              } // case 192
              case 200: {
                indexId_ = input.readInt64();
                bitField0_ |= 0x00200000;
                break;
              } // case 200
              case 208: {
                isInMemory_ = input.readBool();
                bitField0_ |= 0x00400000;
                break;
              } // case 208
              case 216: {
                isPersistent_ = input.readBool();
                bitField0_ |= 0x00800000;
                break;
              } // case 216
              case 224: {
                storagePolicyId_ = input.readInt64();
                bitField0_ |= 0x01000000;
                break;
              } // case 224
              case 234: {
                input.readMessage(
                    getCooldownMetaIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x02000000;
                break;
              } // case 234
              case 242: {
                input.readMessage(
                    getBinlogConfigFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x04000000;
                break;
              } // case 242
              case 250: {
                compactionPolicy_ = input.readBytes();
                bitField0_ |= 0x08000000;
                break;
              } // case 250
              case 256: {
                timeSeriesCompactionGoalSizeMbytes_ = input.readInt64();
                bitField0_ |= 0x10000000;
                break;
              } // case 256
              case 264: {
                timeSeriesCompactionFileCountThreshold_ = input.readInt64();
                bitField0_ |= 0x20000000;
                break;
              } // case 264
              case 272: {
                timeSeriesCompactionTimeThresholdSeconds_ = input.readInt64();
                bitField0_ |= 0x40000000;
                break;
              } // case 272
              case 296: {
                timeSeriesCompactionEmptyRowsetsThreshold_ = input.readInt64();
                bitField0_ |= 0x80000000;
                break;
              } // case 296
              case 304: {
                timeSeriesCompactionLevelThreshold_ = input.readInt64();
                bitField1_ |= 0x00000001;
                break;
              } // case 304
              case 810: {
                tableName_ = input.readBytes();
                bitField1_ |= 0x00000002;
                break;
              } // case 810
              case 816: {
                ttlSeconds_ = input.readInt64();
                bitField1_ |= 0x00000004;
                break;
              } // case 816
              case 824: {
                schemaVersion_ = input.readInt32();
                bitField1_ |= 0x00000008;
                break;
              } // case 824
              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 bitField1_;

      private long tableId_ ;
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @return Whether the tableId field is set.
       */
      @java.lang.Override
      public boolean hasTableId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @return The tableId.
       */
      @java.lang.Override
      public long getTableId() {
        return tableId_;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @param value The tableId to set.
       * @return This builder for chaining.
       */
      public Builder setTableId(long value) {

        tableId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 table_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tableId_ = 0L;
        onChanged();
        return this;
      }

      private long partitionId_ ;
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @return Whether the partitionId field is set.
       */
      @java.lang.Override
      public boolean hasPartitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @return The partitionId.
       */
      @java.lang.Override
      public long getPartitionId() {
        return partitionId_;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(long value) {

        partitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ?
       * </pre>
       *
       * <code>optional int64 partition_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        partitionId_ = 0L;
        onChanged();
        return this;
      }

      private long tabletId_ ;
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @return Whether the tabletId field is set.
       */
      @java.lang.Override
      public boolean hasTabletId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @return The tabletId.
       */
      @java.lang.Override
      public long getTabletId() {
        return tabletId_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @param value The tabletId to set.
       * @return This builder for chaining.
       */
      public Builder setTabletId(long value) {

        tabletId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.tablet_id
       * </pre>
       *
       * <code>optional int64 tablet_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tabletId_ = 0L;
        onChanged();
        return this;
      }

      private int schemaHash_ ;
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @return Whether the schemaHash field is set.
       */
      @java.lang.Override
      public boolean hasSchemaHash() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @return The schemaHash.
       */
      @java.lang.Override
      public int getSchemaHash() {
        return schemaHash_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @param value The schemaHash to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaHash(int value) {

        schemaHash_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.schema_hash
       * </pre>
       *
       * <code>optional int32 schema_hash = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaHash() {
        bitField0_ = (bitField0_ & ~0x00000008);
        schemaHash_ = 0;
        onChanged();
        return this;
      }

      private int shardId_ ;
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @return Whether the shardId field is set.
       */
      @java.lang.Override
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @return The shardId.
       */
      @java.lang.Override
      public int getShardId() {
        return shardId_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @param value The shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardId(int value) {

        shardId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.shard
       * </pre>
       *
       * <code>optional int32 shard_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        shardId_ = 0;
        onChanged();
        return this;
      }

      private long creationTime_ ;
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @return Whether the creationTime field is set.
       */
      @java.lang.Override
      public boolean hasCreationTime() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @return The creationTime.
       */
      @java.lang.Override
      public long getCreationTime() {
        return creationTime_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @param value The creationTime to set.
       * @return This builder for chaining.
       */
      public Builder setCreationTime(long value) {

        creationTime_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.creation_time
       * </pre>
       *
       * <code>optional int64 creation_time = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreationTime() {
        bitField0_ = (bitField0_ & ~0x00000020);
        creationTime_ = 0L;
        onChanged();
        return this;
      }

      private long cumulativeLayerPoint_ ;
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @return Whether the cumulativeLayerPoint field is set.
       */
      @java.lang.Override
      public boolean hasCumulativeLayerPoint() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @return The cumulativeLayerPoint.
       */
      @java.lang.Override
      public long getCumulativeLayerPoint() {
        return cumulativeLayerPoint_;
      }
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @param value The cumulativeLayerPoint to set.
       * @return This builder for chaining.
       */
      public Builder setCumulativeLayerPoint(long value) {

        cumulativeLayerPoint_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OlapHeaderMessage.cumulative_layer_point
       * </pre>
       *
       * <code>optional int64 cumulative_layer_point = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCumulativeLayerPoint() {
        bitField0_ = (bitField0_ & ~0x00000040);
        cumulativeLayerPoint_ = 0L;
        onChanged();
        return this;
      }

      private int tabletState_ = 0;
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @return Whether the tabletState field is set.
       */
      @java.lang.Override public boolean hasTabletState() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @return The tabletState.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.TabletStatePB getTabletState() {
        org.apache.doris.proto.OlapFile.TabletStatePB result = org.apache.doris.proto.OlapFile.TabletStatePB.forNumber(tabletState_);
        return result == null ? org.apache.doris.proto.OlapFile.TabletStatePB.PB_NOTREADY : result;
      }
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @param value The tabletState to set.
       * @return This builder for chaining.
       */
      public Builder setTabletState(org.apache.doris.proto.OlapFile.TabletStatePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        tabletState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletStatePB tablet_state = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletState() {
        bitField0_ = (bitField0_ & ~0x00000080);
        tabletState_ = 0;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.OlapFile.TabletSchemaCloudPB schema_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaCloudPB, org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder> schemaBuilder_;
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       * @return Whether the schema field is set.
       */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       * @return The schema.
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaCloudPB getSchema() {
        if (schemaBuilder_ == null) {
          return schema_ == null ? org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : schema_;
        } else {
          return schemaBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       */
      public Builder setSchema(org.apache.doris.proto.OlapFile.TabletSchemaCloudPB value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schema_ = value;
        } else {
          schemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       */
      public Builder setSchema(
          org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          schema_ = builderForValue.build();
        } else {
          schemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       */
      public Builder mergeSchema(org.apache.doris.proto.OlapFile.TabletSchemaCloudPB value) {
        if (schemaBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
            schema_ != null &&
            schema_ != org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance()) {
            getSchemaBuilder().mergeFrom(value);
          } else {
            schema_ = value;
          }
        } else {
          schemaBuilder_.mergeFrom(value);
        }
        if (schema_ != null) {
          bitField0_ |= 0x00000100;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       */
      public Builder clearSchema() {
        bitField0_ = (bitField0_ & ~0x00000100);
        schema_ = null;
        if (schemaBuilder_ != null) {
          schemaBuilder_.dispose();
          schemaBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder getSchemaBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getSchemaFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder getSchemaOrBuilder() {
        if (schemaBuilder_ != null) {
          return schemaBuilder_.getMessageOrBuilder();
        } else {
          return schema_ == null ?
              org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.getDefaultInstance() : schema_;
        }
      }
      /**
       * <code>optional .doris.TabletSchemaCloudPB schema = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletSchemaCloudPB, org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder> 
          getSchemaFieldBuilder() {
        if (schemaBuilder_ == null) {
          schemaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.TabletSchemaCloudPB, org.apache.doris.proto.OlapFile.TabletSchemaCloudPB.Builder, org.apache.doris.proto.OlapFile.TabletSchemaCloudPBOrBuilder>(
                  getSchema(),
                  getParentForChildren(),
                  isClean());
          schema_ = null;
        }
        return schemaBuilder_;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> rsMetas_ =
        java.util.Collections.emptyList();
      private void ensureRsMetasIsMutable() {
        if (!((bitField0_ & 0x00000200) != 0)) {
          rsMetas_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB>(rsMetas_);
          bitField0_ |= 0x00000200;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> rsMetasBuilder_;

      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> getRsMetasList() {
        if (rsMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rsMetas_);
        } else {
          return rsMetasBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public int getRsMetasCount() {
        if (rsMetasBuilder_ == null) {
          return rsMetas_.size();
        } else {
          return rsMetasBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getRsMetas(int index) {
        if (rsMetasBuilder_ == null) {
          return rsMetas_.get(index);
        } else {
          return rsMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder setRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (rsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRsMetasIsMutable();
          rsMetas_.set(index, value);
          onChanged();
        } else {
          rsMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder setRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          rsMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (rsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRsMetasIsMutable();
          rsMetas_.add(value);
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (rsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRsMetasIsMutable();
          rsMetas_.add(index, value);
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.add(builderForValue.build());
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder addRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          rsMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder addAllRsMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> values) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rsMetas_);
          onChanged();
        } else {
          rsMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder clearRsMetas() {
        if (rsMetasBuilder_ == null) {
          rsMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          rsMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public Builder removeRsMetas(int index) {
        if (rsMetasBuilder_ == null) {
          ensureRsMetasIsMutable();
          rsMetas_.remove(index);
          onChanged();
        } else {
          rsMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder getRsMetasBuilder(
          int index) {
        return getRsMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getRsMetasOrBuilder(
          int index) {
        if (rsMetasBuilder_ == null) {
          return rsMetas_.get(index);  } else {
          return rsMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
           getRsMetasOrBuilderList() {
        if (rsMetasBuilder_ != null) {
          return rsMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rsMetas_);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder addRsMetasBuilder() {
        return getRsMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder addRsMetasBuilder(
          int index) {
        return getRsMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB rs_metas = 10;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder> 
           getRsMetasBuilderList() {
        return getRsMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
          getRsMetasFieldBuilder() {
        if (rsMetasBuilder_ == null) {
          rsMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder>(
                  rsMetas_,
                  ((bitField0_ & 0x00000200) != 0),
                  getParentForChildren(),
                  isClean());
          rsMetas_ = null;
        }
        return rsMetasBuilder_;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> incRsMetas_ =
        java.util.Collections.emptyList();
      private void ensureIncRsMetasIsMutable() {
        if (!((bitField0_ & 0x00000400) != 0)) {
          incRsMetas_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB>(incRsMetas_);
          bitField0_ |= 0x00000400;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> incRsMetasBuilder_;

      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> getIncRsMetasList() {
        if (incRsMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(incRsMetas_);
        } else {
          return incRsMetasBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public int getIncRsMetasCount() {
        if (incRsMetasBuilder_ == null) {
          return incRsMetas_.size();
        } else {
          return incRsMetasBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getIncRsMetas(int index) {
        if (incRsMetasBuilder_ == null) {
          return incRsMetas_.get(index);
        } else {
          return incRsMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder setIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (incRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIncRsMetasIsMutable();
          incRsMetas_.set(index, value);
          onChanged();
        } else {
          incRsMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder setIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          incRsMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (incRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(value);
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (incRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(index, value);
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(builderForValue.build());
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder addIncRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          incRsMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder addAllIncRsMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> values) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, incRsMetas_);
          onChanged();
        } else {
          incRsMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder clearIncRsMetas() {
        if (incRsMetasBuilder_ == null) {
          incRsMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
          onChanged();
        } else {
          incRsMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public Builder removeIncRsMetas(int index) {
        if (incRsMetasBuilder_ == null) {
          ensureIncRsMetasIsMutable();
          incRsMetas_.remove(index);
          onChanged();
        } else {
          incRsMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder getIncRsMetasBuilder(
          int index) {
        return getIncRsMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getIncRsMetasOrBuilder(
          int index) {
        if (incRsMetasBuilder_ == null) {
          return incRsMetas_.get(index);  } else {
          return incRsMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
           getIncRsMetasOrBuilderList() {
        if (incRsMetasBuilder_ != null) {
          return incRsMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(incRsMetas_);
        }
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder addIncRsMetasBuilder() {
        return getIncRsMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.getDefaultInstance());
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder addIncRsMetasBuilder(
          int index) {
        return getIncRsMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.getDefaultInstance());
      }
      /**
       * <pre>
       * &#64;Deprecated
       * </pre>
       *
       * <code>repeated .doris.RowsetMetaCloudPB inc_rs_metas = 11;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder> 
           getIncRsMetasBuilderList() {
        return getIncRsMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
          getIncRsMetasFieldBuilder() {
        if (incRsMetasBuilder_ == null) {
          incRsMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder>(
                  incRsMetas_,
                  ((bitField0_ & 0x00000400) != 0),
                  getParentForChildren(),
                  isClean());
          incRsMetas_ = null;
        }
        return incRsMetasBuilder_;
      }

      private org.apache.doris.proto.OlapFile.AlterTabletPB alterTask_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.AlterTabletPB, org.apache.doris.proto.OlapFile.AlterTabletPB.Builder, org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder> alterTaskBuilder_;
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       * @return Whether the alterTask field is set.
       */
      public boolean hasAlterTask() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       * @return The alterTask.
       */
      public org.apache.doris.proto.OlapFile.AlterTabletPB getAlterTask() {
        if (alterTaskBuilder_ == null) {
          return alterTask_ == null ? org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
        } else {
          return alterTaskBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder setAlterTask(org.apache.doris.proto.OlapFile.AlterTabletPB value) {
        if (alterTaskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          alterTask_ = value;
        } else {
          alterTaskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder setAlterTask(
          org.apache.doris.proto.OlapFile.AlterTabletPB.Builder builderForValue) {
        if (alterTaskBuilder_ == null) {
          alterTask_ = builderForValue.build();
        } else {
          alterTaskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder mergeAlterTask(org.apache.doris.proto.OlapFile.AlterTabletPB value) {
        if (alterTaskBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
            alterTask_ != null &&
            alterTask_ != org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance()) {
            getAlterTaskBuilder().mergeFrom(value);
          } else {
            alterTask_ = value;
          }
        } else {
          alterTaskBuilder_.mergeFrom(value);
        }
        if (alterTask_ != null) {
          bitField0_ |= 0x00000800;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public Builder clearAlterTask() {
        bitField0_ = (bitField0_ & ~0x00000800);
        alterTask_ = null;
        if (alterTaskBuilder_ != null) {
          alterTaskBuilder_.dispose();
          alterTaskBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public org.apache.doris.proto.OlapFile.AlterTabletPB.Builder getAlterTaskBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getAlterTaskFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      public org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder getAlterTaskOrBuilder() {
        if (alterTaskBuilder_ != null) {
          return alterTaskBuilder_.getMessageOrBuilder();
        } else {
          return alterTask_ == null ?
              org.apache.doris.proto.OlapFile.AlterTabletPB.getDefaultInstance() : alterTask_;
        }
      }
      /**
       * <code>optional .doris.AlterTabletPB alter_task = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.AlterTabletPB, org.apache.doris.proto.OlapFile.AlterTabletPB.Builder, org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder> 
          getAlterTaskFieldBuilder() {
        if (alterTaskBuilder_ == null) {
          alterTaskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.AlterTabletPB, org.apache.doris.proto.OlapFile.AlterTabletPB.Builder, org.apache.doris.proto.OlapFile.AlterTabletPBOrBuilder>(
                  getAlterTask(),
                  getParentForChildren(),
                  isClean());
          alterTask_ = null;
        }
        return alterTaskBuilder_;
      }

      private boolean inRestoreMode_ ;
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @return Whether the inRestoreMode field is set.
       */
      @java.lang.Override
      public boolean hasInRestoreMode() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @return The inRestoreMode.
       */
      @java.lang.Override
      public boolean getInRestoreMode() {
        return inRestoreMode_;
      }
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @param value The inRestoreMode to set.
       * @return This builder for chaining.
       */
      public Builder setInRestoreMode(boolean value) {

        inRestoreMode_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * if true, this tablet will not do compaction,
       * and does not create init version
       * </pre>
       *
       * <code>optional bool in_restore_mode = 13 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearInRestoreMode() {
        bitField0_ = (bitField0_ & ~0x00001000);
        inRestoreMode_ = false;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId tabletUid_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> tabletUidBuilder_;
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       * @return Whether the tabletUid field is set.
       */
      public boolean hasTabletUid() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       * @return The tabletUid.
       */
      public org.apache.doris.proto.Types.PUniqueId getTabletUid() {
        if (tabletUidBuilder_ == null) {
          return tabletUid_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        } else {
          return tabletUidBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder setTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tabletUid_ = value;
        } else {
          tabletUidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder setTabletUid(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (tabletUidBuilder_ == null) {
          tabletUid_ = builderForValue.build();
        } else {
          tabletUidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder mergeTabletUid(org.apache.doris.proto.Types.PUniqueId value) {
        if (tabletUidBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            tabletUid_ != null &&
            tabletUid_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getTabletUidBuilder().mergeFrom(value);
          } else {
            tabletUid_ = value;
          }
        } else {
          tabletUidBuilder_.mergeFrom(value);
        }
        if (tabletUid_ != null) {
          bitField0_ |= 0x00002000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public Builder clearTabletUid() {
        bitField0_ = (bitField0_ & ~0x00002000);
        tabletUid_ = null;
        if (tabletUidBuilder_ != null) {
          tabletUidBuilder_.dispose();
          tabletUidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getTabletUidBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getTabletUidFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getTabletUidOrBuilder() {
        if (tabletUidBuilder_ != null) {
          return tabletUidBuilder_.getMessageOrBuilder();
        } else {
          return tabletUid_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : tabletUid_;
        }
      }
      /**
       * <pre>
       * a uniqued id to identified tablet with same tablet_id and schema hash
       * </pre>
       *
       * <code>optional .doris.PUniqueId tablet_uid = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getTabletUidFieldBuilder() {
        if (tabletUidBuilder_ == null) {
          tabletUidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getTabletUid(),
                  getParentForChildren(),
                  isClean());
          tabletUid_ = null;
        }
        return tabletUidBuilder_;
      }

      private long endRowsetId_ ;
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @return Whether the endRowsetId field is set.
       */
      @java.lang.Override
      public boolean hasEndRowsetId() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @return The endRowsetId.
       */
      @java.lang.Override
      public long getEndRowsetId() {
        return endRowsetId_;
      }
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @param value The endRowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setEndRowsetId(long value) {

        endRowsetId_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 end_rowset_id = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndRowsetId() {
        bitField0_ = (bitField0_ & ~0x00004000);
        endRowsetId_ = 0L;
        onChanged();
        return this;
      }

      private int preferredRowsetType_ = 0;
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @return Whether the preferredRowsetType field is set.
       */
      @java.lang.Override public boolean hasPreferredRowsetType() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @return The preferredRowsetType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.RowsetTypePB getPreferredRowsetType() {
        org.apache.doris.proto.OlapFile.RowsetTypePB result = org.apache.doris.proto.OlapFile.RowsetTypePB.forNumber(preferredRowsetType_);
        return result == null ? org.apache.doris.proto.OlapFile.RowsetTypePB.ALPHA_ROWSET : result;
      }
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @param value The preferredRowsetType to set.
       * @return This builder for chaining.
       */
      public Builder setPreferredRowsetType(org.apache.doris.proto.OlapFile.RowsetTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00008000;
        preferredRowsetType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.RowsetTypePB preferred_rowset_type = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearPreferredRowsetType() {
        bitField0_ = (bitField0_ & ~0x00008000);
        preferredRowsetType_ = 0;
        onChanged();
        return this;
      }

      private int tabletType_ = 0;
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @return Whether the tabletType field is set.
       */
      @java.lang.Override public boolean hasTabletType() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @return The tabletType.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.TabletTypePB getTabletType() {
        org.apache.doris.proto.OlapFile.TabletTypePB result = org.apache.doris.proto.OlapFile.TabletTypePB.forNumber(tabletType_);
        return result == null ? org.apache.doris.proto.OlapFile.TabletTypePB.TABLET_TYPE_DISK : result;
      }
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @param value The tabletType to set.
       * @return This builder for chaining.
       */
      public Builder setTabletType(org.apache.doris.proto.OlapFile.TabletTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00010000;
        tabletType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.TabletTypePB tablet_type = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletType() {
        bitField0_ = (bitField0_ & ~0x00010000);
        tabletType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> staleRsMetas_ =
        java.util.Collections.emptyList();
      private void ensureStaleRsMetasIsMutable() {
        if (!((bitField0_ & 0x00020000) != 0)) {
          staleRsMetas_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB>(staleRsMetas_);
          bitField0_ |= 0x00020000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> staleRsMetasBuilder_;

      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> getStaleRsMetasList() {
        if (staleRsMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(staleRsMetas_);
        } else {
          return staleRsMetasBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public int getStaleRsMetasCount() {
        if (staleRsMetasBuilder_ == null) {
          return staleRsMetas_.size();
        } else {
          return staleRsMetasBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB getStaleRsMetas(int index) {
        if (staleRsMetasBuilder_ == null) {
          return staleRsMetas_.get(index);
        } else {
          return staleRsMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder setStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (staleRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.set(index, value);
          onChanged();
        } else {
          staleRsMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder setStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          staleRsMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (staleRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(value);
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB value) {
        if (staleRsMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(index, value);
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(builderForValue.build());
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder addStaleRsMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder builderForValue) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          staleRsMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder addAllStaleRsMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPB> values) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, staleRsMetas_);
          onChanged();
        } else {
          staleRsMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder clearStaleRsMetas() {
        if (staleRsMetasBuilder_ == null) {
          staleRsMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00020000);
          onChanged();
        } else {
          staleRsMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public Builder removeStaleRsMetas(int index) {
        if (staleRsMetasBuilder_ == null) {
          ensureStaleRsMetasIsMutable();
          staleRsMetas_.remove(index);
          onChanged();
        } else {
          staleRsMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder getStaleRsMetasBuilder(
          int index) {
        return getStaleRsMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder getStaleRsMetasOrBuilder(
          int index) {
        if (staleRsMetasBuilder_ == null) {
          return staleRsMetas_.get(index);  } else {
          return staleRsMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
           getStaleRsMetasOrBuilderList() {
        if (staleRsMetasBuilder_ != null) {
          return staleRsMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(staleRsMetas_);
        }
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder addStaleRsMetasBuilder() {
        return getStaleRsMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder addStaleRsMetasBuilder(
          int index) {
        return getStaleRsMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetMetaCloudPB stale_rs_metas = 18;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder> 
           getStaleRsMetasBuilderList() {
        return getStaleRsMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder> 
          getStaleRsMetasFieldBuilder() {
        if (staleRsMetasBuilder_ == null) {
          staleRsMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.RowsetMetaCloudPB, org.apache.doris.proto.OlapFile.RowsetMetaCloudPB.Builder, org.apache.doris.proto.OlapFile.RowsetMetaCloudPBOrBuilder>(
                  staleRsMetas_,
                  ((bitField0_ & 0x00020000) != 0),
                  getParentForChildren(),
                  isClean());
          staleRsMetas_ = null;
        }
        return staleRsMetasBuilder_;
      }

      private long replicaId_ ;
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @return Whether the replicaId field is set.
       */
      @java.lang.Override
      public boolean hasReplicaId() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @return The replicaId.
       */
      @java.lang.Override
      public long getReplicaId() {
        return replicaId_;
      }
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @param value The replicaId to set.
       * @return This builder for chaining.
       */
      public Builder setReplicaId(long value) {

        replicaId_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * optional StorageMediumPB storage_medium = 19 [default = HDD];
       * optional string remote_storage_name = 20;
       * </pre>
       *
       * <code>optional int64 replica_id = 21 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearReplicaId() {
        bitField0_ = (bitField0_ & ~0x00040000);
        replicaId_ = 0L;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.OlapFile.DeleteBitmapPB deleteBitmap_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeleteBitmapPB, org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder, org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder> deleteBitmapBuilder_;
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       * @return Whether the deleteBitmap field is set.
       */
      public boolean hasDeleteBitmap() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       * @return The deleteBitmap.
       */
      public org.apache.doris.proto.OlapFile.DeleteBitmapPB getDeleteBitmap() {
        if (deleteBitmapBuilder_ == null) {
          return deleteBitmap_ == null ? org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
        } else {
          return deleteBitmapBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder setDeleteBitmap(org.apache.doris.proto.OlapFile.DeleteBitmapPB value) {
        if (deleteBitmapBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deleteBitmap_ = value;
        } else {
          deleteBitmapBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder setDeleteBitmap(
          org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder builderForValue) {
        if (deleteBitmapBuilder_ == null) {
          deleteBitmap_ = builderForValue.build();
        } else {
          deleteBitmapBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder mergeDeleteBitmap(org.apache.doris.proto.OlapFile.DeleteBitmapPB value) {
        if (deleteBitmapBuilder_ == null) {
          if (((bitField0_ & 0x00080000) != 0) &&
            deleteBitmap_ != null &&
            deleteBitmap_ != org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance()) {
            getDeleteBitmapBuilder().mergeFrom(value);
          } else {
            deleteBitmap_ = value;
          }
        } else {
          deleteBitmapBuilder_.mergeFrom(value);
        }
        if (deleteBitmap_ != null) {
          bitField0_ |= 0x00080000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public Builder clearDeleteBitmap() {
        bitField0_ = (bitField0_ & ~0x00080000);
        deleteBitmap_ = null;
        if (deleteBitmapBuilder_ != null) {
          deleteBitmapBuilder_.dispose();
          deleteBitmapBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder getDeleteBitmapBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getDeleteBitmapFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      public org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder getDeleteBitmapOrBuilder() {
        if (deleteBitmapBuilder_ != null) {
          return deleteBitmapBuilder_.getMessageOrBuilder();
        } else {
          return deleteBitmap_ == null ?
              org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance() : deleteBitmap_;
        }
      }
      /**
       * <code>optional .doris.DeleteBitmapPB delete_bitmap = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.DeleteBitmapPB, org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder, org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder> 
          getDeleteBitmapFieldBuilder() {
        if (deleteBitmapBuilder_ == null) {
          deleteBitmapBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.DeleteBitmapPB, org.apache.doris.proto.OlapFile.DeleteBitmapPB.Builder, org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder>(
                  getDeleteBitmap(),
                  getParentForChildren(),
                  isClean());
          deleteBitmap_ = null;
        }
        return deleteBitmapBuilder_;
      }

      private boolean enableUniqueKeyMergeOnWrite_ ;
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @return Whether the enableUniqueKeyMergeOnWrite field is set.
       */
      @java.lang.Override
      public boolean hasEnableUniqueKeyMergeOnWrite() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @return The enableUniqueKeyMergeOnWrite.
       */
      @java.lang.Override
      public boolean getEnableUniqueKeyMergeOnWrite() {
        return enableUniqueKeyMergeOnWrite_;
      }
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @param value The enableUniqueKeyMergeOnWrite to set.
       * @return This builder for chaining.
       */
      public Builder setEnableUniqueKeyMergeOnWrite(boolean value) {

        enableUniqueKeyMergeOnWrite_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Use primary key index to speed up tabel unique key model
       * </pre>
       *
       * <code>optional bool enable_unique_key_merge_on_write = 24 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearEnableUniqueKeyMergeOnWrite() {
        bitField0_ = (bitField0_ & ~0x00100000);
        enableUniqueKeyMergeOnWrite_ = false;
        onChanged();
        return this;
      }

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

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

      private boolean isInMemory_ ;
      /**
       * <code>optional bool is_in_memory = 26 [default = false];</code>
       * @return Whether the isInMemory field is set.
       */
      @java.lang.Override
      public boolean hasIsInMemory() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <code>optional bool is_in_memory = 26 [default = false];</code>
       * @return The isInMemory.
       */
      @java.lang.Override
      public boolean getIsInMemory() {
        return isInMemory_;
      }
      /**
       * <code>optional bool is_in_memory = 26 [default = false];</code>
       * @param value The isInMemory to set.
       * @return This builder for chaining.
       */
      public Builder setIsInMemory(boolean value) {

        isInMemory_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_in_memory = 26 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsInMemory() {
        bitField0_ = (bitField0_ & ~0x00400000);
        isInMemory_ = false;
        onChanged();
        return this;
      }

      private boolean isPersistent_ ;
      /**
       * <code>optional bool is_persistent = 27 [default = false];</code>
       * @return Whether the isPersistent field is set.
       */
      @java.lang.Override
      public boolean hasIsPersistent() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>optional bool is_persistent = 27 [default = false];</code>
       * @return The isPersistent.
       */
      @java.lang.Override
      public boolean getIsPersistent() {
        return isPersistent_;
      }
      /**
       * <code>optional bool is_persistent = 27 [default = false];</code>
       * @param value The isPersistent to set.
       * @return This builder for chaining.
       */
      public Builder setIsPersistent(boolean value) {

        isPersistent_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_persistent = 27 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsPersistent() {
        bitField0_ = (bitField0_ & ~0x00800000);
        isPersistent_ = false;
        onChanged();
        return this;
      }

      private long storagePolicyId_ ;
      /**
       * <code>optional int64 storage_policy_id = 28;</code>
       * @return Whether the storagePolicyId field is set.
       */
      @java.lang.Override
      public boolean hasStoragePolicyId() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>optional int64 storage_policy_id = 28;</code>
       * @return The storagePolicyId.
       */
      @java.lang.Override
      public long getStoragePolicyId() {
        return storagePolicyId_;
      }
      /**
       * <code>optional int64 storage_policy_id = 28;</code>
       * @param value The storagePolicyId to set.
       * @return This builder for chaining.
       */
      public Builder setStoragePolicyId(long value) {

        storagePolicyId_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 storage_policy_id = 28;</code>
       * @return This builder for chaining.
       */
      public Builder clearStoragePolicyId() {
        bitField0_ = (bitField0_ & ~0x01000000);
        storagePolicyId_ = 0L;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PUniqueId cooldownMetaId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> cooldownMetaIdBuilder_;
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       * @return Whether the cooldownMetaId field is set.
       */
      public boolean hasCooldownMetaId() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       * @return The cooldownMetaId.
       */
      public org.apache.doris.proto.Types.PUniqueId getCooldownMetaId() {
        if (cooldownMetaIdBuilder_ == null) {
          return cooldownMetaId_ == null ? org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
        } else {
          return cooldownMetaIdBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       */
      public Builder setCooldownMetaId(org.apache.doris.proto.Types.PUniqueId value) {
        if (cooldownMetaIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cooldownMetaId_ = value;
        } else {
          cooldownMetaIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       */
      public Builder setCooldownMetaId(
          org.apache.doris.proto.Types.PUniqueId.Builder builderForValue) {
        if (cooldownMetaIdBuilder_ == null) {
          cooldownMetaId_ = builderForValue.build();
        } else {
          cooldownMetaIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       */
      public Builder mergeCooldownMetaId(org.apache.doris.proto.Types.PUniqueId value) {
        if (cooldownMetaIdBuilder_ == null) {
          if (((bitField0_ & 0x02000000) != 0) &&
            cooldownMetaId_ != null &&
            cooldownMetaId_ != org.apache.doris.proto.Types.PUniqueId.getDefaultInstance()) {
            getCooldownMetaIdBuilder().mergeFrom(value);
          } else {
            cooldownMetaId_ = value;
          }
        } else {
          cooldownMetaIdBuilder_.mergeFrom(value);
        }
        if (cooldownMetaId_ != null) {
          bitField0_ |= 0x02000000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       */
      public Builder clearCooldownMetaId() {
        bitField0_ = (bitField0_ & ~0x02000000);
        cooldownMetaId_ = null;
        if (cooldownMetaIdBuilder_ != null) {
          cooldownMetaIdBuilder_.dispose();
          cooldownMetaIdBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       */
      public org.apache.doris.proto.Types.PUniqueId.Builder getCooldownMetaIdBuilder() {
        bitField0_ |= 0x02000000;
        onChanged();
        return getCooldownMetaIdFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       */
      public org.apache.doris.proto.Types.PUniqueIdOrBuilder getCooldownMetaIdOrBuilder() {
        if (cooldownMetaIdBuilder_ != null) {
          return cooldownMetaIdBuilder_.getMessageOrBuilder();
        } else {
          return cooldownMetaId_ == null ?
              org.apache.doris.proto.Types.PUniqueId.getDefaultInstance() : cooldownMetaId_;
        }
      }
      /**
       * <code>optional .doris.PUniqueId cooldown_meta_id = 29;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder> 
          getCooldownMetaIdFieldBuilder() {
        if (cooldownMetaIdBuilder_ == null) {
          cooldownMetaIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PUniqueId, org.apache.doris.proto.Types.PUniqueId.Builder, org.apache.doris.proto.Types.PUniqueIdOrBuilder>(
                  getCooldownMetaId(),
                  getParentForChildren(),
                  isClean());
          cooldownMetaId_ = null;
        }
        return cooldownMetaIdBuilder_;
      }

      private org.apache.doris.proto.OlapFile.BinlogConfigPB binlogConfig_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.BinlogConfigPB, org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder, org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder> binlogConfigBuilder_;
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       * @return Whether the binlogConfig field is set.
       */
      public boolean hasBinlogConfig() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       * @return The binlogConfig.
       */
      public org.apache.doris.proto.OlapFile.BinlogConfigPB getBinlogConfig() {
        if (binlogConfigBuilder_ == null) {
          return binlogConfig_ == null ? org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
        } else {
          return binlogConfigBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       */
      public Builder setBinlogConfig(org.apache.doris.proto.OlapFile.BinlogConfigPB value) {
        if (binlogConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          binlogConfig_ = value;
        } else {
          binlogConfigBuilder_.setMessage(value);
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       */
      public Builder setBinlogConfig(
          org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder builderForValue) {
        if (binlogConfigBuilder_ == null) {
          binlogConfig_ = builderForValue.build();
        } else {
          binlogConfigBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       */
      public Builder mergeBinlogConfig(org.apache.doris.proto.OlapFile.BinlogConfigPB value) {
        if (binlogConfigBuilder_ == null) {
          if (((bitField0_ & 0x04000000) != 0) &&
            binlogConfig_ != null &&
            binlogConfig_ != org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance()) {
            getBinlogConfigBuilder().mergeFrom(value);
          } else {
            binlogConfig_ = value;
          }
        } else {
          binlogConfigBuilder_.mergeFrom(value);
        }
        if (binlogConfig_ != null) {
          bitField0_ |= 0x04000000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       */
      public Builder clearBinlogConfig() {
        bitField0_ = (bitField0_ & ~0x04000000);
        binlogConfig_ = null;
        if (binlogConfigBuilder_ != null) {
          binlogConfigBuilder_.dispose();
          binlogConfigBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       */
      public org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder getBinlogConfigBuilder() {
        bitField0_ |= 0x04000000;
        onChanged();
        return getBinlogConfigFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       */
      public org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder getBinlogConfigOrBuilder() {
        if (binlogConfigBuilder_ != null) {
          return binlogConfigBuilder_.getMessageOrBuilder();
        } else {
          return binlogConfig_ == null ?
              org.apache.doris.proto.OlapFile.BinlogConfigPB.getDefaultInstance() : binlogConfig_;
        }
      }
      /**
       * <code>optional .doris.BinlogConfigPB binlog_config = 30;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.OlapFile.BinlogConfigPB, org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder, org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder> 
          getBinlogConfigFieldBuilder() {
        if (binlogConfigBuilder_ == null) {
          binlogConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.OlapFile.BinlogConfigPB, org.apache.doris.proto.OlapFile.BinlogConfigPB.Builder, org.apache.doris.proto.OlapFile.BinlogConfigPBOrBuilder>(
                  getBinlogConfig(),
                  getParentForChildren(),
                  isClean());
          binlogConfig_ = null;
        }
        return binlogConfigBuilder_;
      }

      private java.lang.Object compactionPolicy_ = "size_based";
      /**
       * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
       * @return Whether the compactionPolicy field is set.
       */
      public boolean hasCompactionPolicy() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
       * @return The compactionPolicy.
       */
      public java.lang.String getCompactionPolicy() {
        java.lang.Object ref = compactionPolicy_;
        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()) {
            compactionPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
       * @return The bytes for compactionPolicy.
       */
      public com.google.protobuf.ByteString
          getCompactionPolicyBytes() {
        java.lang.Object ref = compactionPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          compactionPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
       * @param value The compactionPolicy to set.
       * @return This builder for chaining.
       */
      public Builder setCompactionPolicy(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        compactionPolicy_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompactionPolicy() {
        compactionPolicy_ = getDefaultInstance().getCompactionPolicy();
        bitField0_ = (bitField0_ & ~0x08000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string compaction_policy = 31 [default = "size_based"];</code>
       * @param value The bytes for compactionPolicy to set.
       * @return This builder for chaining.
       */
      public Builder setCompactionPolicyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        compactionPolicy_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionGoalSizeMbytes_ = 1024L;
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
       * @return Whether the timeSeriesCompactionGoalSizeMbytes field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionGoalSizeMbytes() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
       * @return The timeSeriesCompactionGoalSizeMbytes.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionGoalSizeMbytes() {
        return timeSeriesCompactionGoalSizeMbytes_;
      }
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
       * @param value The timeSeriesCompactionGoalSizeMbytes to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionGoalSizeMbytes(long value) {

        timeSeriesCompactionGoalSizeMbytes_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_goal_size_mbytes = 32 [default = 1024];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionGoalSizeMbytes() {
        bitField0_ = (bitField0_ & ~0x10000000);
        timeSeriesCompactionGoalSizeMbytes_ = 1024L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionFileCountThreshold_ = 2000L;
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
       * @return Whether the timeSeriesCompactionFileCountThreshold field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionFileCountThreshold() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
       * @return The timeSeriesCompactionFileCountThreshold.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionFileCountThreshold() {
        return timeSeriesCompactionFileCountThreshold_;
      }
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
       * @param value The timeSeriesCompactionFileCountThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionFileCountThreshold(long value) {

        timeSeriesCompactionFileCountThreshold_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_file_count_threshold = 33 [default = 2000];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionFileCountThreshold() {
        bitField0_ = (bitField0_ & ~0x20000000);
        timeSeriesCompactionFileCountThreshold_ = 2000L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
       * @return Whether the timeSeriesCompactionTimeThresholdSeconds field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionTimeThresholdSeconds() {
        return ((bitField0_ & 0x40000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
       * @return The timeSeriesCompactionTimeThresholdSeconds.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionTimeThresholdSeconds() {
        return timeSeriesCompactionTimeThresholdSeconds_;
      }
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
       * @param value The timeSeriesCompactionTimeThresholdSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionTimeThresholdSeconds(long value) {

        timeSeriesCompactionTimeThresholdSeconds_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_time_threshold_seconds = 34 [default = 3600];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionTimeThresholdSeconds() {
        bitField0_ = (bitField0_ & ~0x40000000);
        timeSeriesCompactionTimeThresholdSeconds_ = 3600L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
       * @return Whether the timeSeriesCompactionEmptyRowsetsThreshold field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionEmptyRowsetsThreshold() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
       * @return The timeSeriesCompactionEmptyRowsetsThreshold.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionEmptyRowsetsThreshold() {
        return timeSeriesCompactionEmptyRowsetsThreshold_;
      }
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
       * @param value The timeSeriesCompactionEmptyRowsetsThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionEmptyRowsetsThreshold(long value) {

        timeSeriesCompactionEmptyRowsetsThreshold_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_empty_rowsets_threshold = 37 [default = 5];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionEmptyRowsetsThreshold() {
        bitField0_ = (bitField0_ & ~0x80000000);
        timeSeriesCompactionEmptyRowsetsThreshold_ = 5L;
        onChanged();
        return this;
      }

      private long timeSeriesCompactionLevelThreshold_ = 1L;
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
       * @return Whether the timeSeriesCompactionLevelThreshold field is set.
       */
      @java.lang.Override
      public boolean hasTimeSeriesCompactionLevelThreshold() {
        return ((bitField1_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
       * @return The timeSeriesCompactionLevelThreshold.
       */
      @java.lang.Override
      public long getTimeSeriesCompactionLevelThreshold() {
        return timeSeriesCompactionLevelThreshold_;
      }
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
       * @param value The timeSeriesCompactionLevelThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSeriesCompactionLevelThreshold(long value) {

        timeSeriesCompactionLevelThreshold_ = value;
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 time_series_compaction_level_threshold = 38 [default = 1];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSeriesCompactionLevelThreshold() {
        bitField1_ = (bitField1_ & ~0x00000001);
        timeSeriesCompactionLevelThreshold_ = 1L;
        onChanged();
        return this;
      }

      private java.lang.Object tableName_ = "";
      /**
       * <pre>
       * Use for selectdb-cloud
       * </pre>
       *
       * <code>optional string table_name = 101;</code>
       * @return Whether the tableName field is set.
       */
      public boolean hasTableName() {
        return ((bitField1_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Use for selectdb-cloud
       * </pre>
       *
       * <code>optional string table_name = 101;</code>
       * @return The tableName.
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        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()) {
            tableName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Use for selectdb-cloud
       * </pre>
       *
       * <code>optional string table_name = 101;</code>
       * @return The bytes for tableName.
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Use for selectdb-cloud
       * </pre>
       *
       * <code>optional string table_name = 101;</code>
       * @param value The tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tableName_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Use for selectdb-cloud
       * </pre>
       *
       * <code>optional string table_name = 101;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableName() {
        tableName_ = getDefaultInstance().getTableName();
        bitField1_ = (bitField1_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Use for selectdb-cloud
       * </pre>
       *
       * <code>optional string table_name = 101;</code>
       * @param value The bytes for tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        tableName_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }

      private long ttlSeconds_ ;
      /**
       * <code>optional int64 ttl_seconds = 102;</code>
       * @return Whether the ttlSeconds field is set.
       */
      @java.lang.Override
      public boolean hasTtlSeconds() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 ttl_seconds = 102;</code>
       * @return The ttlSeconds.
       */
      @java.lang.Override
      public long getTtlSeconds() {
        return ttlSeconds_;
      }
      /**
       * <code>optional int64 ttl_seconds = 102;</code>
       * @param value The ttlSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setTtlSeconds(long value) {

        ttlSeconds_ = value;
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 ttl_seconds = 102;</code>
       * @return This builder for chaining.
       */
      public Builder clearTtlSeconds() {
        bitField1_ = (bitField1_ & ~0x00000004);
        ttlSeconds_ = 0L;
        onChanged();
        return this;
      }

      private int schemaVersion_ ;
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 103;</code>
       * @return Whether the schemaVersion field is set.
       */
      @java.lang.Override
      public boolean hasSchemaVersion() {
        return ((bitField1_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 103;</code>
       * @return The schemaVersion.
       */
      @java.lang.Override
      public int getSchemaVersion() {
        return schemaVersion_;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 103;</code>
       * @param value The schemaVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaVersion(int value) {

        schemaVersion_ = value;
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * index_id, schema_version -&gt; schema
       * </pre>
       *
       * <code>optional int32 schema_version = 103;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaVersion() {
        bitField1_ = (bitField1_ & ~0x00000008);
        schemaVersion_ = 0;
        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.TabletMetaCloudPB)
    }

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

    public static org.apache.doris.proto.OlapFile.TabletMetaCloudPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TabletMetaCloudPB>
        PARSER = new com.google.protobuf.AbstractParser<TabletMetaCloudPB>() {
      @java.lang.Override
      public TabletMetaCloudPB 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<TabletMetaCloudPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>required int32 schema_hash = 2;</code>
     * @return Whether the schemaHash field is set.
     */
    boolean hasSchemaHash();
    /**
     * <code>required int32 schema_hash = 2;</code>
     * @return The schemaHash.
     */
    int getSchemaHash();
  }
  /**
   * Protobuf type {@code doris.OLAPRawDeltaHeaderMessage}
   */
  public static final class OLAPRawDeltaHeaderMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.OLAPRawDeltaHeaderMessage)
      OLAPRawDeltaHeaderMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OLAPRawDeltaHeaderMessage.newBuilder() to construct.
    private OLAPRawDeltaHeaderMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OLAPRawDeltaHeaderMessage() {
    }

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

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

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

    private int bitField0_;
    public static final int SCHEMA_HASH_FIELD_NUMBER = 2;
    private int schemaHash_ = 0;
    /**
     * <code>required int32 schema_hash = 2;</code>
     * @return Whether the schemaHash field is set.
     */
    @java.lang.Override
    public boolean hasSchemaHash() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int32 schema_hash = 2;</code>
     * @return The schemaHash.
     */
    @java.lang.Override
    public int getSchemaHash() {
      return schemaHash_;
    }

    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 (!hasSchemaHash()) {
        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.writeInt32(2, schemaHash_);
      }
      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
          .computeInt32Size(2, schemaHash_);
      }
      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.OlapFile.OLAPRawDeltaHeaderMessage)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage other = (org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage) obj;

      if (hasSchemaHash() != other.hasSchemaHash()) return false;
      if (hasSchemaHash()) {
        if (getSchemaHash()
            != other.getSchemaHash()) 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 (hasSchemaHash()) {
        hash = (37 * hash) + SCHEMA_HASH_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaHash();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage 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.OlapFile.OLAPRawDeltaHeaderMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage 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.OlapFile.OLAPRawDeltaHeaderMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage 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.OlapFile.OLAPRawDeltaHeaderMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage 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.OlapFile.OLAPRawDeltaHeaderMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage 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.OlapFile.OLAPRawDeltaHeaderMessage 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.OLAPRawDeltaHeaderMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.OLAPRawDeltaHeaderMessage)
        org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_OLAPRawDeltaHeaderMessage_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        schemaHash_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.schemaHash_ = schemaHash_;
          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.OlapFile.OLAPRawDeltaHeaderMessage) {
          return mergeFrom((org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage other) {
        if (other == org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage.getDefaultInstance()) return this;
        if (other.hasSchemaHash()) {
          setSchemaHash(other.getSchemaHash());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasSchemaHash()) {
          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 16: {
                schemaHash_ = input.readInt32();
                bitField0_ |= 0x00000001;
                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 int schemaHash_ ;
      /**
       * <code>required int32 schema_hash = 2;</code>
       * @return Whether the schemaHash field is set.
       */
      @java.lang.Override
      public boolean hasSchemaHash() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int32 schema_hash = 2;</code>
       * @return The schemaHash.
       */
      @java.lang.Override
      public int getSchemaHash() {
        return schemaHash_;
      }
      /**
       * <code>required int32 schema_hash = 2;</code>
       * @param value The schemaHash to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaHash(int value) {

        schemaHash_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 schema_hash = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaHash() {
        bitField0_ = (bitField0_ & ~0x00000001);
        schemaHash_ = 0;
        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.OLAPRawDeltaHeaderMessage)
    }

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

    public static org.apache.doris.proto.OlapFile.OLAPRawDeltaHeaderMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<OLAPRawDeltaHeaderMessage>
        PARSER = new com.google.protobuf.AbstractParser<OLAPRawDeltaHeaderMessage>() {
      @java.lang.Override
      public OLAPRawDeltaHeaderMessage 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<OLAPRawDeltaHeaderMessage> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @return A list containing the rowsetIds.
     */
    java.util.List<java.lang.String>
        getRowsetIdsList();
    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @return The count of rowsetIds.
     */
    int getRowsetIdsCount();
    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @param index The index of the element to return.
     * @return The rowsetIds at the given index.
     */
    java.lang.String getRowsetIds(int index);
    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the rowsetIds at the given index.
     */
    com.google.protobuf.ByteString
        getRowsetIdsBytes(int index);

    /**
     * <code>repeated uint32 segment_ids = 2;</code>
     * @return A list containing the segmentIds.
     */
    java.util.List<java.lang.Integer> getSegmentIdsList();
    /**
     * <code>repeated uint32 segment_ids = 2;</code>
     * @return The count of segmentIds.
     */
    int getSegmentIdsCount();
    /**
     * <code>repeated uint32 segment_ids = 2;</code>
     * @param index The index of the element to return.
     * @return The segmentIds at the given index.
     */
    int getSegmentIds(int index);

    /**
     * <code>repeated int64 versions = 3;</code>
     * @return A list containing the versions.
     */
    java.util.List<java.lang.Long> getVersionsList();
    /**
     * <code>repeated int64 versions = 3;</code>
     * @return The count of versions.
     */
    int getVersionsCount();
    /**
     * <code>repeated int64 versions = 3;</code>
     * @param index The index of the element to return.
     * @return The versions at the given index.
     */
    long getVersions(int index);

    /**
     * <pre>
     * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
     * </pre>
     *
     * <code>repeated bytes segment_delete_bitmaps = 4;</code>
     * @return A list containing the segmentDeleteBitmaps.
     */
    java.util.List<com.google.protobuf.ByteString> getSegmentDeleteBitmapsList();
    /**
     * <pre>
     * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
     * </pre>
     *
     * <code>repeated bytes segment_delete_bitmaps = 4;</code>
     * @return The count of segmentDeleteBitmaps.
     */
    int getSegmentDeleteBitmapsCount();
    /**
     * <pre>
     * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
     * </pre>
     *
     * <code>repeated bytes segment_delete_bitmaps = 4;</code>
     * @param index The index of the element to return.
     * @return The segmentDeleteBitmaps at the given index.
     */
    com.google.protobuf.ByteString getSegmentDeleteBitmaps(int index);
  }
  /**
   * Protobuf type {@code doris.DeleteBitmapPB}
   */
  public static final class DeleteBitmapPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.DeleteBitmapPB)
      DeleteBitmapPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteBitmapPB.newBuilder() to construct.
    private DeleteBitmapPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteBitmapPB() {
      rowsetIds_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      segmentIds_ = emptyIntList();
      versions_ = emptyLongList();
      segmentDeleteBitmaps_ = emptyList(com.google.protobuf.ByteString.class);
    }

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

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

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

    public static final int ROWSET_IDS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList rowsetIds_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @return A list containing the rowsetIds.
     */
    public com.google.protobuf.ProtocolStringList
        getRowsetIdsList() {
      return rowsetIds_;
    }
    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @return The count of rowsetIds.
     */
    public int getRowsetIdsCount() {
      return rowsetIds_.size();
    }
    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @param index The index of the element to return.
     * @return The rowsetIds at the given index.
     */
    public java.lang.String getRowsetIds(int index) {
      return rowsetIds_.get(index);
    }
    /**
     * <code>repeated string rowset_ids = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the rowsetIds at the given index.
     */
    public com.google.protobuf.ByteString
        getRowsetIdsBytes(int index) {
      return rowsetIds_.getByteString(index);
    }

    public static final int SEGMENT_IDS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList segmentIds_ =
        emptyIntList();
    /**
     * <code>repeated uint32 segment_ids = 2;</code>
     * @return A list containing the segmentIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getSegmentIdsList() {
      return segmentIds_;
    }
    /**
     * <code>repeated uint32 segment_ids = 2;</code>
     * @return The count of segmentIds.
     */
    public int getSegmentIdsCount() {
      return segmentIds_.size();
    }
    /**
     * <code>repeated uint32 segment_ids = 2;</code>
     * @param index The index of the element to return.
     * @return The segmentIds at the given index.
     */
    public int getSegmentIds(int index) {
      return segmentIds_.getInt(index);
    }

    public static final int VERSIONS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList versions_ =
        emptyLongList();
    /**
     * <code>repeated int64 versions = 3;</code>
     * @return A list containing the versions.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getVersionsList() {
      return versions_;
    }
    /**
     * <code>repeated int64 versions = 3;</code>
     * @return The count of versions.
     */
    public int getVersionsCount() {
      return versions_.size();
    }
    /**
     * <code>repeated int64 versions = 3;</code>
     * @param index The index of the element to return.
     * @return The versions at the given index.
     */
    public long getVersions(int index) {
      return versions_.getLong(index);
    }

    public static final int SEGMENT_DELETE_BITMAPS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> segmentDeleteBitmaps_ =
        emptyList(com.google.protobuf.ByteString.class);
    /**
     * <pre>
     * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
     * </pre>
     *
     * <code>repeated bytes segment_delete_bitmaps = 4;</code>
     * @return A list containing the segmentDeleteBitmaps.
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.ByteString>
        getSegmentDeleteBitmapsList() {
      return segmentDeleteBitmaps_;
    }
    /**
     * <pre>
     * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
     * </pre>
     *
     * <code>repeated bytes segment_delete_bitmaps = 4;</code>
     * @return The count of segmentDeleteBitmaps.
     */
    public int getSegmentDeleteBitmapsCount() {
      return segmentDeleteBitmaps_.size();
    }
    /**
     * <pre>
     * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
     * </pre>
     *
     * <code>repeated bytes segment_delete_bitmaps = 4;</code>
     * @param index The index of the element to return.
     * @return The segmentDeleteBitmaps at the given index.
     */
    public com.google.protobuf.ByteString getSegmentDeleteBitmaps(int index) {
      return segmentDeleteBitmaps_.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;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < rowsetIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, rowsetIds_.getRaw(i));
      }
      for (int i = 0; i < segmentIds_.size(); i++) {
        output.writeUInt32(2, segmentIds_.getInt(i));
      }
      for (int i = 0; i < versions_.size(); i++) {
        output.writeInt64(3, versions_.getLong(i));
      }
      for (int i = 0; i < segmentDeleteBitmaps_.size(); i++) {
        output.writeBytes(4, segmentDeleteBitmaps_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < rowsetIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(rowsetIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getRowsetIdsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < segmentIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(segmentIds_.getInt(i));
        }
        size += dataSize;
        size += 1 * getSegmentIdsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < versions_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(versions_.getLong(i));
        }
        size += dataSize;
        size += 1 * getVersionsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < segmentDeleteBitmaps_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(segmentDeleteBitmaps_.get(i));
        }
        size += dataSize;
        size += 1 * getSegmentDeleteBitmapsList().size();
      }
      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.OlapFile.DeleteBitmapPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.DeleteBitmapPB other = (org.apache.doris.proto.OlapFile.DeleteBitmapPB) obj;

      if (!getRowsetIdsList()
          .equals(other.getRowsetIdsList())) return false;
      if (!getSegmentIdsList()
          .equals(other.getSegmentIdsList())) return false;
      if (!getVersionsList()
          .equals(other.getVersionsList())) return false;
      if (!getSegmentDeleteBitmapsList()
          .equals(other.getSegmentDeleteBitmapsList())) 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 (getRowsetIdsCount() > 0) {
        hash = (37 * hash) + ROWSET_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getRowsetIdsList().hashCode();
      }
      if (getSegmentIdsCount() > 0) {
        hash = (37 * hash) + SEGMENT_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getSegmentIdsList().hashCode();
      }
      if (getVersionsCount() > 0) {
        hash = (37 * hash) + VERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getVersionsList().hashCode();
      }
      if (getSegmentDeleteBitmapsCount() > 0) {
        hash = (37 * hash) + SEGMENT_DELETE_BITMAPS_FIELD_NUMBER;
        hash = (53 * hash) + getSegmentDeleteBitmapsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB 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.OlapFile.DeleteBitmapPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB 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.OlapFile.DeleteBitmapPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB 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.OlapFile.DeleteBitmapPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB 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.OlapFile.DeleteBitmapPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB 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.OlapFile.DeleteBitmapPB 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.DeleteBitmapPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.DeleteBitmapPB)
        org.apache.doris.proto.OlapFile.DeleteBitmapPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_DeleteBitmapPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.DeleteBitmapPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        rowsetIds_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        segmentIds_ = emptyIntList();
        versions_ = emptyLongList();
        segmentDeleteBitmaps_ = emptyList(com.google.protobuf.ByteString.class);
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.DeleteBitmapPB result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          rowsetIds_.makeImmutable();
          result.rowsetIds_ = rowsetIds_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          segmentIds_.makeImmutable();
          result.segmentIds_ = segmentIds_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          versions_.makeImmutable();
          result.versions_ = versions_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          segmentDeleteBitmaps_.makeImmutable();
          result.segmentDeleteBitmaps_ = segmentDeleteBitmaps_;
        }
      }

      @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.OlapFile.DeleteBitmapPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.DeleteBitmapPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.DeleteBitmapPB other) {
        if (other == org.apache.doris.proto.OlapFile.DeleteBitmapPB.getDefaultInstance()) return this;
        if (!other.rowsetIds_.isEmpty()) {
          if (rowsetIds_.isEmpty()) {
            rowsetIds_ = other.rowsetIds_;
            bitField0_ |= 0x00000001;
          } else {
            ensureRowsetIdsIsMutable();
            rowsetIds_.addAll(other.rowsetIds_);
          }
          onChanged();
        }
        if (!other.segmentIds_.isEmpty()) {
          if (segmentIds_.isEmpty()) {
            segmentIds_ = other.segmentIds_;
            segmentIds_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureSegmentIdsIsMutable();
            segmentIds_.addAll(other.segmentIds_);
          }
          onChanged();
        }
        if (!other.versions_.isEmpty()) {
          if (versions_.isEmpty()) {
            versions_ = other.versions_;
            versions_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureVersionsIsMutable();
            versions_.addAll(other.versions_);
          }
          onChanged();
        }
        if (!other.segmentDeleteBitmaps_.isEmpty()) {
          if (segmentDeleteBitmaps_.isEmpty()) {
            segmentDeleteBitmaps_ = other.segmentDeleteBitmaps_;
            segmentDeleteBitmaps_.makeImmutable();
            bitField0_ |= 0x00000008;
          } else {
            ensureSegmentDeleteBitmapsIsMutable();
            segmentDeleteBitmaps_.addAll(other.segmentDeleteBitmaps_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureRowsetIdsIsMutable();
                rowsetIds_.add(bs);
                break;
              } // case 10
              case 16: {
                int v = input.readUInt32();
                ensureSegmentIdsIsMutable();
                segmentIds_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureSegmentIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  segmentIds_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              case 24: {
                long v = input.readInt64();
                ensureVersionsIsMutable();
                versions_.addLong(v);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureVersionsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  versions_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 26
              case 34: {
                com.google.protobuf.ByteString v = input.readBytes();
                ensureSegmentDeleteBitmapsIsMutable();
                segmentDeleteBitmaps_.add(v);
                break;
              } // case 34
              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 com.google.protobuf.LazyStringArrayList rowsetIds_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureRowsetIdsIsMutable() {
        if (!rowsetIds_.isModifiable()) {
          rowsetIds_ = new com.google.protobuf.LazyStringArrayList(rowsetIds_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @return A list containing the rowsetIds.
       */
      public com.google.protobuf.ProtocolStringList
          getRowsetIdsList() {
        rowsetIds_.makeImmutable();
        return rowsetIds_;
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @return The count of rowsetIds.
       */
      public int getRowsetIdsCount() {
        return rowsetIds_.size();
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @param index The index of the element to return.
       * @return The rowsetIds at the given index.
       */
      public java.lang.String getRowsetIds(int index) {
        return rowsetIds_.get(index);
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the rowsetIds at the given index.
       */
      public com.google.protobuf.ByteString
          getRowsetIdsBytes(int index) {
        return rowsetIds_.getByteString(index);
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @param index The index to set the value at.
       * @param value The rowsetIds to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetIds(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureRowsetIdsIsMutable();
        rowsetIds_.set(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @param value The rowsetIds to add.
       * @return This builder for chaining.
       */
      public Builder addRowsetIds(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureRowsetIdsIsMutable();
        rowsetIds_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @param values The rowsetIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllRowsetIds(
          java.lang.Iterable<java.lang.String> values) {
        ensureRowsetIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rowsetIds_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetIds() {
        rowsetIds_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rowset_ids = 1;</code>
       * @param value The bytes of the rowsetIds to add.
       * @return This builder for chaining.
       */
      public Builder addRowsetIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureRowsetIdsIsMutable();
        rowsetIds_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList segmentIds_ = emptyIntList();
      private void ensureSegmentIdsIsMutable() {
        if (!segmentIds_.isModifiable()) {
          segmentIds_ = makeMutableCopy(segmentIds_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated uint32 segment_ids = 2;</code>
       * @return A list containing the segmentIds.
       */
      public java.util.List<java.lang.Integer>
          getSegmentIdsList() {
        segmentIds_.makeImmutable();
        return segmentIds_;
      }
      /**
       * <code>repeated uint32 segment_ids = 2;</code>
       * @return The count of segmentIds.
       */
      public int getSegmentIdsCount() {
        return segmentIds_.size();
      }
      /**
       * <code>repeated uint32 segment_ids = 2;</code>
       * @param index The index of the element to return.
       * @return The segmentIds at the given index.
       */
      public int getSegmentIds(int index) {
        return segmentIds_.getInt(index);
      }
      /**
       * <code>repeated uint32 segment_ids = 2;</code>
       * @param index The index to set the value at.
       * @param value The segmentIds to set.
       * @return This builder for chaining.
       */
      public Builder setSegmentIds(
          int index, int value) {

        ensureSegmentIdsIsMutable();
        segmentIds_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 segment_ids = 2;</code>
       * @param value The segmentIds to add.
       * @return This builder for chaining.
       */
      public Builder addSegmentIds(int value) {

        ensureSegmentIdsIsMutable();
        segmentIds_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 segment_ids = 2;</code>
       * @param values The segmentIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllSegmentIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSegmentIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, segmentIds_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 segment_ids = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSegmentIds() {
        segmentIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList versions_ = emptyLongList();
      private void ensureVersionsIsMutable() {
        if (!versions_.isModifiable()) {
          versions_ = makeMutableCopy(versions_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>repeated int64 versions = 3;</code>
       * @return A list containing the versions.
       */
      public java.util.List<java.lang.Long>
          getVersionsList() {
        versions_.makeImmutable();
        return versions_;
      }
      /**
       * <code>repeated int64 versions = 3;</code>
       * @return The count of versions.
       */
      public int getVersionsCount() {
        return versions_.size();
      }
      /**
       * <code>repeated int64 versions = 3;</code>
       * @param index The index of the element to return.
       * @return The versions at the given index.
       */
      public long getVersions(int index) {
        return versions_.getLong(index);
      }
      /**
       * <code>repeated int64 versions = 3;</code>
       * @param index The index to set the value at.
       * @param value The versions to set.
       * @return This builder for chaining.
       */
      public Builder setVersions(
          int index, long value) {

        ensureVersionsIsMutable();
        versions_.setLong(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 versions = 3;</code>
       * @param value The versions to add.
       * @return This builder for chaining.
       */
      public Builder addVersions(long value) {

        ensureVersionsIsMutable();
        versions_.addLong(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 versions = 3;</code>
       * @param values The versions to add.
       * @return This builder for chaining.
       */
      public Builder addAllVersions(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureVersionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, versions_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 versions = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersions() {
        versions_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> segmentDeleteBitmaps_ = emptyList(com.google.protobuf.ByteString.class);
      private void ensureSegmentDeleteBitmapsIsMutable() {
        if (!segmentDeleteBitmaps_.isModifiable()) {
          segmentDeleteBitmaps_ = makeMutableCopy(segmentDeleteBitmaps_);
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
       * </pre>
       *
       * <code>repeated bytes segment_delete_bitmaps = 4;</code>
       * @return A list containing the segmentDeleteBitmaps.
       */
      public java.util.List<com.google.protobuf.ByteString>
          getSegmentDeleteBitmapsList() {
        segmentDeleteBitmaps_.makeImmutable();
        return segmentDeleteBitmaps_;
      }
      /**
       * <pre>
       * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
       * </pre>
       *
       * <code>repeated bytes segment_delete_bitmaps = 4;</code>
       * @return The count of segmentDeleteBitmaps.
       */
      public int getSegmentDeleteBitmapsCount() {
        return segmentDeleteBitmaps_.size();
      }
      /**
       * <pre>
       * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
       * </pre>
       *
       * <code>repeated bytes segment_delete_bitmaps = 4;</code>
       * @param index The index of the element to return.
       * @return The segmentDeleteBitmaps at the given index.
       */
      public com.google.protobuf.ByteString getSegmentDeleteBitmaps(int index) {
        return segmentDeleteBitmaps_.get(index);
      }
      /**
       * <pre>
       * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
       * </pre>
       *
       * <code>repeated bytes segment_delete_bitmaps = 4;</code>
       * @param index The index to set the value at.
       * @param value The segmentDeleteBitmaps to set.
       * @return This builder for chaining.
       */
      public Builder setSegmentDeleteBitmaps(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureSegmentDeleteBitmapsIsMutable();
        segmentDeleteBitmaps_.set(index, value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
       * </pre>
       *
       * <code>repeated bytes segment_delete_bitmaps = 4;</code>
       * @param value The segmentDeleteBitmaps to add.
       * @return This builder for chaining.
       */
      public Builder addSegmentDeleteBitmaps(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureSegmentDeleteBitmapsIsMutable();
        segmentDeleteBitmaps_.add(value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
       * </pre>
       *
       * <code>repeated bytes segment_delete_bitmaps = 4;</code>
       * @param values The segmentDeleteBitmaps to add.
       * @return This builder for chaining.
       */
      public Builder addAllSegmentDeleteBitmaps(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        ensureSegmentDeleteBitmapsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, segmentDeleteBitmaps_);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
       * </pre>
       *
       * <code>repeated bytes segment_delete_bitmaps = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSegmentDeleteBitmaps() {
        segmentDeleteBitmaps_ = emptyList(com.google.protobuf.ByteString.class);
        bitField0_ = (bitField0_ & ~0x00000008);
        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.DeleteBitmapPB)
    }

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

    public static org.apache.doris.proto.OlapFile.DeleteBitmapPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DeleteBitmapPB>
        PARSER = new com.google.protobuf.AbstractParser<DeleteBitmapPB>() {
      @java.lang.Override
      public DeleteBitmapPB 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<DeleteBitmapPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional int64 version = 1;</code>
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * <code>optional int64 version = 1;</code>
     * @return The version.
     */
    long getVersion();

    /**
     * <code>optional int64 tablet_id = 2;</code>
     * @return Whether the tabletId field is set.
     */
    boolean hasTabletId();
    /**
     * <code>optional int64 tablet_id = 2;</code>
     * @return The tabletId.
     */
    long getTabletId();

    /**
     * <pre>
     * Deprecated use rowset_id_v2 instead
     * </pre>
     *
     * <code>optional int64 rowset_id = 3;</code>
     * @return Whether the rowsetId field is set.
     */
    boolean hasRowsetId();
    /**
     * <pre>
     * Deprecated use rowset_id_v2 instead
     * </pre>
     *
     * <code>optional int64 rowset_id = 3;</code>
     * @return The rowsetId.
     */
    long getRowsetId();

    /**
     * <code>optional int64 num_segments = 4;</code>
     * @return Whether the numSegments field is set.
     */
    boolean hasNumSegments();
    /**
     * <code>optional int64 num_segments = 4;</code>
     * @return The numSegments.
     */
    long getNumSegments();

    /**
     * <code>optional int64 creation_time = 5;</code>
     * @return Whether the creationTime field is set.
     */
    boolean hasCreationTime();
    /**
     * <code>optional int64 creation_time = 5;</code>
     * @return The creationTime.
     */
    long getCreationTime();

    /**
     * <code>optional string rowset_id_v2 = 6;</code>
     * @return Whether the rowsetIdV2 field is set.
     */
    boolean hasRowsetIdV2();
    /**
     * <code>optional string rowset_id_v2 = 6;</code>
     * @return The rowsetIdV2.
     */
    java.lang.String getRowsetIdV2();
    /**
     * <code>optional string rowset_id_v2 = 6;</code>
     * @return The bytes for rowsetIdV2.
     */
    com.google.protobuf.ByteString
        getRowsetIdV2Bytes();
  }
  /**
   * Protobuf type {@code doris.BinlogMetaEntryPB}
   */
  public static final class BinlogMetaEntryPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.BinlogMetaEntryPB)
      BinlogMetaEntryPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BinlogMetaEntryPB.newBuilder() to construct.
    private BinlogMetaEntryPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BinlogMetaEntryPB() {
      rowsetIdV2_ = "";
    }

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

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

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

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private long version_ = 0L;
    /**
     * <code>optional int64 version = 1;</code>
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 version = 1;</code>
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int TABLET_ID_FIELD_NUMBER = 2;
    private long tabletId_ = 0L;
    /**
     * <code>optional int64 tablet_id = 2;</code>
     * @return Whether the tabletId field is set.
     */
    @java.lang.Override
    public boolean hasTabletId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 tablet_id = 2;</code>
     * @return The tabletId.
     */
    @java.lang.Override
    public long getTabletId() {
      return tabletId_;
    }

    public static final int ROWSET_ID_FIELD_NUMBER = 3;
    private long rowsetId_ = 0L;
    /**
     * <pre>
     * Deprecated use rowset_id_v2 instead
     * </pre>
     *
     * <code>optional int64 rowset_id = 3;</code>
     * @return Whether the rowsetId field is set.
     */
    @java.lang.Override
    public boolean hasRowsetId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * Deprecated use rowset_id_v2 instead
     * </pre>
     *
     * <code>optional int64 rowset_id = 3;</code>
     * @return The rowsetId.
     */
    @java.lang.Override
    public long getRowsetId() {
      return rowsetId_;
    }

    public static final int NUM_SEGMENTS_FIELD_NUMBER = 4;
    private long numSegments_ = 0L;
    /**
     * <code>optional int64 num_segments = 4;</code>
     * @return Whether the numSegments field is set.
     */
    @java.lang.Override
    public boolean hasNumSegments() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int64 num_segments = 4;</code>
     * @return The numSegments.
     */
    @java.lang.Override
    public long getNumSegments() {
      return numSegments_;
    }

    public static final int CREATION_TIME_FIELD_NUMBER = 5;
    private long creationTime_ = 0L;
    /**
     * <code>optional int64 creation_time = 5;</code>
     * @return Whether the creationTime field is set.
     */
    @java.lang.Override
    public boolean hasCreationTime() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int64 creation_time = 5;</code>
     * @return The creationTime.
     */
    @java.lang.Override
    public long getCreationTime() {
      return creationTime_;
    }

    public static final int ROWSET_ID_V2_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rowsetIdV2_ = "";
    /**
     * <code>optional string rowset_id_v2 = 6;</code>
     * @return Whether the rowsetIdV2 field is set.
     */
    @java.lang.Override
    public boolean hasRowsetIdV2() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string rowset_id_v2 = 6;</code>
     * @return The rowsetIdV2.
     */
    @java.lang.Override
    public java.lang.String getRowsetIdV2() {
      java.lang.Object ref = rowsetIdV2_;
      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()) {
          rowsetIdV2_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string rowset_id_v2 = 6;</code>
     * @return The bytes for rowsetIdV2.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRowsetIdV2Bytes() {
      java.lang.Object ref = rowsetIdV2_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rowsetIdV2_ = 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;

      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, version_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, tabletId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, rowsetId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(4, numSegments_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt64(5, creationTime_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, rowsetIdV2_);
      }
      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, version_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, tabletId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, rowsetId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, numSegments_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, creationTime_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, rowsetIdV2_);
      }
      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.OlapFile.BinlogMetaEntryPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.BinlogMetaEntryPB other = (org.apache.doris.proto.OlapFile.BinlogMetaEntryPB) obj;

      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (hasTabletId() != other.hasTabletId()) return false;
      if (hasTabletId()) {
        if (getTabletId()
            != other.getTabletId()) return false;
      }
      if (hasRowsetId() != other.hasRowsetId()) return false;
      if (hasRowsetId()) {
        if (getRowsetId()
            != other.getRowsetId()) return false;
      }
      if (hasNumSegments() != other.hasNumSegments()) return false;
      if (hasNumSegments()) {
        if (getNumSegments()
            != other.getNumSegments()) return false;
      }
      if (hasCreationTime() != other.hasCreationTime()) return false;
      if (hasCreationTime()) {
        if (getCreationTime()
            != other.getCreationTime()) return false;
      }
      if (hasRowsetIdV2() != other.hasRowsetIdV2()) return false;
      if (hasRowsetIdV2()) {
        if (!getRowsetIdV2()
            .equals(other.getRowsetIdV2())) 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 (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (hasTabletId()) {
        hash = (37 * hash) + TABLET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTabletId());
      }
      if (hasRowsetId()) {
        hash = (37 * hash) + ROWSET_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRowsetId());
      }
      if (hasNumSegments()) {
        hash = (37 * hash) + NUM_SEGMENTS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNumSegments());
      }
      if (hasCreationTime()) {
        hash = (37 * hash) + CREATION_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCreationTime());
      }
      if (hasRowsetIdV2()) {
        hash = (37 * hash) + ROWSET_ID_V2_FIELD_NUMBER;
        hash = (53 * hash) + getRowsetIdV2().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB 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.OlapFile.BinlogMetaEntryPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB 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.OlapFile.BinlogMetaEntryPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB 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.OlapFile.BinlogMetaEntryPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB 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.OlapFile.BinlogMetaEntryPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB 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.OlapFile.BinlogMetaEntryPB 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.BinlogMetaEntryPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.BinlogMetaEntryPB)
        org.apache.doris.proto.OlapFile.BinlogMetaEntryPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_BinlogMetaEntryPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.BinlogMetaEntryPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        version_ = 0L;
        tabletId_ = 0L;
        rowsetId_ = 0L;
        numSegments_ = 0L;
        creationTime_ = 0L;
        rowsetIdV2_ = "";
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.BinlogMetaEntryPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tabletId_ = tabletId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.rowsetId_ = rowsetId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.numSegments_ = numSegments_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.creationTime_ = creationTime_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.rowsetIdV2_ = rowsetIdV2_;
          to_bitField0_ |= 0x00000020;
        }
        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.OlapFile.BinlogMetaEntryPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.BinlogMetaEntryPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.BinlogMetaEntryPB other) {
        if (other == org.apache.doris.proto.OlapFile.BinlogMetaEntryPB.getDefaultInstance()) return this;
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasTabletId()) {
          setTabletId(other.getTabletId());
        }
        if (other.hasRowsetId()) {
          setRowsetId(other.getRowsetId());
        }
        if (other.hasNumSegments()) {
          setNumSegments(other.getNumSegments());
        }
        if (other.hasCreationTime()) {
          setCreationTime(other.getCreationTime());
        }
        if (other.hasRowsetIdV2()) {
          rowsetIdV2_ = other.rowsetIdV2_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                version_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                tabletId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                rowsetId_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                numSegments_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                creationTime_ = input.readInt64();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                rowsetIdV2_ = input.readBytes();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              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 version_ ;
      /**
       * <code>optional int64 version = 1;</code>
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 version = 1;</code>
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * <code>optional int64 version = 1;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

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

      private long tabletId_ ;
      /**
       * <code>optional int64 tablet_id = 2;</code>
       * @return Whether the tabletId field is set.
       */
      @java.lang.Override
      public boolean hasTabletId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 tablet_id = 2;</code>
       * @return The tabletId.
       */
      @java.lang.Override
      public long getTabletId() {
        return tabletId_;
      }
      /**
       * <code>optional int64 tablet_id = 2;</code>
       * @param value The tabletId to set.
       * @return This builder for chaining.
       */
      public Builder setTabletId(long value) {

        tabletId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 tablet_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTabletId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        tabletId_ = 0L;
        onChanged();
        return this;
      }

      private long rowsetId_ ;
      /**
       * <pre>
       * Deprecated use rowset_id_v2 instead
       * </pre>
       *
       * <code>optional int64 rowset_id = 3;</code>
       * @return Whether the rowsetId field is set.
       */
      @java.lang.Override
      public boolean hasRowsetId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Deprecated use rowset_id_v2 instead
       * </pre>
       *
       * <code>optional int64 rowset_id = 3;</code>
       * @return The rowsetId.
       */
      @java.lang.Override
      public long getRowsetId() {
        return rowsetId_;
      }
      /**
       * <pre>
       * Deprecated use rowset_id_v2 instead
       * </pre>
       *
       * <code>optional int64 rowset_id = 3;</code>
       * @param value The rowsetId to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetId(long value) {

        rowsetId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Deprecated use rowset_id_v2 instead
       * </pre>
       *
       * <code>optional int64 rowset_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        rowsetId_ = 0L;
        onChanged();
        return this;
      }

      private long numSegments_ ;
      /**
       * <code>optional int64 num_segments = 4;</code>
       * @return Whether the numSegments field is set.
       */
      @java.lang.Override
      public boolean hasNumSegments() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int64 num_segments = 4;</code>
       * @return The numSegments.
       */
      @java.lang.Override
      public long getNumSegments() {
        return numSegments_;
      }
      /**
       * <code>optional int64 num_segments = 4;</code>
       * @param value The numSegments to set.
       * @return This builder for chaining.
       */
      public Builder setNumSegments(long value) {

        numSegments_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 num_segments = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumSegments() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numSegments_ = 0L;
        onChanged();
        return this;
      }

      private long creationTime_ ;
      /**
       * <code>optional int64 creation_time = 5;</code>
       * @return Whether the creationTime field is set.
       */
      @java.lang.Override
      public boolean hasCreationTime() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int64 creation_time = 5;</code>
       * @return The creationTime.
       */
      @java.lang.Override
      public long getCreationTime() {
        return creationTime_;
      }
      /**
       * <code>optional int64 creation_time = 5;</code>
       * @param value The creationTime to set.
       * @return This builder for chaining.
       */
      public Builder setCreationTime(long value) {

        creationTime_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 creation_time = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreationTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        creationTime_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object rowsetIdV2_ = "";
      /**
       * <code>optional string rowset_id_v2 = 6;</code>
       * @return Whether the rowsetIdV2 field is set.
       */
      public boolean hasRowsetIdV2() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string rowset_id_v2 = 6;</code>
       * @return The rowsetIdV2.
       */
      public java.lang.String getRowsetIdV2() {
        java.lang.Object ref = rowsetIdV2_;
        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()) {
            rowsetIdV2_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string rowset_id_v2 = 6;</code>
       * @return The bytes for rowsetIdV2.
       */
      public com.google.protobuf.ByteString
          getRowsetIdV2Bytes() {
        java.lang.Object ref = rowsetIdV2_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rowsetIdV2_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string rowset_id_v2 = 6;</code>
       * @param value The rowsetIdV2 to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetIdV2(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rowsetIdV2_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional string rowset_id_v2 = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowsetIdV2() {
        rowsetIdV2_ = getDefaultInstance().getRowsetIdV2();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>optional string rowset_id_v2 = 6;</code>
       * @param value The bytes for rowsetIdV2 to set.
       * @return This builder for chaining.
       */
      public Builder setRowsetIdV2Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        rowsetIdV2_ = value;
        bitField0_ |= 0x00000020;
        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.BinlogMetaEntryPB)
    }

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

    public static org.apache.doris.proto.OlapFile.BinlogMetaEntryPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<BinlogMetaEntryPB>
        PARSER = new com.google.protobuf.AbstractParser<BinlogMetaEntryPB>() {
      @java.lang.Override
      public BinlogMetaEntryPB 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<BinlogMetaEntryPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>optional int64 partition_id = 1;</code>
     * @return Whether the partitionId field is set.
     */
    boolean hasPartitionId();
    /**
     * <code>optional int64 partition_id = 1;</code>
     * @return The partitionId.
     */
    long getPartitionId();

    /**
     * <code>optional int64 transaction_id = 2;</code>
     * @return Whether the transactionId field is set.
     */
    boolean hasTransactionId();
    /**
     * <code>optional int64 transaction_id = 2;</code>
     * @return The transactionId.
     */
    long getTransactionId();
  }
  /**
   * Protobuf type {@code doris.PendingPublishInfoPB}
   */
  public static final class PendingPublishInfoPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PendingPublishInfoPB)
      PendingPublishInfoPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PendingPublishInfoPB.newBuilder() to construct.
    private PendingPublishInfoPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PendingPublishInfoPB() {
    }

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

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

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

    private int bitField0_;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private long partitionId_ = 0L;
    /**
     * <code>optional int64 partition_id = 1;</code>
     * @return Whether the partitionId field is set.
     */
    @java.lang.Override
    public boolean hasPartitionId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 partition_id = 1;</code>
     * @return The partitionId.
     */
    @java.lang.Override
    public long getPartitionId() {
      return partitionId_;
    }

    public static final int TRANSACTION_ID_FIELD_NUMBER = 2;
    private long transactionId_ = 0L;
    /**
     * <code>optional int64 transaction_id = 2;</code>
     * @return Whether the transactionId field is set.
     */
    @java.lang.Override
    public boolean hasTransactionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 transaction_id = 2;</code>
     * @return The transactionId.
     */
    @java.lang.Override
    public long getTransactionId() {
      return transactionId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 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, partitionId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, transactionId_);
      }
      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, partitionId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, transactionId_);
      }
      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.OlapFile.PendingPublishInfoPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.PendingPublishInfoPB other = (org.apache.doris.proto.OlapFile.PendingPublishInfoPB) obj;

      if (hasPartitionId() != other.hasPartitionId()) return false;
      if (hasPartitionId()) {
        if (getPartitionId()
            != other.getPartitionId()) return false;
      }
      if (hasTransactionId() != other.hasTransactionId()) return false;
      if (hasTransactionId()) {
        if (getTransactionId()
            != other.getTransactionId()) 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 (hasPartitionId()) {
        hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPartitionId());
      }
      if (hasTransactionId()) {
        hash = (37 * hash) + TRANSACTION_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTransactionId());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB 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.OlapFile.PendingPublishInfoPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB 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.OlapFile.PendingPublishInfoPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB 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.OlapFile.PendingPublishInfoPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB 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.OlapFile.PendingPublishInfoPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB 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.OlapFile.PendingPublishInfoPB 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.PendingPublishInfoPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.PendingPublishInfoPB)
        org.apache.doris.proto.OlapFile.PendingPublishInfoPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_PendingPublishInfoPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.PendingPublishInfoPB.newBuilder()
      private Builder() {

      }

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

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

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.PendingPublishInfoPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.transactionId_ = transactionId_;
          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.OlapFile.PendingPublishInfoPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.PendingPublishInfoPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.PendingPublishInfoPB other) {
        if (other == org.apache.doris.proto.OlapFile.PendingPublishInfoPB.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                partitionId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                transactionId_ = 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 long partitionId_ ;
      /**
       * <code>optional int64 partition_id = 1;</code>
       * @return Whether the partitionId field is set.
       */
      @java.lang.Override
      public boolean hasPartitionId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 partition_id = 1;</code>
       * @return The partitionId.
       */
      @java.lang.Override
      public long getPartitionId() {
        return partitionId_;
      }
      /**
       * <code>optional int64 partition_id = 1;</code>
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(long value) {

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

      private long transactionId_ ;
      /**
       * <code>optional int64 transaction_id = 2;</code>
       * @return Whether the transactionId field is set.
       */
      @java.lang.Override
      public boolean hasTransactionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 transaction_id = 2;</code>
       * @return The transactionId.
       */
      @java.lang.Override
      public long getTransactionId() {
        return transactionId_;
      }
      /**
       * <code>optional int64 transaction_id = 2;</code>
       * @param value The transactionId to set.
       * @return This builder for chaining.
       */
      public Builder setTransactionId(long value) {

        transactionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 transaction_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTransactionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        transactionId_ = 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.PendingPublishInfoPB)
    }

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

    public static org.apache.doris.proto.OlapFile.PendingPublishInfoPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PendingPublishInfoPB>
        PARSER = new com.google.protobuf.AbstractParser<PendingPublishInfoPB>() {
      @java.lang.Override
      public PendingPublishInfoPB 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<PendingPublishInfoPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB> 
        getRowsetBinlogMetasList();
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB getRowsetBinlogMetas(int index);
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    int getRowsetBinlogMetasCount();
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder> 
        getRowsetBinlogMetasOrBuilderList();
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder getRowsetBinlogMetasOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code doris.RowsetBinlogMetasPB}
   */
  public static final class RowsetBinlogMetasPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.RowsetBinlogMetasPB)
      RowsetBinlogMetasPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowsetBinlogMetasPB.newBuilder() to construct.
    private RowsetBinlogMetasPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowsetBinlogMetasPB() {
      rowsetBinlogMetas_ = java.util.Collections.emptyList();
    }

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

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

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

    public interface RowsetBinlogMetaPBOrBuilder extends
        // @@protoc_insertion_point(interface_extends:doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional string rowset_id = 1;</code>
       * @return Whether the rowsetId field is set.
       */
      boolean hasRowsetId();
      /**
       * <code>optional string rowset_id = 1;</code>
       * @return The rowsetId.
       */
      java.lang.String getRowsetId();
      /**
       * <code>optional string rowset_id = 1;</code>
       * @return The bytes for rowsetId.
       */
      com.google.protobuf.ByteString
          getRowsetIdBytes();

      /**
       * <code>optional int64 version = 2;</code>
       * @return Whether the version field is set.
       */
      boolean hasVersion();
      /**
       * <code>optional int64 version = 2;</code>
       * @return The version.
       */
      long getVersion();

      /**
       * <code>optional int64 num_segments = 3;</code>
       * @return Whether the numSegments field is set.
       */
      boolean hasNumSegments();
      /**
       * <code>optional int64 num_segments = 3;</code>
       * @return The numSegments.
       */
      long getNumSegments();

      /**
       * <code>optional string meta_key = 4;</code>
       * @return Whether the metaKey field is set.
       */
      boolean hasMetaKey();
      /**
       * <code>optional string meta_key = 4;</code>
       * @return The metaKey.
       */
      java.lang.String getMetaKey();
      /**
       * <code>optional string meta_key = 4;</code>
       * @return The bytes for metaKey.
       */
      com.google.protobuf.ByteString
          getMetaKeyBytes();

      /**
       * <code>optional bytes meta = 5;</code>
       * @return Whether the meta field is set.
       */
      boolean hasMeta();
      /**
       * <code>optional bytes meta = 5;</code>
       * @return The meta.
       */
      com.google.protobuf.ByteString getMeta();

      /**
       * <code>optional string data_key = 6;</code>
       * @return Whether the dataKey field is set.
       */
      boolean hasDataKey();
      /**
       * <code>optional string data_key = 6;</code>
       * @return The dataKey.
       */
      java.lang.String getDataKey();
      /**
       * <code>optional string data_key = 6;</code>
       * @return The bytes for dataKey.
       */
      com.google.protobuf.ByteString
          getDataKeyBytes();

      /**
       * <code>optional bytes data = 7;</code>
       * @return Whether the data field is set.
       */
      boolean hasData();
      /**
       * <code>optional bytes data = 7;</code>
       * @return The data.
       */
      com.google.protobuf.ByteString getData();
    }
    /**
     * Protobuf type {@code doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB}
     */
    public static final class RowsetBinlogMetaPB extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB)
        RowsetBinlogMetaPBOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use RowsetBinlogMetaPB.newBuilder() to construct.
      private RowsetBinlogMetaPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private RowsetBinlogMetaPB() {
        rowsetId_ = "";
        metaKey_ = "";
        meta_ = com.google.protobuf.ByteString.EMPTY;
        dataKey_ = "";
        data_ = com.google.protobuf.ByteString.EMPTY;
      }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.class, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder.class);
      }

      private int bitField0_;
      public static final int ROWSET_ID_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object rowsetId_ = "";
      /**
       * <code>optional string rowset_id = 1;</code>
       * @return Whether the rowsetId field is set.
       */
      @java.lang.Override
      public boolean hasRowsetId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string rowset_id = 1;</code>
       * @return The rowsetId.
       */
      @java.lang.Override
      public java.lang.String getRowsetId() {
        java.lang.Object ref = rowsetId_;
        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()) {
            rowsetId_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string rowset_id = 1;</code>
       * @return The bytes for rowsetId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRowsetIdBytes() {
        java.lang.Object ref = rowsetId_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rowsetId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int VERSION_FIELD_NUMBER = 2;
      private long version_ = 0L;
      /**
       * <code>optional int64 version = 2;</code>
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 version = 2;</code>
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }

      public static final int NUM_SEGMENTS_FIELD_NUMBER = 3;
      private long numSegments_ = 0L;
      /**
       * <code>optional int64 num_segments = 3;</code>
       * @return Whether the numSegments field is set.
       */
      @java.lang.Override
      public boolean hasNumSegments() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 num_segments = 3;</code>
       * @return The numSegments.
       */
      @java.lang.Override
      public long getNumSegments() {
        return numSegments_;
      }

      public static final int META_KEY_FIELD_NUMBER = 4;
      @SuppressWarnings("serial")
      private volatile java.lang.Object metaKey_ = "";
      /**
       * <code>optional string meta_key = 4;</code>
       * @return Whether the metaKey field is set.
       */
      @java.lang.Override
      public boolean hasMetaKey() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string meta_key = 4;</code>
       * @return The metaKey.
       */
      @java.lang.Override
      public java.lang.String getMetaKey() {
        java.lang.Object ref = metaKey_;
        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()) {
            metaKey_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string meta_key = 4;</code>
       * @return The bytes for metaKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMetaKeyBytes() {
        java.lang.Object ref = metaKey_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          metaKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int META_FIELD_NUMBER = 5;
      private com.google.protobuf.ByteString meta_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes meta = 5;</code>
       * @return Whether the meta field is set.
       */
      @java.lang.Override
      public boolean hasMeta() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional bytes meta = 5;</code>
       * @return The meta.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMeta() {
        return meta_;
      }

      public static final int DATA_KEY_FIELD_NUMBER = 6;
      @SuppressWarnings("serial")
      private volatile java.lang.Object dataKey_ = "";
      /**
       * <code>optional string data_key = 6;</code>
       * @return Whether the dataKey field is set.
       */
      @java.lang.Override
      public boolean hasDataKey() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string data_key = 6;</code>
       * @return The dataKey.
       */
      @java.lang.Override
      public java.lang.String getDataKey() {
        java.lang.Object ref = dataKey_;
        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()) {
            dataKey_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string data_key = 6;</code>
       * @return The bytes for dataKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDataKeyBytes() {
        java.lang.Object ref = dataKey_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dataKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int DATA_FIELD_NUMBER = 7;
      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes data = 7;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional bytes data = 7;</code>
       * @return The data.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 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, rowsetId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeInt64(2, version_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeInt64(3, numSegments_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, metaKey_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          output.writeBytes(5, meta_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 6, dataKey_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          output.writeBytes(7, data_);
        }
        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, rowsetId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, version_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, numSegments_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, metaKey_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(5, meta_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, dataKey_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(7, data_);
        }
        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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB)) {
          return super.equals(obj);
        }
        org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB other = (org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB) obj;

        if (hasRowsetId() != other.hasRowsetId()) return false;
        if (hasRowsetId()) {
          if (!getRowsetId()
              .equals(other.getRowsetId())) return false;
        }
        if (hasVersion() != other.hasVersion()) return false;
        if (hasVersion()) {
          if (getVersion()
              != other.getVersion()) return false;
        }
        if (hasNumSegments() != other.hasNumSegments()) return false;
        if (hasNumSegments()) {
          if (getNumSegments()
              != other.getNumSegments()) return false;
        }
        if (hasMetaKey() != other.hasMetaKey()) return false;
        if (hasMetaKey()) {
          if (!getMetaKey()
              .equals(other.getMetaKey())) return false;
        }
        if (hasMeta() != other.hasMeta()) return false;
        if (hasMeta()) {
          if (!getMeta()
              .equals(other.getMeta())) return false;
        }
        if (hasDataKey() != other.hasDataKey()) return false;
        if (hasDataKey()) {
          if (!getDataKey()
              .equals(other.getDataKey())) return false;
        }
        if (hasData() != other.hasData()) return false;
        if (hasData()) {
          if (!getData()
              .equals(other.getData())) 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 (hasRowsetId()) {
          hash = (37 * hash) + ROWSET_ID_FIELD_NUMBER;
          hash = (53 * hash) + getRowsetId().hashCode();
        }
        if (hasVersion()) {
          hash = (37 * hash) + VERSION_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getVersion());
        }
        if (hasNumSegments()) {
          hash = (37 * hash) + NUM_SEGMENTS_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getNumSegments());
        }
        if (hasMetaKey()) {
          hash = (37 * hash) + META_KEY_FIELD_NUMBER;
          hash = (53 * hash) + getMetaKey().hashCode();
        }
        if (hasMeta()) {
          hash = (37 * hash) + META_FIELD_NUMBER;
          hash = (53 * hash) + getMeta().hashCode();
        }
        if (hasDataKey()) {
          hash = (37 * hash) + DATA_KEY_FIELD_NUMBER;
          hash = (53 * hash) + getDataKey().hashCode();
        }
        if (hasData()) {
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB 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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB 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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB 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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB 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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB 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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB 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.RowsetBinlogMetasPB.RowsetBinlogMetaPB}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB)
          org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.apache.doris.proto.OlapFile.internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.apache.doris.proto.OlapFile.internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.class, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder.class);
        }

        // Construct using org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          rowsetId_ = "";
          version_ = 0L;
          numSegments_ = 0L;
          metaKey_ = "";
          meta_ = com.google.protobuf.ByteString.EMPTY;
          dataKey_ = "";
          data_ = com.google.protobuf.ByteString.EMPTY;
          return this;
        }

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

        @java.lang.Override
        public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB getDefaultInstanceForType() {
          return org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.getDefaultInstance();
        }

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

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

        private void buildPartial0(org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.rowsetId_ = rowsetId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.version_ = version_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.numSegments_ = numSegments_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.metaKey_ = metaKey_;
            to_bitField0_ |= 0x00000008;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.meta_ = meta_;
            to_bitField0_ |= 0x00000010;
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            result.dataKey_ = dataKey_;
            to_bitField0_ |= 0x00000020;
          }
          if (((from_bitField0_ & 0x00000040) != 0)) {
            result.data_ = data_;
            to_bitField0_ |= 0x00000040;
          }
          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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB) {
            return mergeFrom((org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB other) {
          if (other == org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.getDefaultInstance()) return this;
          if (other.hasRowsetId()) {
            rowsetId_ = other.rowsetId_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasVersion()) {
            setVersion(other.getVersion());
          }
          if (other.hasNumSegments()) {
            setNumSegments(other.getNumSegments());
          }
          if (other.hasMetaKey()) {
            metaKey_ = other.metaKey_;
            bitField0_ |= 0x00000008;
            onChanged();
          }
          if (other.hasMeta()) {
            setMeta(other.getMeta());
          }
          if (other.hasDataKey()) {
            dataKey_ = other.dataKey_;
            bitField0_ |= 0x00000020;
            onChanged();
          }
          if (other.hasData()) {
            setData(other.getData());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          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: {
                  rowsetId_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 16: {
                  version_ = input.readInt64();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                case 24: {
                  numSegments_ = input.readInt64();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 24
                case 34: {
                  metaKey_ = input.readBytes();
                  bitField0_ |= 0x00000008;
                  break;
                } // case 34
                case 42: {
                  meta_ = input.readBytes();
                  bitField0_ |= 0x00000010;
                  break;
                } // case 42
                case 50: {
                  dataKey_ = input.readBytes();
                  bitField0_ |= 0x00000020;
                  break;
                } // case 50
                case 58: {
                  data_ = input.readBytes();
                  bitField0_ |= 0x00000040;
                  break;
                } // case 58
                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 rowsetId_ = "";
        /**
         * <code>optional string rowset_id = 1;</code>
         * @return Whether the rowsetId field is set.
         */
        public boolean hasRowsetId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional string rowset_id = 1;</code>
         * @return The rowsetId.
         */
        public java.lang.String getRowsetId() {
          java.lang.Object ref = rowsetId_;
          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()) {
              rowsetId_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string rowset_id = 1;</code>
         * @return The bytes for rowsetId.
         */
        public com.google.protobuf.ByteString
            getRowsetIdBytes() {
          java.lang.Object ref = rowsetId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            rowsetId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string rowset_id = 1;</code>
         * @param value The rowsetId to set.
         * @return This builder for chaining.
         */
        public Builder setRowsetId(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          rowsetId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>optional string rowset_id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearRowsetId() {
          rowsetId_ = getDefaultInstance().getRowsetId();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>optional string rowset_id = 1;</code>
         * @param value The bytes for rowsetId to set.
         * @return This builder for chaining.
         */
        public Builder setRowsetIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          rowsetId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private long version_ ;
        /**
         * <code>optional int64 version = 2;</code>
         * @return Whether the version field is set.
         */
        @java.lang.Override
        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional int64 version = 2;</code>
         * @return The version.
         */
        @java.lang.Override
        public long getVersion() {
          return version_;
        }
        /**
         * <code>optional int64 version = 2;</code>
         * @param value The version to set.
         * @return This builder for chaining.
         */
        public Builder setVersion(long value) {

          version_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 version = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = 0L;
          onChanged();
          return this;
        }

        private long numSegments_ ;
        /**
         * <code>optional int64 num_segments = 3;</code>
         * @return Whether the numSegments field is set.
         */
        @java.lang.Override
        public boolean hasNumSegments() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional int64 num_segments = 3;</code>
         * @return The numSegments.
         */
        @java.lang.Override
        public long getNumSegments() {
          return numSegments_;
        }
        /**
         * <code>optional int64 num_segments = 3;</code>
         * @param value The numSegments to set.
         * @return This builder for chaining.
         */
        public Builder setNumSegments(long value) {

          numSegments_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 num_segments = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearNumSegments() {
          bitField0_ = (bitField0_ & ~0x00000004);
          numSegments_ = 0L;
          onChanged();
          return this;
        }

        private java.lang.Object metaKey_ = "";
        /**
         * <code>optional string meta_key = 4;</code>
         * @return Whether the metaKey field is set.
         */
        public boolean hasMetaKey() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>optional string meta_key = 4;</code>
         * @return The metaKey.
         */
        public java.lang.String getMetaKey() {
          java.lang.Object ref = metaKey_;
          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()) {
              metaKey_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string meta_key = 4;</code>
         * @return The bytes for metaKey.
         */
        public com.google.protobuf.ByteString
            getMetaKeyBytes() {
          java.lang.Object ref = metaKey_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            metaKey_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string meta_key = 4;</code>
         * @param value The metaKey to set.
         * @return This builder for chaining.
         */
        public Builder setMetaKey(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          metaKey_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <code>optional string meta_key = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearMetaKey() {
          metaKey_ = getDefaultInstance().getMetaKey();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
          return this;
        }
        /**
         * <code>optional string meta_key = 4;</code>
         * @param value The bytes for metaKey to set.
         * @return This builder for chaining.
         */
        public Builder setMetaKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          metaKey_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }

        private com.google.protobuf.ByteString meta_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>optional bytes meta = 5;</code>
         * @return Whether the meta field is set.
         */
        @java.lang.Override
        public boolean hasMeta() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <code>optional bytes meta = 5;</code>
         * @return The meta.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getMeta() {
          return meta_;
        }
        /**
         * <code>optional bytes meta = 5;</code>
         * @param value The meta to set.
         * @return This builder for chaining.
         */
        public Builder setMeta(com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          meta_ = value;
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <code>optional bytes meta = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearMeta() {
          bitField0_ = (bitField0_ & ~0x00000010);
          meta_ = getDefaultInstance().getMeta();
          onChanged();
          return this;
        }

        private java.lang.Object dataKey_ = "";
        /**
         * <code>optional string data_key = 6;</code>
         * @return Whether the dataKey field is set.
         */
        public boolean hasDataKey() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <code>optional string data_key = 6;</code>
         * @return The dataKey.
         */
        public java.lang.String getDataKey() {
          java.lang.Object ref = dataKey_;
          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()) {
              dataKey_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string data_key = 6;</code>
         * @return The bytes for dataKey.
         */
        public com.google.protobuf.ByteString
            getDataKeyBytes() {
          java.lang.Object ref = dataKey_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            dataKey_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string data_key = 6;</code>
         * @param value The dataKey to set.
         * @return This builder for chaining.
         */
        public Builder setDataKey(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          dataKey_ = value;
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <code>optional string data_key = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearDataKey() {
          dataKey_ = getDefaultInstance().getDataKey();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
          return this;
        }
        /**
         * <code>optional string data_key = 6;</code>
         * @param value The bytes for dataKey to set.
         * @return This builder for chaining.
         */
        public Builder setDataKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          dataKey_ = value;
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }

        private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>optional bytes data = 7;</code>
         * @return Whether the data field is set.
         */
        @java.lang.Override
        public boolean hasData() {
          return ((bitField0_ & 0x00000040) != 0);
        }
        /**
         * <code>optional bytes data = 7;</code>
         * @return The data.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getData() {
          return data_;
        }
        /**
         * <code>optional bytes data = 7;</code>
         * @param value The data to set.
         * @return This builder for chaining.
         */
        public Builder setData(com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          data_ = value;
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <code>optional bytes data = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearData() {
          bitField0_ = (bitField0_ & ~0x00000040);
          data_ = getDefaultInstance().getData();
          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.RowsetBinlogMetasPB.RowsetBinlogMetaPB)
      }

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

      public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<RowsetBinlogMetaPB>
          PARSER = new com.google.protobuf.AbstractParser<RowsetBinlogMetaPB>() {
        @java.lang.Override
        public RowsetBinlogMetaPB 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<RowsetBinlogMetaPB> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int ROWSET_BINLOG_METAS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB> rowsetBinlogMetas_;
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB> getRowsetBinlogMetasList() {
      return rowsetBinlogMetas_;
    }
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder> 
        getRowsetBinlogMetasOrBuilderList() {
      return rowsetBinlogMetas_;
    }
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    @java.lang.Override
    public int getRowsetBinlogMetasCount() {
      return rowsetBinlogMetas_.size();
    }
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB getRowsetBinlogMetas(int index) {
      return rowsetBinlogMetas_.get(index);
    }
    /**
     * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder getRowsetBinlogMetasOrBuilder(
        int index) {
      return rowsetBinlogMetas_.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;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < rowsetBinlogMetas_.size(); i++) {
        output.writeMessage(1, rowsetBinlogMetas_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < rowsetBinlogMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, rowsetBinlogMetas_.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.OlapFile.RowsetBinlogMetasPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB other = (org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB) obj;

      if (!getRowsetBinlogMetasList()
          .equals(other.getRowsetBinlogMetasList())) 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 (getRowsetBinlogMetasCount() > 0) {
        hash = (37 * hash) + ROWSET_BINLOG_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getRowsetBinlogMetasList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB 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.OlapFile.RowsetBinlogMetasPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB 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.OlapFile.RowsetBinlogMetasPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB 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.OlapFile.RowsetBinlogMetasPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB 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.OlapFile.RowsetBinlogMetasPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB 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.OlapFile.RowsetBinlogMetasPB 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.RowsetBinlogMetasPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.RowsetBinlogMetasPB)
        org.apache.doris.proto.OlapFile.RowsetBinlogMetasPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_RowsetBinlogMetasPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.newBuilder()
      private Builder() {

      }

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

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

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB result) {
        if (rowsetBinlogMetasBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            rowsetBinlogMetas_ = java.util.Collections.unmodifiableList(rowsetBinlogMetas_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.rowsetBinlogMetas_ = rowsetBinlogMetas_;
        } else {
          result.rowsetBinlogMetas_ = rowsetBinlogMetasBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB result) {
        int from_bitField0_ = 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.OlapFile.RowsetBinlogMetasPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB other) {
        if (other == org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.getDefaultInstance()) return this;
        if (rowsetBinlogMetasBuilder_ == null) {
          if (!other.rowsetBinlogMetas_.isEmpty()) {
            if (rowsetBinlogMetas_.isEmpty()) {
              rowsetBinlogMetas_ = other.rowsetBinlogMetas_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRowsetBinlogMetasIsMutable();
              rowsetBinlogMetas_.addAll(other.rowsetBinlogMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.rowsetBinlogMetas_.isEmpty()) {
            if (rowsetBinlogMetasBuilder_.isEmpty()) {
              rowsetBinlogMetasBuilder_.dispose();
              rowsetBinlogMetasBuilder_ = null;
              rowsetBinlogMetas_ = other.rowsetBinlogMetas_;
              bitField0_ = (bitField0_ & ~0x00000001);
              rowsetBinlogMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRowsetBinlogMetasFieldBuilder() : null;
            } else {
              rowsetBinlogMetasBuilder_.addAllMessages(other.rowsetBinlogMetas_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.PARSER,
                        extensionRegistry);
                if (rowsetBinlogMetasBuilder_ == null) {
                  ensureRowsetBinlogMetasIsMutable();
                  rowsetBinlogMetas_.add(m);
                } else {
                  rowsetBinlogMetasBuilder_.addMessage(m);
                }
                break;
              } // case 10
              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.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB> rowsetBinlogMetas_ =
        java.util.Collections.emptyList();
      private void ensureRowsetBinlogMetasIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rowsetBinlogMetas_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB>(rowsetBinlogMetas_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder> rowsetBinlogMetasBuilder_;

      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB> getRowsetBinlogMetasList() {
        if (rowsetBinlogMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rowsetBinlogMetas_);
        } else {
          return rowsetBinlogMetasBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public int getRowsetBinlogMetasCount() {
        if (rowsetBinlogMetasBuilder_ == null) {
          return rowsetBinlogMetas_.size();
        } else {
          return rowsetBinlogMetasBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB getRowsetBinlogMetas(int index) {
        if (rowsetBinlogMetasBuilder_ == null) {
          return rowsetBinlogMetas_.get(index);
        } else {
          return rowsetBinlogMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder setRowsetBinlogMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB value) {
        if (rowsetBinlogMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsetBinlogMetasIsMutable();
          rowsetBinlogMetas_.set(index, value);
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder setRowsetBinlogMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder builderForValue) {
        if (rowsetBinlogMetasBuilder_ == null) {
          ensureRowsetBinlogMetasIsMutable();
          rowsetBinlogMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder addRowsetBinlogMetas(org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB value) {
        if (rowsetBinlogMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsetBinlogMetasIsMutable();
          rowsetBinlogMetas_.add(value);
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder addRowsetBinlogMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB value) {
        if (rowsetBinlogMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsetBinlogMetasIsMutable();
          rowsetBinlogMetas_.add(index, value);
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder addRowsetBinlogMetas(
          org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder builderForValue) {
        if (rowsetBinlogMetasBuilder_ == null) {
          ensureRowsetBinlogMetasIsMutable();
          rowsetBinlogMetas_.add(builderForValue.build());
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder addRowsetBinlogMetas(
          int index, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder builderForValue) {
        if (rowsetBinlogMetasBuilder_ == null) {
          ensureRowsetBinlogMetasIsMutable();
          rowsetBinlogMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder addAllRowsetBinlogMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB> values) {
        if (rowsetBinlogMetasBuilder_ == null) {
          ensureRowsetBinlogMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rowsetBinlogMetas_);
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder clearRowsetBinlogMetas() {
        if (rowsetBinlogMetasBuilder_ == null) {
          rowsetBinlogMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public Builder removeRowsetBinlogMetas(int index) {
        if (rowsetBinlogMetasBuilder_ == null) {
          ensureRowsetBinlogMetasIsMutable();
          rowsetBinlogMetas_.remove(index);
          onChanged();
        } else {
          rowsetBinlogMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder getRowsetBinlogMetasBuilder(
          int index) {
        return getRowsetBinlogMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder getRowsetBinlogMetasOrBuilder(
          int index) {
        if (rowsetBinlogMetasBuilder_ == null) {
          return rowsetBinlogMetas_.get(index);  } else {
          return rowsetBinlogMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder> 
           getRowsetBinlogMetasOrBuilderList() {
        if (rowsetBinlogMetasBuilder_ != null) {
          return rowsetBinlogMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rowsetBinlogMetas_);
        }
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder addRowsetBinlogMetasBuilder() {
        return getRowsetBinlogMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder addRowsetBinlogMetasBuilder(
          int index) {
        return getRowsetBinlogMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.RowsetBinlogMetasPB.RowsetBinlogMetaPB rowset_binlog_metas = 1;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder> 
           getRowsetBinlogMetasBuilderList() {
        return getRowsetBinlogMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder> 
          getRowsetBinlogMetasFieldBuilder() {
        if (rowsetBinlogMetasBuilder_ == null) {
          rowsetBinlogMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPB.Builder, org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB.RowsetBinlogMetaPBOrBuilder>(
                  rowsetBinlogMetas_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          rowsetBinlogMetas_ = null;
        }
        return rowsetBinlogMetasBuilder_;
      }
      @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.RowsetBinlogMetasPB)
    }

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

    public static org.apache.doris.proto.OlapFile.RowsetBinlogMetasPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RowsetBinlogMetasPB>
        PARSER = new com.google.protobuf.AbstractParser<RowsetBinlogMetasPB>() {
      @java.lang.Override
      public RowsetBinlogMetasPB 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<RowsetBinlogMetasPB> parser() {
      return PARSER;
    }

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

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

  }

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

    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_partial_update = 1 [default = false];</code>
     * @return Whether the isPartialUpdate field is set.
     */
    boolean hasIsPartialUpdate();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_partial_update = 1 [default = false];</code>
     * @return The isPartialUpdate.
     */
    boolean getIsPartialUpdate();

    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @return A list containing the partialUpdateInputColumns.
     */
    java.util.List<java.lang.String>
        getPartialUpdateInputColumnsList();
    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @return The count of partialUpdateInputColumns.
     */
    int getPartialUpdateInputColumnsCount();
    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @param index The index of the element to return.
     * @return The partialUpdateInputColumns at the given index.
     */
    java.lang.String getPartialUpdateInputColumns(int index);
    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the partialUpdateInputColumns at the given index.
     */
    com.google.protobuf.ByteString
        getPartialUpdateInputColumnsBytes(int index);

    /**
     * <code>repeated uint32 missing_cids = 3;</code>
     * @return A list containing the missingCids.
     */
    java.util.List<java.lang.Integer> getMissingCidsList();
    /**
     * <code>repeated uint32 missing_cids = 3;</code>
     * @return The count of missingCids.
     */
    int getMissingCidsCount();
    /**
     * <code>repeated uint32 missing_cids = 3;</code>
     * @param index The index of the element to return.
     * @return The missingCids at the given index.
     */
    int getMissingCids(int index);

    /**
     * <code>repeated uint32 update_cids = 4;</code>
     * @return A list containing the updateCids.
     */
    java.util.List<java.lang.Integer> getUpdateCidsList();
    /**
     * <code>repeated uint32 update_cids = 4;</code>
     * @return The count of updateCids.
     */
    int getUpdateCidsCount();
    /**
     * <code>repeated uint32 update_cids = 4;</code>
     * @param index The index of the element to return.
     * @return The updateCids at the given index.
     */
    int getUpdateCids(int index);

    /**
     * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
     * @return Whether the canInsertNewRowsInPartialUpdate field is set.
     */
    boolean hasCanInsertNewRowsInPartialUpdate();
    /**
     * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
     * @return The canInsertNewRowsInPartialUpdate.
     */
    boolean getCanInsertNewRowsInPartialUpdate();

    /**
     * <code>optional bool is_strict_mode = 6 [default = false];</code>
     * @return Whether the isStrictMode field is set.
     */
    boolean hasIsStrictMode();
    /**
     * <code>optional bool is_strict_mode = 6 [default = false];</code>
     * @return The isStrictMode.
     */
    boolean getIsStrictMode();

    /**
     * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
     * @return Whether the timestampMs field is set.
     */
    boolean hasTimestampMs();
    /**
     * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
     * @return The timestampMs.
     */
    long getTimestampMs();

    /**
     * <code>optional string timezone = 8;</code>
     * @return Whether the timezone field is set.
     */
    boolean hasTimezone();
    /**
     * <code>optional string timezone = 8;</code>
     * @return The timezone.
     */
    java.lang.String getTimezone();
    /**
     * <code>optional string timezone = 8;</code>
     * @return The bytes for timezone.
     */
    com.google.protobuf.ByteString
        getTimezoneBytes();

    /**
     * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
     * @return Whether the isInputColumnsContainsAutoIncColumn field is set.
     */
    boolean hasIsInputColumnsContainsAutoIncColumn();
    /**
     * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
     * @return The isInputColumnsContainsAutoIncColumn.
     */
    boolean getIsInputColumnsContainsAutoIncColumn();

    /**
     * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
     * @return Whether the isSchemaContainsAutoIncColumn field is set.
     */
    boolean hasIsSchemaContainsAutoIncColumn();
    /**
     * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
     * @return The isSchemaContainsAutoIncColumn.
     */
    boolean getIsSchemaContainsAutoIncColumn();

    /**
     * <code>repeated string default_values = 11;</code>
     * @return A list containing the defaultValues.
     */
    java.util.List<java.lang.String>
        getDefaultValuesList();
    /**
     * <code>repeated string default_values = 11;</code>
     * @return The count of defaultValues.
     */
    int getDefaultValuesCount();
    /**
     * <code>repeated string default_values = 11;</code>
     * @param index The index of the element to return.
     * @return The defaultValues at the given index.
     */
    java.lang.String getDefaultValues(int index);
    /**
     * <code>repeated string default_values = 11;</code>
     * @param index The index of the value to return.
     * @return The bytes of the defaultValues at the given index.
     */
    com.google.protobuf.ByteString
        getDefaultValuesBytes(int index);

    /**
     * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
     * @return Whether the maxVersionInFlushPhase field is set.
     */
    boolean hasMaxVersionInFlushPhase();
    /**
     * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
     * @return The maxVersionInFlushPhase.
     */
    long getMaxVersionInFlushPhase();

    /**
     * <code>optional int32 nano_seconds = 13 [default = 0];</code>
     * @return Whether the nanoSeconds field is set.
     */
    boolean hasNanoSeconds();
    /**
     * <code>optional int32 nano_seconds = 13 [default = 0];</code>
     * @return The nanoSeconds.
     */
    int getNanoSeconds();

    /**
     * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
     * @return Whether the partialUpdateMode field is set.
     */
    boolean hasPartialUpdateMode();
    /**
     * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
     * @return The partialUpdateMode.
     */
    org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB getPartialUpdateMode();
  }
  /**
   * Protobuf type {@code doris.PartialUpdateInfoPB}
   */
  public static final class PartialUpdateInfoPB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PartialUpdateInfoPB)
      PartialUpdateInfoPBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartialUpdateInfoPB.newBuilder() to construct.
    private PartialUpdateInfoPB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PartialUpdateInfoPB() {
      partialUpdateInputColumns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      missingCids_ = emptyIntList();
      updateCids_ = emptyIntList();
      timezone_ = "";
      defaultValues_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      maxVersionInFlushPhase_ = -1L;
      partialUpdateMode_ = 0;
    }

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

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

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

    private int bitField0_;
    public static final int IS_PARTIAL_UPDATE_FIELD_NUMBER = 1;
    private boolean isPartialUpdate_ = false;
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_partial_update = 1 [default = false];</code>
     * @return Whether the isPartialUpdate field is set.
     */
    @java.lang.Override
    public boolean hasIsPartialUpdate() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional bool is_partial_update = 1 [default = false];</code>
     * @return The isPartialUpdate.
     */
    @java.lang.Override
    public boolean getIsPartialUpdate() {
      return isPartialUpdate_;
    }

    public static final int PARTIAL_UPDATE_INPUT_COLUMNS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList partialUpdateInputColumns_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @return A list containing the partialUpdateInputColumns.
     */
    public com.google.protobuf.ProtocolStringList
        getPartialUpdateInputColumnsList() {
      return partialUpdateInputColumns_;
    }
    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @return The count of partialUpdateInputColumns.
     */
    public int getPartialUpdateInputColumnsCount() {
      return partialUpdateInputColumns_.size();
    }
    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @param index The index of the element to return.
     * @return The partialUpdateInputColumns at the given index.
     */
    public java.lang.String getPartialUpdateInputColumns(int index) {
      return partialUpdateInputColumns_.get(index);
    }
    /**
     * <code>repeated string partial_update_input_columns = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the partialUpdateInputColumns at the given index.
     */
    public com.google.protobuf.ByteString
        getPartialUpdateInputColumnsBytes(int index) {
      return partialUpdateInputColumns_.getByteString(index);
    }

    public static final int MISSING_CIDS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList missingCids_ =
        emptyIntList();
    /**
     * <code>repeated uint32 missing_cids = 3;</code>
     * @return A list containing the missingCids.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getMissingCidsList() {
      return missingCids_;
    }
    /**
     * <code>repeated uint32 missing_cids = 3;</code>
     * @return The count of missingCids.
     */
    public int getMissingCidsCount() {
      return missingCids_.size();
    }
    /**
     * <code>repeated uint32 missing_cids = 3;</code>
     * @param index The index of the element to return.
     * @return The missingCids at the given index.
     */
    public int getMissingCids(int index) {
      return missingCids_.getInt(index);
    }

    public static final int UPDATE_CIDS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList updateCids_ =
        emptyIntList();
    /**
     * <code>repeated uint32 update_cids = 4;</code>
     * @return A list containing the updateCids.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getUpdateCidsList() {
      return updateCids_;
    }
    /**
     * <code>repeated uint32 update_cids = 4;</code>
     * @return The count of updateCids.
     */
    public int getUpdateCidsCount() {
      return updateCids_.size();
    }
    /**
     * <code>repeated uint32 update_cids = 4;</code>
     * @param index The index of the element to return.
     * @return The updateCids at the given index.
     */
    public int getUpdateCids(int index) {
      return updateCids_.getInt(index);
    }

    public static final int CAN_INSERT_NEW_ROWS_IN_PARTIAL_UPDATE_FIELD_NUMBER = 5;
    private boolean canInsertNewRowsInPartialUpdate_ = false;
    /**
     * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
     * @return Whether the canInsertNewRowsInPartialUpdate field is set.
     */
    @java.lang.Override
    public boolean hasCanInsertNewRowsInPartialUpdate() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
     * @return The canInsertNewRowsInPartialUpdate.
     */
    @java.lang.Override
    public boolean getCanInsertNewRowsInPartialUpdate() {
      return canInsertNewRowsInPartialUpdate_;
    }

    public static final int IS_STRICT_MODE_FIELD_NUMBER = 6;
    private boolean isStrictMode_ = false;
    /**
     * <code>optional bool is_strict_mode = 6 [default = false];</code>
     * @return Whether the isStrictMode field is set.
     */
    @java.lang.Override
    public boolean hasIsStrictMode() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool is_strict_mode = 6 [default = false];</code>
     * @return The isStrictMode.
     */
    @java.lang.Override
    public boolean getIsStrictMode() {
      return isStrictMode_;
    }

    public static final int TIMESTAMP_MS_FIELD_NUMBER = 7;
    private long timestampMs_ = 0L;
    /**
     * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
     * @return Whether the timestampMs field is set.
     */
    @java.lang.Override
    public boolean hasTimestampMs() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
     * @return The timestampMs.
     */
    @java.lang.Override
    public long getTimestampMs() {
      return timestampMs_;
    }

    public static final int TIMEZONE_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object timezone_ = "";
    /**
     * <code>optional string timezone = 8;</code>
     * @return Whether the timezone field is set.
     */
    @java.lang.Override
    public boolean hasTimezone() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string timezone = 8;</code>
     * @return The timezone.
     */
    @java.lang.Override
    public java.lang.String getTimezone() {
      java.lang.Object ref = timezone_;
      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()) {
          timezone_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string timezone = 8;</code>
     * @return The bytes for timezone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimezoneBytes() {
      java.lang.Object ref = timezone_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timezone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS_INPUT_COLUMNS_CONTAINS_AUTO_INC_COLUMN_FIELD_NUMBER = 9;
    private boolean isInputColumnsContainsAutoIncColumn_ = false;
    /**
     * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
     * @return Whether the isInputColumnsContainsAutoIncColumn field is set.
     */
    @java.lang.Override
    public boolean hasIsInputColumnsContainsAutoIncColumn() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
     * @return The isInputColumnsContainsAutoIncColumn.
     */
    @java.lang.Override
    public boolean getIsInputColumnsContainsAutoIncColumn() {
      return isInputColumnsContainsAutoIncColumn_;
    }

    public static final int IS_SCHEMA_CONTAINS_AUTO_INC_COLUMN_FIELD_NUMBER = 10;
    private boolean isSchemaContainsAutoIncColumn_ = false;
    /**
     * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
     * @return Whether the isSchemaContainsAutoIncColumn field is set.
     */
    @java.lang.Override
    public boolean hasIsSchemaContainsAutoIncColumn() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
     * @return The isSchemaContainsAutoIncColumn.
     */
    @java.lang.Override
    public boolean getIsSchemaContainsAutoIncColumn() {
      return isSchemaContainsAutoIncColumn_;
    }

    public static final int DEFAULT_VALUES_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList defaultValues_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string default_values = 11;</code>
     * @return A list containing the defaultValues.
     */
    public com.google.protobuf.ProtocolStringList
        getDefaultValuesList() {
      return defaultValues_;
    }
    /**
     * <code>repeated string default_values = 11;</code>
     * @return The count of defaultValues.
     */
    public int getDefaultValuesCount() {
      return defaultValues_.size();
    }
    /**
     * <code>repeated string default_values = 11;</code>
     * @param index The index of the element to return.
     * @return The defaultValues at the given index.
     */
    public java.lang.String getDefaultValues(int index) {
      return defaultValues_.get(index);
    }
    /**
     * <code>repeated string default_values = 11;</code>
     * @param index The index of the value to return.
     * @return The bytes of the defaultValues at the given index.
     */
    public com.google.protobuf.ByteString
        getDefaultValuesBytes(int index) {
      return defaultValues_.getByteString(index);
    }

    public static final int MAX_VERSION_IN_FLUSH_PHASE_FIELD_NUMBER = 12;
    private long maxVersionInFlushPhase_ = -1L;
    /**
     * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
     * @return Whether the maxVersionInFlushPhase field is set.
     */
    @java.lang.Override
    public boolean hasMaxVersionInFlushPhase() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
     * @return The maxVersionInFlushPhase.
     */
    @java.lang.Override
    public long getMaxVersionInFlushPhase() {
      return maxVersionInFlushPhase_;
    }

    public static final int NANO_SECONDS_FIELD_NUMBER = 13;
    private int nanoSeconds_ = 0;
    /**
     * <code>optional int32 nano_seconds = 13 [default = 0];</code>
     * @return Whether the nanoSeconds field is set.
     */
    @java.lang.Override
    public boolean hasNanoSeconds() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional int32 nano_seconds = 13 [default = 0];</code>
     * @return The nanoSeconds.
     */
    @java.lang.Override
    public int getNanoSeconds() {
      return nanoSeconds_;
    }

    public static final int PARTIAL_UPDATE_MODE_FIELD_NUMBER = 14;
    private int partialUpdateMode_ = 0;
    /**
     * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
     * @return Whether the partialUpdateMode field is set.
     */
    @java.lang.Override public boolean hasPartialUpdateMode() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
     * @return The partialUpdateMode.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB getPartialUpdateMode() {
      org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB result = org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.forNumber(partialUpdateMode_);
      return result == null ? org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.UPSERT : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 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.writeBool(1, isPartialUpdate_);
      }
      for (int i = 0; i < partialUpdateInputColumns_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, partialUpdateInputColumns_.getRaw(i));
      }
      for (int i = 0; i < missingCids_.size(); i++) {
        output.writeUInt32(3, missingCids_.getInt(i));
      }
      for (int i = 0; i < updateCids_.size(); i++) {
        output.writeUInt32(4, updateCids_.getInt(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(5, canInsertNewRowsInPartialUpdate_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(6, isStrictMode_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(7, timestampMs_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, timezone_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeBool(9, isInputColumnsContainsAutoIncColumn_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeBool(10, isSchemaContainsAutoIncColumn_);
      }
      for (int i = 0; i < defaultValues_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, defaultValues_.getRaw(i));
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt64(12, maxVersionInFlushPhase_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(13, nanoSeconds_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeEnum(14, partialUpdateMode_);
      }
      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
          .computeBoolSize(1, isPartialUpdate_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < partialUpdateInputColumns_.size(); i++) {
          dataSize += computeStringSizeNoTag(partialUpdateInputColumns_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPartialUpdateInputColumnsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < missingCids_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(missingCids_.getInt(i));
        }
        size += dataSize;
        size += 1 * getMissingCidsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < updateCids_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(updateCids_.getInt(i));
        }
        size += dataSize;
        size += 1 * getUpdateCidsList().size();
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, canInsertNewRowsInPartialUpdate_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, isStrictMode_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, timestampMs_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, timezone_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, isInputColumnsContainsAutoIncColumn_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, isSchemaContainsAutoIncColumn_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < defaultValues_.size(); i++) {
          dataSize += computeStringSizeNoTag(defaultValues_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getDefaultValuesList().size();
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(12, maxVersionInFlushPhase_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, nanoSeconds_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(14, partialUpdateMode_);
      }
      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.OlapFile.PartialUpdateInfoPB)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.OlapFile.PartialUpdateInfoPB other = (org.apache.doris.proto.OlapFile.PartialUpdateInfoPB) obj;

      if (hasIsPartialUpdate() != other.hasIsPartialUpdate()) return false;
      if (hasIsPartialUpdate()) {
        if (getIsPartialUpdate()
            != other.getIsPartialUpdate()) return false;
      }
      if (!getPartialUpdateInputColumnsList()
          .equals(other.getPartialUpdateInputColumnsList())) return false;
      if (!getMissingCidsList()
          .equals(other.getMissingCidsList())) return false;
      if (!getUpdateCidsList()
          .equals(other.getUpdateCidsList())) return false;
      if (hasCanInsertNewRowsInPartialUpdate() != other.hasCanInsertNewRowsInPartialUpdate()) return false;
      if (hasCanInsertNewRowsInPartialUpdate()) {
        if (getCanInsertNewRowsInPartialUpdate()
            != other.getCanInsertNewRowsInPartialUpdate()) return false;
      }
      if (hasIsStrictMode() != other.hasIsStrictMode()) return false;
      if (hasIsStrictMode()) {
        if (getIsStrictMode()
            != other.getIsStrictMode()) return false;
      }
      if (hasTimestampMs() != other.hasTimestampMs()) return false;
      if (hasTimestampMs()) {
        if (getTimestampMs()
            != other.getTimestampMs()) return false;
      }
      if (hasTimezone() != other.hasTimezone()) return false;
      if (hasTimezone()) {
        if (!getTimezone()
            .equals(other.getTimezone())) return false;
      }
      if (hasIsInputColumnsContainsAutoIncColumn() != other.hasIsInputColumnsContainsAutoIncColumn()) return false;
      if (hasIsInputColumnsContainsAutoIncColumn()) {
        if (getIsInputColumnsContainsAutoIncColumn()
            != other.getIsInputColumnsContainsAutoIncColumn()) return false;
      }
      if (hasIsSchemaContainsAutoIncColumn() != other.hasIsSchemaContainsAutoIncColumn()) return false;
      if (hasIsSchemaContainsAutoIncColumn()) {
        if (getIsSchemaContainsAutoIncColumn()
            != other.getIsSchemaContainsAutoIncColumn()) return false;
      }
      if (!getDefaultValuesList()
          .equals(other.getDefaultValuesList())) return false;
      if (hasMaxVersionInFlushPhase() != other.hasMaxVersionInFlushPhase()) return false;
      if (hasMaxVersionInFlushPhase()) {
        if (getMaxVersionInFlushPhase()
            != other.getMaxVersionInFlushPhase()) return false;
      }
      if (hasNanoSeconds() != other.hasNanoSeconds()) return false;
      if (hasNanoSeconds()) {
        if (getNanoSeconds()
            != other.getNanoSeconds()) return false;
      }
      if (hasPartialUpdateMode() != other.hasPartialUpdateMode()) return false;
      if (hasPartialUpdateMode()) {
        if (partialUpdateMode_ != other.partialUpdateMode_) 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 (hasIsPartialUpdate()) {
        hash = (37 * hash) + IS_PARTIAL_UPDATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsPartialUpdate());
      }
      if (getPartialUpdateInputColumnsCount() > 0) {
        hash = (37 * hash) + PARTIAL_UPDATE_INPUT_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getPartialUpdateInputColumnsList().hashCode();
      }
      if (getMissingCidsCount() > 0) {
        hash = (37 * hash) + MISSING_CIDS_FIELD_NUMBER;
        hash = (53 * hash) + getMissingCidsList().hashCode();
      }
      if (getUpdateCidsCount() > 0) {
        hash = (37 * hash) + UPDATE_CIDS_FIELD_NUMBER;
        hash = (53 * hash) + getUpdateCidsList().hashCode();
      }
      if (hasCanInsertNewRowsInPartialUpdate()) {
        hash = (37 * hash) + CAN_INSERT_NEW_ROWS_IN_PARTIAL_UPDATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getCanInsertNewRowsInPartialUpdate());
      }
      if (hasIsStrictMode()) {
        hash = (37 * hash) + IS_STRICT_MODE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsStrictMode());
      }
      if (hasTimestampMs()) {
        hash = (37 * hash) + TIMESTAMP_MS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimestampMs());
      }
      if (hasTimezone()) {
        hash = (37 * hash) + TIMEZONE_FIELD_NUMBER;
        hash = (53 * hash) + getTimezone().hashCode();
      }
      if (hasIsInputColumnsContainsAutoIncColumn()) {
        hash = (37 * hash) + IS_INPUT_COLUMNS_CONTAINS_AUTO_INC_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsInputColumnsContainsAutoIncColumn());
      }
      if (hasIsSchemaContainsAutoIncColumn()) {
        hash = (37 * hash) + IS_SCHEMA_CONTAINS_AUTO_INC_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsSchemaContainsAutoIncColumn());
      }
      if (getDefaultValuesCount() > 0) {
        hash = (37 * hash) + DEFAULT_VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultValuesList().hashCode();
      }
      if (hasMaxVersionInFlushPhase()) {
        hash = (37 * hash) + MAX_VERSION_IN_FLUSH_PHASE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMaxVersionInFlushPhase());
      }
      if (hasNanoSeconds()) {
        hash = (37 * hash) + NANO_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getNanoSeconds();
      }
      if (hasPartialUpdateMode()) {
        hash = (37 * hash) + PARTIAL_UPDATE_MODE_FIELD_NUMBER;
        hash = (53 * hash) + partialUpdateMode_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB 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.OlapFile.PartialUpdateInfoPB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB 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.OlapFile.PartialUpdateInfoPB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB 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.OlapFile.PartialUpdateInfoPB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB 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.OlapFile.PartialUpdateInfoPB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB 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.OlapFile.PartialUpdateInfoPB 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.PartialUpdateInfoPB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:doris.PartialUpdateInfoPB)
        org.apache.doris.proto.OlapFile.PartialUpdateInfoPBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.doris.proto.OlapFile.internal_static_doris_PartialUpdateInfoPB_descriptor;
      }

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

      // Construct using org.apache.doris.proto.OlapFile.PartialUpdateInfoPB.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        isPartialUpdate_ = false;
        partialUpdateInputColumns_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        missingCids_ = emptyIntList();
        updateCids_ = emptyIntList();
        canInsertNewRowsInPartialUpdate_ = false;
        isStrictMode_ = false;
        timestampMs_ = 0L;
        timezone_ = "";
        isInputColumnsContainsAutoIncColumn_ = false;
        isSchemaContainsAutoIncColumn_ = false;
        defaultValues_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        maxVersionInFlushPhase_ = -1L;
        nanoSeconds_ = 0;
        partialUpdateMode_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.OlapFile.PartialUpdateInfoPB result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.isPartialUpdate_ = isPartialUpdate_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          partialUpdateInputColumns_.makeImmutable();
          result.partialUpdateInputColumns_ = partialUpdateInputColumns_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          missingCids_.makeImmutable();
          result.missingCids_ = missingCids_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          updateCids_.makeImmutable();
          result.updateCids_ = updateCids_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.canInsertNewRowsInPartialUpdate_ = canInsertNewRowsInPartialUpdate_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.isStrictMode_ = isStrictMode_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.timestampMs_ = timestampMs_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.timezone_ = timezone_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.isInputColumnsContainsAutoIncColumn_ = isInputColumnsContainsAutoIncColumn_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.isSchemaContainsAutoIncColumn_ = isSchemaContainsAutoIncColumn_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          defaultValues_.makeImmutable();
          result.defaultValues_ = defaultValues_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.maxVersionInFlushPhase_ = maxVersionInFlushPhase_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.nanoSeconds_ = nanoSeconds_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.partialUpdateMode_ = partialUpdateMode_;
          to_bitField0_ |= 0x00000200;
        }
        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.OlapFile.PartialUpdateInfoPB) {
          return mergeFrom((org.apache.doris.proto.OlapFile.PartialUpdateInfoPB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.OlapFile.PartialUpdateInfoPB other) {
        if (other == org.apache.doris.proto.OlapFile.PartialUpdateInfoPB.getDefaultInstance()) return this;
        if (other.hasIsPartialUpdate()) {
          setIsPartialUpdate(other.getIsPartialUpdate());
        }
        if (!other.partialUpdateInputColumns_.isEmpty()) {
          if (partialUpdateInputColumns_.isEmpty()) {
            partialUpdateInputColumns_ = other.partialUpdateInputColumns_;
            bitField0_ |= 0x00000002;
          } else {
            ensurePartialUpdateInputColumnsIsMutable();
            partialUpdateInputColumns_.addAll(other.partialUpdateInputColumns_);
          }
          onChanged();
        }
        if (!other.missingCids_.isEmpty()) {
          if (missingCids_.isEmpty()) {
            missingCids_ = other.missingCids_;
            missingCids_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureMissingCidsIsMutable();
            missingCids_.addAll(other.missingCids_);
          }
          onChanged();
        }
        if (!other.updateCids_.isEmpty()) {
          if (updateCids_.isEmpty()) {
            updateCids_ = other.updateCids_;
            updateCids_.makeImmutable();
            bitField0_ |= 0x00000008;
          } else {
            ensureUpdateCidsIsMutable();
            updateCids_.addAll(other.updateCids_);
          }
          onChanged();
        }
        if (other.hasCanInsertNewRowsInPartialUpdate()) {
          setCanInsertNewRowsInPartialUpdate(other.getCanInsertNewRowsInPartialUpdate());
        }
        if (other.hasIsStrictMode()) {
          setIsStrictMode(other.getIsStrictMode());
        }
        if (other.hasTimestampMs()) {
          setTimestampMs(other.getTimestampMs());
        }
        if (other.hasTimezone()) {
          timezone_ = other.timezone_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (other.hasIsInputColumnsContainsAutoIncColumn()) {
          setIsInputColumnsContainsAutoIncColumn(other.getIsInputColumnsContainsAutoIncColumn());
        }
        if (other.hasIsSchemaContainsAutoIncColumn()) {
          setIsSchemaContainsAutoIncColumn(other.getIsSchemaContainsAutoIncColumn());
        }
        if (!other.defaultValues_.isEmpty()) {
          if (defaultValues_.isEmpty()) {
            defaultValues_ = other.defaultValues_;
            bitField0_ |= 0x00000400;
          } else {
            ensureDefaultValuesIsMutable();
            defaultValues_.addAll(other.defaultValues_);
          }
          onChanged();
        }
        if (other.hasMaxVersionInFlushPhase()) {
          setMaxVersionInFlushPhase(other.getMaxVersionInFlushPhase());
        }
        if (other.hasNanoSeconds()) {
          setNanoSeconds(other.getNanoSeconds());
        }
        if (other.hasPartialUpdateMode()) {
          setPartialUpdateMode(other.getPartialUpdateMode());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        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: {
                isPartialUpdate_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensurePartialUpdateInputColumnsIsMutable();
                partialUpdateInputColumns_.add(bs);
                break;
              } // case 18
              case 24: {
                int v = input.readUInt32();
                ensureMissingCidsIsMutable();
                missingCids_.addInt(v);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureMissingCidsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  missingCids_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 26
              case 32: {
                int v = input.readUInt32();
                ensureUpdateCidsIsMutable();
                updateCids_.addInt(v);
                break;
              } // case 32
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureUpdateCidsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  updateCids_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 40: {
                canInsertNewRowsInPartialUpdate_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                isStrictMode_ = input.readBool();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                timestampMs_ = input.readInt64();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 66: {
                timezone_ = input.readBytes();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 72: {
                isInputColumnsContainsAutoIncColumn_ = input.readBool();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                isSchemaContainsAutoIncColumn_ = input.readBool();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 90: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureDefaultValuesIsMutable();
                defaultValues_.add(bs);
                break;
              } // case 90
              case 96: {
                maxVersionInFlushPhase_ = input.readInt64();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                nanoSeconds_ = input.readInt32();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB tmpValue =
                    org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(14, tmpRaw);
                } else {
                  partialUpdateMode_ = tmpRaw;
                  bitField0_ |= 0x00002000;
                }
                break;
              } // case 112
              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 boolean isPartialUpdate_ ;
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_partial_update = 1 [default = false];</code>
       * @return Whether the isPartialUpdate field is set.
       */
      @java.lang.Override
      public boolean hasIsPartialUpdate() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_partial_update = 1 [default = false];</code>
       * @return The isPartialUpdate.
       */
      @java.lang.Override
      public boolean getIsPartialUpdate() {
        return isPartialUpdate_;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_partial_update = 1 [default = false];</code>
       * @param value The isPartialUpdate to set.
       * @return This builder for chaining.
       */
      public Builder setIsPartialUpdate(boolean value) {

        isPartialUpdate_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional bool is_partial_update = 1 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsPartialUpdate() {
        bitField0_ = (bitField0_ & ~0x00000001);
        isPartialUpdate_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList partialUpdateInputColumns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensurePartialUpdateInputColumnsIsMutable() {
        if (!partialUpdateInputColumns_.isModifiable()) {
          partialUpdateInputColumns_ = new com.google.protobuf.LazyStringArrayList(partialUpdateInputColumns_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @return A list containing the partialUpdateInputColumns.
       */
      public com.google.protobuf.ProtocolStringList
          getPartialUpdateInputColumnsList() {
        partialUpdateInputColumns_.makeImmutable();
        return partialUpdateInputColumns_;
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @return The count of partialUpdateInputColumns.
       */
      public int getPartialUpdateInputColumnsCount() {
        return partialUpdateInputColumns_.size();
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @param index The index of the element to return.
       * @return The partialUpdateInputColumns at the given index.
       */
      public java.lang.String getPartialUpdateInputColumns(int index) {
        return partialUpdateInputColumns_.get(index);
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the partialUpdateInputColumns at the given index.
       */
      public com.google.protobuf.ByteString
          getPartialUpdateInputColumnsBytes(int index) {
        return partialUpdateInputColumns_.getByteString(index);
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @param index The index to set the value at.
       * @param value The partialUpdateInputColumns to set.
       * @return This builder for chaining.
       */
      public Builder setPartialUpdateInputColumns(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensurePartialUpdateInputColumnsIsMutable();
        partialUpdateInputColumns_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @param value The partialUpdateInputColumns to add.
       * @return This builder for chaining.
       */
      public Builder addPartialUpdateInputColumns(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensurePartialUpdateInputColumnsIsMutable();
        partialUpdateInputColumns_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @param values The partialUpdateInputColumns to add.
       * @return This builder for chaining.
       */
      public Builder addAllPartialUpdateInputColumns(
          java.lang.Iterable<java.lang.String> values) {
        ensurePartialUpdateInputColumnsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, partialUpdateInputColumns_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartialUpdateInputColumns() {
        partialUpdateInputColumns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 2;</code>
       * @param value The bytes of the partialUpdateInputColumns to add.
       * @return This builder for chaining.
       */
      public Builder addPartialUpdateInputColumnsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensurePartialUpdateInputColumnsIsMutable();
        partialUpdateInputColumns_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList missingCids_ = emptyIntList();
      private void ensureMissingCidsIsMutable() {
        if (!missingCids_.isModifiable()) {
          missingCids_ = makeMutableCopy(missingCids_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>repeated uint32 missing_cids = 3;</code>
       * @return A list containing the missingCids.
       */
      public java.util.List<java.lang.Integer>
          getMissingCidsList() {
        missingCids_.makeImmutable();
        return missingCids_;
      }
      /**
       * <code>repeated uint32 missing_cids = 3;</code>
       * @return The count of missingCids.
       */
      public int getMissingCidsCount() {
        return missingCids_.size();
      }
      /**
       * <code>repeated uint32 missing_cids = 3;</code>
       * @param index The index of the element to return.
       * @return The missingCids at the given index.
       */
      public int getMissingCids(int index) {
        return missingCids_.getInt(index);
      }
      /**
       * <code>repeated uint32 missing_cids = 3;</code>
       * @param index The index to set the value at.
       * @param value The missingCids to set.
       * @return This builder for chaining.
       */
      public Builder setMissingCids(
          int index, int value) {

        ensureMissingCidsIsMutable();
        missingCids_.setInt(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 missing_cids = 3;</code>
       * @param value The missingCids to add.
       * @return This builder for chaining.
       */
      public Builder addMissingCids(int value) {

        ensureMissingCidsIsMutable();
        missingCids_.addInt(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 missing_cids = 3;</code>
       * @param values The missingCids to add.
       * @return This builder for chaining.
       */
      public Builder addAllMissingCids(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureMissingCidsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, missingCids_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 missing_cids = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMissingCids() {
        missingCids_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList updateCids_ = emptyIntList();
      private void ensureUpdateCidsIsMutable() {
        if (!updateCids_.isModifiable()) {
          updateCids_ = makeMutableCopy(updateCids_);
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <code>repeated uint32 update_cids = 4;</code>
       * @return A list containing the updateCids.
       */
      public java.util.List<java.lang.Integer>
          getUpdateCidsList() {
        updateCids_.makeImmutable();
        return updateCids_;
      }
      /**
       * <code>repeated uint32 update_cids = 4;</code>
       * @return The count of updateCids.
       */
      public int getUpdateCidsCount() {
        return updateCids_.size();
      }
      /**
       * <code>repeated uint32 update_cids = 4;</code>
       * @param index The index of the element to return.
       * @return The updateCids at the given index.
       */
      public int getUpdateCids(int index) {
        return updateCids_.getInt(index);
      }
      /**
       * <code>repeated uint32 update_cids = 4;</code>
       * @param index The index to set the value at.
       * @param value The updateCids to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateCids(
          int index, int value) {

        ensureUpdateCidsIsMutable();
        updateCids_.setInt(index, value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 update_cids = 4;</code>
       * @param value The updateCids to add.
       * @return This builder for chaining.
       */
      public Builder addUpdateCids(int value) {

        ensureUpdateCidsIsMutable();
        updateCids_.addInt(value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 update_cids = 4;</code>
       * @param values The updateCids to add.
       * @return This builder for chaining.
       */
      public Builder addAllUpdateCids(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureUpdateCidsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, updateCids_);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 update_cids = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUpdateCids() {
        updateCids_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private boolean canInsertNewRowsInPartialUpdate_ ;
      /**
       * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
       * @return Whether the canInsertNewRowsInPartialUpdate field is set.
       */
      @java.lang.Override
      public boolean hasCanInsertNewRowsInPartialUpdate() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
       * @return The canInsertNewRowsInPartialUpdate.
       */
      @java.lang.Override
      public boolean getCanInsertNewRowsInPartialUpdate() {
        return canInsertNewRowsInPartialUpdate_;
      }
      /**
       * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
       * @param value The canInsertNewRowsInPartialUpdate to set.
       * @return This builder for chaining.
       */
      public Builder setCanInsertNewRowsInPartialUpdate(boolean value) {

        canInsertNewRowsInPartialUpdate_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool can_insert_new_rows_in_partial_update = 5 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearCanInsertNewRowsInPartialUpdate() {
        bitField0_ = (bitField0_ & ~0x00000010);
        canInsertNewRowsInPartialUpdate_ = false;
        onChanged();
        return this;
      }

      private boolean isStrictMode_ ;
      /**
       * <code>optional bool is_strict_mode = 6 [default = false];</code>
       * @return Whether the isStrictMode field is set.
       */
      @java.lang.Override
      public boolean hasIsStrictMode() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional bool is_strict_mode = 6 [default = false];</code>
       * @return The isStrictMode.
       */
      @java.lang.Override
      public boolean getIsStrictMode() {
        return isStrictMode_;
      }
      /**
       * <code>optional bool is_strict_mode = 6 [default = false];</code>
       * @param value The isStrictMode to set.
       * @return This builder for chaining.
       */
      public Builder setIsStrictMode(boolean value) {

        isStrictMode_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_strict_mode = 6 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsStrictMode() {
        bitField0_ = (bitField0_ & ~0x00000020);
        isStrictMode_ = false;
        onChanged();
        return this;
      }

      private long timestampMs_ ;
      /**
       * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
       * @return Whether the timestampMs field is set.
       */
      @java.lang.Override
      public boolean hasTimestampMs() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
       * @return The timestampMs.
       */
      @java.lang.Override
      public long getTimestampMs() {
        return timestampMs_;
      }
      /**
       * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
       * @param value The timestampMs to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampMs(long value) {

        timestampMs_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 timestamp_ms = 7 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampMs() {
        bitField0_ = (bitField0_ & ~0x00000040);
        timestampMs_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object timezone_ = "";
      /**
       * <code>optional string timezone = 8;</code>
       * @return Whether the timezone field is set.
       */
      public boolean hasTimezone() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional string timezone = 8;</code>
       * @return The timezone.
       */
      public java.lang.String getTimezone() {
        java.lang.Object ref = timezone_;
        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()) {
            timezone_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string timezone = 8;</code>
       * @return The bytes for timezone.
       */
      public com.google.protobuf.ByteString
          getTimezoneBytes() {
        java.lang.Object ref = timezone_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timezone_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string timezone = 8;</code>
       * @param value The timezone to set.
       * @return This builder for chaining.
       */
      public Builder setTimezone(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        timezone_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional string timezone = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimezone() {
        timezone_ = getDefaultInstance().getTimezone();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>optional string timezone = 8;</code>
       * @param value The bytes for timezone to set.
       * @return This builder for chaining.
       */
      public Builder setTimezoneBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        timezone_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private boolean isInputColumnsContainsAutoIncColumn_ ;
      /**
       * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
       * @return Whether the isInputColumnsContainsAutoIncColumn field is set.
       */
      @java.lang.Override
      public boolean hasIsInputColumnsContainsAutoIncColumn() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
       * @return The isInputColumnsContainsAutoIncColumn.
       */
      @java.lang.Override
      public boolean getIsInputColumnsContainsAutoIncColumn() {
        return isInputColumnsContainsAutoIncColumn_;
      }
      /**
       * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
       * @param value The isInputColumnsContainsAutoIncColumn to set.
       * @return This builder for chaining.
       */
      public Builder setIsInputColumnsContainsAutoIncColumn(boolean value) {

        isInputColumnsContainsAutoIncColumn_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_input_columns_contains_auto_inc_column = 9 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsInputColumnsContainsAutoIncColumn() {
        bitField0_ = (bitField0_ & ~0x00000100);
        isInputColumnsContainsAutoIncColumn_ = false;
        onChanged();
        return this;
      }

      private boolean isSchemaContainsAutoIncColumn_ ;
      /**
       * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
       * @return Whether the isSchemaContainsAutoIncColumn field is set.
       */
      @java.lang.Override
      public boolean hasIsSchemaContainsAutoIncColumn() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
       * @return The isSchemaContainsAutoIncColumn.
       */
      @java.lang.Override
      public boolean getIsSchemaContainsAutoIncColumn() {
        return isSchemaContainsAutoIncColumn_;
      }
      /**
       * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
       * @param value The isSchemaContainsAutoIncColumn to set.
       * @return This builder for chaining.
       */
      public Builder setIsSchemaContainsAutoIncColumn(boolean value) {

        isSchemaContainsAutoIncColumn_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_schema_contains_auto_inc_column = 10 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsSchemaContainsAutoIncColumn() {
        bitField0_ = (bitField0_ & ~0x00000200);
        isSchemaContainsAutoIncColumn_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList defaultValues_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureDefaultValuesIsMutable() {
        if (!defaultValues_.isModifiable()) {
          defaultValues_ = new com.google.protobuf.LazyStringArrayList(defaultValues_);
        }
        bitField0_ |= 0x00000400;
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @return A list containing the defaultValues.
       */
      public com.google.protobuf.ProtocolStringList
          getDefaultValuesList() {
        defaultValues_.makeImmutable();
        return defaultValues_;
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @return The count of defaultValues.
       */
      public int getDefaultValuesCount() {
        return defaultValues_.size();
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @param index The index of the element to return.
       * @return The defaultValues at the given index.
       */
      public java.lang.String getDefaultValues(int index) {
        return defaultValues_.get(index);
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @param index The index of the value to return.
       * @return The bytes of the defaultValues at the given index.
       */
      public com.google.protobuf.ByteString
          getDefaultValuesBytes(int index) {
        return defaultValues_.getByteString(index);
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @param index The index to set the value at.
       * @param value The defaultValues to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultValues(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureDefaultValuesIsMutable();
        defaultValues_.set(index, value);
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @param value The defaultValues to add.
       * @return This builder for chaining.
       */
      public Builder addDefaultValues(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureDefaultValuesIsMutable();
        defaultValues_.add(value);
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @param values The defaultValues to add.
       * @return This builder for chaining.
       */
      public Builder addAllDefaultValues(
          java.lang.Iterable<java.lang.String> values) {
        ensureDefaultValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, defaultValues_);
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearDefaultValues() {
        defaultValues_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000400);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string default_values = 11;</code>
       * @param value The bytes of the defaultValues to add.
       * @return This builder for chaining.
       */
      public Builder addDefaultValuesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureDefaultValuesIsMutable();
        defaultValues_.add(value);
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }

      private long maxVersionInFlushPhase_ = -1L;
      /**
       * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
       * @return Whether the maxVersionInFlushPhase field is set.
       */
      @java.lang.Override
      public boolean hasMaxVersionInFlushPhase() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
       * @return The maxVersionInFlushPhase.
       */
      @java.lang.Override
      public long getMaxVersionInFlushPhase() {
        return maxVersionInFlushPhase_;
      }
      /**
       * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
       * @param value The maxVersionInFlushPhase to set.
       * @return This builder for chaining.
       */
      public Builder setMaxVersionInFlushPhase(long value) {

        maxVersionInFlushPhase_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 max_version_in_flush_phase = 12 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxVersionInFlushPhase() {
        bitField0_ = (bitField0_ & ~0x00000800);
        maxVersionInFlushPhase_ = -1L;
        onChanged();
        return this;
      }

      private int nanoSeconds_ ;
      /**
       * <code>optional int32 nano_seconds = 13 [default = 0];</code>
       * @return Whether the nanoSeconds field is set.
       */
      @java.lang.Override
      public boolean hasNanoSeconds() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional int32 nano_seconds = 13 [default = 0];</code>
       * @return The nanoSeconds.
       */
      @java.lang.Override
      public int getNanoSeconds() {
        return nanoSeconds_;
      }
      /**
       * <code>optional int32 nano_seconds = 13 [default = 0];</code>
       * @param value The nanoSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setNanoSeconds(int value) {

        nanoSeconds_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 nano_seconds = 13 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearNanoSeconds() {
        bitField0_ = (bitField0_ & ~0x00001000);
        nanoSeconds_ = 0;
        onChanged();
        return this;
      }

      private int partialUpdateMode_ = 0;
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
       * @return Whether the partialUpdateMode field is set.
       */
      @java.lang.Override public boolean hasPartialUpdateMode() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
       * @return The partialUpdateMode.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB getPartialUpdateMode() {
        org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB result = org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.forNumber(partialUpdateMode_);
        return result == null ? org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.UPSERT : result;
      }
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
       * @param value The partialUpdateMode to set.
       * @return This builder for chaining.
       */
      public Builder setPartialUpdateMode(org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00002000;
        partialUpdateMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB partial_update_mode = 14 [default = UPSERT];</code>
       * @return This builder for chaining.
       */
      public Builder clearPartialUpdateMode() {
        bitField0_ = (bitField0_ & ~0x00002000);
        partialUpdateMode_ = 0;
        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.PartialUpdateInfoPB)
    }

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

    public static org.apache.doris.proto.OlapFile.PartialUpdateInfoPB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PartialUpdateInfoPB>
        PARSER = new com.google.protobuf.AbstractParser<PartialUpdateInfoPB>() {
      @java.lang.Override
      public PartialUpdateInfoPB 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<PartialUpdateInfoPB> parser() {
      return PARSER;
    }

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_ZoneMap_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_ZoneMap_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_KeyBoundsPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_KeyBoundsPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_RowsetMetaPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_RowsetMetaPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_SchemaDictKeyList_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_SchemaDictKeyList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_RowsetMetaCloudPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_RowsetMetaCloudPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_SegmentStatisticsPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_SegmentStatisticsPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_RemoteRowsetGcPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_RemoteRowsetGcPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_RemoteTabletGcPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_RemoteTabletGcPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_DeletePredicatePB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_DeletePredicatePB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_DeleteSubPredicatePB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_DeleteSubPredicatePB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_InPredicatePB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_InPredicatePB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_AlterTabletPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_AlterTabletPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_ColumnPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_ColumnPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_SchemaCloudDictionary_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_SchemaCloudDictionary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_SchemaCloudDictionary_ColumnDictEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_SchemaCloudDictionary_ColumnDictEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_SchemaCloudDictionary_IndexDictEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_SchemaCloudDictionary_IndexDictEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_TabletIndexPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_TabletIndexPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_TabletIndexPB_PropertiesEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_TabletIndexPB_PropertiesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_TabletSchemaPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_TabletSchemaPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_TabletSchemaCloudPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_TabletSchemaCloudPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_S3StorageParamPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_S3StorageParamPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_BinlogConfigPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_BinlogConfigPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_TabletMetaPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_TabletMetaPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_TabletMetaCloudPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_TabletMetaCloudPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_OLAPRawDeltaHeaderMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_OLAPRawDeltaHeaderMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_DeleteBitmapPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_DeleteBitmapPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_BinlogMetaEntryPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_BinlogMetaEntryPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PendingPublishInfoPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PendingPublishInfoPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_RowsetBinlogMetasPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_RowsetBinlogMetasPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PartialUpdateInfoPB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PartialUpdateInfoPB_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\017olap_file.proto\022\005doris\032\021olap_common.pr" +
      "oto\032\013types.proto\032\020segment_v2.proto\"6\n\007Zo" +
      "neMap\022\013\n\003min\030\001 \002(\014\022\013\n\003max\030\002 \002(\014\022\021\n\tnull_" +
      "flag\030\003 \001(\010\"/\n\013KeyBoundsPB\022\017\n\007min_key\030\001 \002" +
      "(\014\022\017\n\007max_key\030\002 \002(\014\"\375\t\n\014RowsetMetaPB\022\021\n\t" +
      "rowset_id\030\001 \002(\003\022\024\n\014partition_id\030\002 \001(\003\022\021\n" +
      "\ttablet_id\030\003 \001(\003\022\016\n\006txn_id\030\004 \001(\003\022\032\n\022tabl" +
      "et_schema_hash\030\005 \001(\005\022(\n\013rowset_type\030\006 \001(" +
      "\0162\023.doris.RowsetTypePB\022*\n\014rowset_state\030\007" +
      " \001(\0162\024.doris.RowsetStatePB\022\025\n\rstart_vers" +
      "ion\030\010 \001(\003\022\023\n\013end_version\030\t \001(\003\022\024\n\014versio" +
      "n_hash\030\n \001(\003\022\020\n\010num_rows\030\013 \001(\003\022\027\n\017total_" +
      "disk_size\030\014 \001(\003\022\026\n\016data_disk_size\030\r \001(\003\022" +
      "\027\n\017index_disk_size\030\016 \001(\003\022!\n\tzone_maps\030\017 " +
      "\003(\0132\016.doris.ZoneMap\0222\n\020delete_predicate\030" +
      "\020 \001(\0132\030.doris.DeletePredicatePB\022\r\n\005empty" +
      "\030\021 \001(\010\022!\n\007load_id\030\022 \001(\0132\020.doris.PUniqueI" +
      "d\022\023\n\013delete_flag\030\023 \001(\010\022\025\n\rcreation_time\030" +
      "\024 \001(\003\022$\n\ntablet_uid\030\025 \001(\0132\020.doris.PUniqu" +
      "eId\022\024\n\014num_segments\030\026 \001(\003\022\024\n\014rowset_id_v" +
      "2\030\027 \001(\t\022\023\n\013resource_id\030\030 \001(\t\022\"\n\026newest_w" +
      "rite_timestamp\030\032 \001(\003:\002-1\022/\n\023segments_key" +
      "_bounds\030\033 \003(\0132\022.doris.KeyBoundsPB\022,\n\rtab" +
      "let_schema\030\034 \001(\0132\025.doris.TabletSchemaPB\022" +
      "F\n\023segments_overlap_pb\0303 \001(\0162\030.doris.Seg" +
      "mentsOverlapPB:\017OVERLAP_UNKNOWN\022\033\n\020compa" +
      "ction_level\0304 \001(\003:\0010\022\030\n\020source_tablet_id" +
      "\0305 \001(\003\022\030\n\020source_rowset_id\0306 \001(\t\022\027\n\016txn_" +
      "expiration\030\350\007 \001(\003\022\033\n\022segments_file_size\030" +
      "\351\007 \003(\003\022\021\n\010index_id\030\352\007 \001(\003\022\027\n\016schema_vers" +
      "ion\030\353\007 \001(\005\022\"\n\031enable_segments_file_size\030" +
      "\354\007 \001(\010\022#\n\032has_variant_type_in_schema\030\355\007 " +
      "\001(\010\022(\n\037enable_inverted_index_file_info\030\356" +
      "\007 \001(\010\022?\n\030inverted_index_file_info\030\357\007 \003(\013" +
      "2\034.doris.InvertedIndexFileInfo\0227\n\024schema" +
      "_dict_key_list\030\360\007 \001(\0132\030.doris.SchemaDict" +
      "KeyListJ\004\010\031\020\032J\004\0102\0203\"x\n\021SchemaDictKeyList" +
      "\022\034\n\024column_dict_key_list\030\001 \003(\005\022 \n\030index_" +
      "info_dict_key_list\030\002 \003(\005\022#\n\033sparse_colum" +
      "n_dict_key_list\030\003 \003(\005\"\376\t\n\021RowsetMetaClou" +
      "dPB\022\021\n\trowset_id\030\001 \002(\003\022\024\n\014partition_id\030\002" +
      " \001(\003\022\021\n\ttablet_id\030\003 \001(\003\022\016\n\006txn_id\030\004 \001(\003\022" +
      "\032\n\022tablet_schema_hash\030\005 \001(\005\022(\n\013rowset_ty" +
      "pe\030\006 \001(\0162\023.doris.RowsetTypePB\022*\n\014rowset_" +
      "state\030\007 \001(\0162\024.doris.RowsetStatePB\022\025\n\rsta" +
      "rt_version\030\010 \001(\003\022\023\n\013end_version\030\t \001(\003\022\024\n" +
      "\014version_hash\030\n \001(\003\022\020\n\010num_rows\030\013 \001(\003\022\027\n" +
      "\017total_disk_size\030\014 \001(\003\022\026\n\016data_disk_size" +
      "\030\r \001(\003\022\027\n\017index_disk_size\030\016 \001(\003\022!\n\tzone_" +
      "maps\030\017 \003(\0132\016.doris.ZoneMap\0222\n\020delete_pre" +
      "dicate\030\020 \001(\0132\030.doris.DeletePredicatePB\022\r" +
      "\n\005empty\030\021 \001(\010\022!\n\007load_id\030\022 \001(\0132\020.doris.P" +
      "UniqueId\022\023\n\013delete_flag\030\023 \001(\010\022\025\n\rcreatio" +
      "n_time\030\024 \001(\003\022$\n\ntablet_uid\030\025 \001(\0132\020.doris" +
      ".PUniqueId\022\024\n\014num_segments\030\026 \001(\003\022\024\n\014rows" +
      "et_id_v2\030\027 \001(\t\022\023\n\013resource_id\030\030 \001(\t\022\"\n\026n" +
      "ewest_write_timestamp\030\032 \001(\003:\002-1\022/\n\023segme" +
      "nts_key_bounds\030\033 \003(\0132\022.doris.KeyBoundsPB" +
      "\0221\n\rtablet_schema\030\034 \001(\0132\032.doris.TabletSc" +
      "hemaCloudPB\022\026\n\016txn_expiration\030\035 \001(\003\022F\n\023s" +
      "egments_overlap_pb\0303 \001(\0162\030.doris.Segment" +
      "sOverlapPB:\017OVERLAP_UNKNOWN\022\033\n\020compactio" +
      "n_level\0304 \001(\003:\0010\022\030\n\020source_tablet_id\0305 \001" +
      "(\003\022\030\n\020source_rowset_id\0306 \001(\t\022\032\n\022segments" +
      "_file_size\030d \003(\003\022\020\n\010index_id\030e \001(\003\022\026\n\016sc" +
      "hema_version\030f \001(\005\022!\n\031enable_segments_fi" +
      "le_size\030g \001(\010\022\"\n\032has_variant_type_in_sch" +
      "ema\030h \001(\010\0226\n\024schema_dict_key_list\030i \001(\0132" +
      "\030.doris.SchemaDictKeyList\022\'\n\037enable_inve" +
      "rted_index_file_info\030j \001(\010\022>\n\030inverted_i" +
      "ndex_file_info\030k \003(\0132\034.doris.InvertedInd" +
      "exFileInfoJ\004\010\031\020\032J\004\0102\0203\"u\n\023SegmentStatist" +
      "icsPB\022\017\n\007row_num\030\001 \001(\003\022\021\n\tdata_size\030\002 \001(" +
      "\003\022\022\n\nindex_size\030\003 \001(\003\022&\n\nkey_bounds\030\004 \001(" +
      "\0132\022.doris.KeyBoundsPB\"P\n\020RemoteRowsetGcP" +
      "B\022\023\n\013resource_id\030\001 \002(\t\022\021\n\ttablet_id\030\002 \002(" +
      "\003\022\024\n\014num_segments\030\003 \002(\003\"(\n\020RemoteTabletG" +
      "cPB\022\024\n\014resource_ids\030\001 \003(\t\"\241\001\n\021DeletePred" +
      "icatePB\022\017\n\007version\030\001 \002(\005\022\026\n\016sub_predicat" +
      "es\030\002 \003(\t\022+\n\rin_predicates\030\003 \003(\0132\024.doris." +
      "InPredicatePB\0226\n\021sub_predicates_v2\030\004 \003(\013" +
      "2\033.doris.DeleteSubPredicatePB\"e\n\024DeleteS" +
      "ubPredicatePB\022\030\n\020column_unique_id\030\001 \001(\005\022" +
      "\023\n\013column_name\030\002 \001(\t\022\n\n\002op\030\003 \001(\t\022\022\n\ncond" +
      "_value\030\004 \001(\t\"a\n\rInPredicatePB\022\023\n\013column_" +
      "name\030\001 \001(\t\022\021\n\tis_not_in\030\002 \001(\010\022\016\n\006values\030" +
      "\003 \003(\t\022\030\n\020column_unique_id\030\004 \001(\005\"\241\001\n\rAlte" +
      "rTabletPB\022,\n\013alter_state\030\001 \001(\0162\027.doris.A" +
      "lterTabletState\022\031\n\021related_tablet_id\030\002 \002" +
      "(\003\022\033\n\023related_schema_hash\030\003 \001(\005\022*\n\nalter" +
      "_type\030\004 \001(\0162\026.doris.AlterTabletType\"\361\004\n\010" +
      "ColumnPB\022\021\n\tunique_id\030\001 \002(\005\022\014\n\004name\030\002 \001(" +
      "\t\022\014\n\004type\030\003 \002(\t\022\016\n\006is_key\030\004 \001(\010\022\023\n\013aggre" +
      "gation\030\005 \001(\t\022\023\n\013is_nullable\030\006 \001(\010\022\025\n\rdef" +
      "ault_value\030\007 \001(\014\022\021\n\tprecision\030\010 \001(\005\022\014\n\004f" +
      "rac\030\t \001(\005\022\016\n\006length\030\n \001(\005\022\024\n\014index_lengt" +
      "h\030\013 \001(\005\022\024\n\014is_bf_column\030\014 \001(\010\022\034\n\024referen" +
      "ced_column_id\030\r \001(\005\022\031\n\021referenced_column" +
      "\030\016 \001(\t\022\037\n\020has_bitmap_index\030\017 \001(\010:\005false\022" +
      "\025\n\007visible\030\020 \001(\010:\004true\022)\n\020children_colum" +
      "ns\030\021 \003(\0132\017.doris.ColumnPB\022\035\n\025children_co" +
      "lumn_names\030\022 \003(\t\022\032\n\022result_is_nullable\030\023" +
      " \001(\010\022:\n\020column_path_info\030\024 \001(\0132 .doris.s" +
      "egment_v2.ColumnPathInfo\022\'\n\016sparse_colum" +
      "ns\030\025 \003(\0132\017.doris.ColumnPB\022\031\n\021is_auto_inc" +
      "rement\030\026 \001(\010\022\030\n\020parent_unique_id\030\027 \001(\005\022\027" +
      "\n\017be_exec_version\030\030 \001(\005\"\346\002\n\025SchemaCloudD" +
      "ictionary\022A\n\013column_dict\030\001 \003(\0132,.doris.S" +
      "chemaCloudDictionary.ColumnDictEntry\022\036\n\026" +
      "current_column_dict_id\030\002 \001(\003\022?\n\nindex_di" +
      "ct\030\003 \003(\0132+.doris.SchemaCloudDictionary.I" +
      "ndexDictEntry\022\035\n\025current_index_dict_id\030\004" +
      " \001(\003\032B\n\017ColumnDictEntry\022\013\n\003key\030\001 \001(\005\022\036\n\005" +
      "value\030\002 \001(\0132\017.doris.ColumnPB:\0028\001\032F\n\016Inde" +
      "xDictEntry\022\013\n\003key\030\001 \001(\005\022#\n\005value\030\002 \001(\0132\024" +
      ".doris.TabletIndexPB:\0028\001\"\372\001\n\rTabletIndex" +
      "PB\022\020\n\010index_id\030\001 \001(\003\022\022\n\nindex_name\030\002 \001(\t" +
      "\022$\n\nindex_type\030\003 \001(\0162\020.doris.IndexType\022\025" +
      "\n\rcol_unique_id\030\004 \003(\005\0228\n\nproperties\030\005 \003(" +
      "\0132$.doris.TabletIndexPB.PropertiesEntry\022" +
      "\031\n\021index_suffix_name\030\006 \001(\t\0321\n\017Properties" +
      "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\225\010" +
      "\n\016TabletSchemaPB\022\"\n\tkeys_type\030\001 \001(\0162\017.do" +
      "ris.KeysType\022\037\n\006column\030\002 \003(\0132\017.doris.Col" +
      "umnPB\022\035\n\025num_short_key_columns\030\003 \001(\005\022\036\n\026" +
      "num_rows_per_row_block\030\004 \001(\005\022*\n\rcompress" +
      "_kind\030\005 \001(\0162\023.doris.CompressKind\022\016\n\006bf_f" +
      "pp\030\006 \001(\001\022\035\n\025next_column_unique_id\030\007 \001(\r\022" +
      "\033\n\014is_in_memory\030\010 \001(\010:\005false\022\033\n\017delete_s" +
      "ign_idx\030\t \001(\005:\002-1\022\034\n\020sequence_col_idx\030\n " +
      "\001(\005:\002-1\022\"\n\tsort_type\030\013 \001(\0162\017.doris.SortT" +
      "ype\022\024\n\014sort_col_num\030\014 \001(\005\022C\n\020compression" +
      "_type\030\r \001(\0162#.doris.segment_v2.Compressi" +
      "onTypePB:\004LZ4F\022\026\n\016schema_version\030\016 \001(\005\022&" +
      "\n\027disable_auto_compaction\030\017 \001(\010:\005false\022#" +
      "\n\005index\030\020 \003(\0132\024.doris.TabletIndexPB\022\033\n\017v" +
      "ersion_col_idx\030\021 \001(\005:\002-1\022\037\n\020store_row_co" +
      "lumn\030\022 \001(\010:\005false\022 \n\021is_dynamic_schema\030\023" +
      " \001(\010:\005false\022/\n enable_single_replica_com" +
      "paction\030\026 \001(\010:\005false\022\'\n\030skip_write_index" +
      "_on_load\030\027 \001(\010:\005false\022\030\n\020cluster_key_uid" +
      "s\030\030 \003(\005\022N\n\035inverted_index_storage_format" +
      "\030\031 \001(\0162#.doris.InvertedIndexStorageForma" +
      "tPB:\002V1\022#\n\033row_store_column_unique_ids\030\032" +
      " \003(\005\022\"\n\023row_store_page_size\030\033 \001(\003:\00516384" +
      "\022,\n\035enable_variant_flatten_nested\030\034 \001(\010:" +
      "\005false\022\037\n\023skip_bitmap_col_idx\030\035 \001(\005:\002-1\022" +
      " \n\021storage_page_size\030\036 \001(\003:\00565536J\004\010\024\020\025J" +
      "\004\010\025\020\026\"\241\010\n\023TabletSchemaCloudPB\022\"\n\tkeys_ty" +
      "pe\030\001 \001(\0162\017.doris.KeysType\022\037\n\006column\030\002 \003(" +
      "\0132\017.doris.ColumnPB\022\035\n\025num_short_key_colu" +
      "mns\030\003 \001(\005\022\036\n\026num_rows_per_row_block\030\004 \001(" +
      "\005\022*\n\rcompress_kind\030\005 \001(\0162\023.doris.Compres" +
      "sKind\022\016\n\006bf_fpp\030\006 \001(\001\022\035\n\025next_column_uni" +
      "que_id\030\007 \001(\r\022\033\n\017delete_sign_idx\030\010 \001(\005:\002-" +
      "1\022\034\n\020sequence_col_idx\030\t \001(\005:\002-1\022\"\n\tsort_" +
      "type\030\n \001(\0162\017.doris.SortType\022\024\n\014sort_col_" +
      "num\030\013 \001(\005\022C\n\020compression_type\030\014 \001(\0162#.do" +
      "ris.segment_v2.CompressionTypePB:\004LZ4F\022\026" +
      "\n\016schema_version\030\r \001(\005\022&\n\027disable_auto_c" +
      "ompaction\030\016 \001(\010:\005false\022#\n\005index\030\017 \003(\0132\024." +
      "doris.TabletIndexPB\022\033\n\017version_col_idx\030\020" +
      " \001(\005:\002-1\022\037\n\020store_row_column\030\022 \001(\010:\005fals" +
      "e\022/\n enable_single_replica_compaction\030\026 " +
      "\001(\010:\005false\022\'\n\030skip_write_index_on_load\030\027" +
      " \001(\010:\005false\022\030\n\020cluster_key_uids\030\030 \003(\005\022N\n" +
      "\035inverted_index_storage_format\030\031 \001(\0162#.d" +
      "oris.InvertedIndexStorageFormatPB:\002V1\022#\n" +
      "\033row_store_column_unique_ids\030\032 \003(\005\022\"\n\023ro" +
      "w_store_page_size\030\033 \001(\003:\00516384\022,\n\035enable" +
      "_variant_flatten_nested\030\035 \001(\010:\005false\022\037\n\023" +
      "skip_bitmap_col_idx\030\036 \001(\005:\002-1\022 \n\021storage" +
      "_page_size\030\037 \001(\003:\00565536\022 \n\021is_dynamic_sc" +
      "hema\030d \001(\010:\005false\022\034\n\014is_in_memory\030\310\001 \001(\010" +
      ":\005falseJ\004\010\024\020\025J\004\010\025\020\026J\004\010\034\020\035\"\313\001\n\020S3StorageP" +
      "aramPB\022\023\n\013s3_endpoint\030\001 \001(\t\022\021\n\ts3_region" +
      "\030\002 \001(\t\022\r\n\005s3_ak\030\003 \001(\t\022\r\n\005s3_sk\030\004 \001(\t\022\027\n\013" +
      "s3_max_conn\030\005 \001(\005:\00250\022#\n\025s3_request_time" +
      "out_ms\030\006 \001(\005:\0043000\022 \n\022s3_conn_timeout_ms" +
      "\030\007 \001(\005:\0041000\022\021\n\troot_path\030\010 \001(\t\"b\n\016Binlo" +
      "gConfigPB\022\016\n\006enable\030\001 \001(\010\022\023\n\013ttl_seconds" +
      "\030\002 \001(\003\022\021\n\tmax_bytes\030\003 \001(\003\022\030\n\020max_history" +
      "_nums\030\004 \001(\003\"\231\n\n\014TabletMetaPB\022\020\n\010table_id" +
      "\030\001 \001(\003\022\024\n\014partition_id\030\002 \001(\003\022\021\n\ttablet_i" +
      "d\030\003 \001(\003\022\023\n\013schema_hash\030\004 \001(\005\022\020\n\010shard_id" +
      "\030\005 \001(\005\022\025\n\rcreation_time\030\006 \001(\003\022\036\n\026cumulat" +
      "ive_layer_point\030\007 \001(\003\022*\n\014tablet_state\030\010 " +
      "\001(\0162\024.doris.TabletStatePB\022%\n\006schema\030\t \001(" +
      "\0132\025.doris.TabletSchemaPB\022%\n\010rs_metas\030\n \003" +
      "(\0132\023.doris.RowsetMetaPB\022)\n\014inc_rs_metas\030" +
      "\013 \003(\0132\023.doris.RowsetMetaPB\022(\n\nalter_task" +
      "\030\014 \001(\0132\024.doris.AlterTabletPB\022\036\n\017in_resto" +
      "re_mode\030\r \001(\010:\005false\022$\n\ntablet_uid\030\016 \001(\013" +
      "2\020.doris.PUniqueId\022\025\n\rend_rowset_id\030\017 \001(" +
      "\003\0222\n\025preferred_rowset_type\030\020 \001(\0162\023.doris" +
      ".RowsetTypePB\022(\n\013tablet_type\030\021 \001(\0162\023.dor" +
      "is.TabletTypePB\022+\n\016stale_rs_metas\030\022 \003(\0132" +
      "\023.doris.RowsetMetaPB\022\025\n\nreplica_id\030\025 \001(\003" +
      ":\0010\022,\n\rdelete_bitmap\030\027 \001(\0132\025.doris.Delet" +
      "eBitmapPB\022/\n enable_unique_key_merge_on_" +
      "write\030\030 \001(\010:\005false\022\031\n\021storage_policy_id\030" +
      "\031 \001(\003\022*\n\020cooldown_meta_id\030\032 \001(\0132\020.doris." +
      "PUniqueId\022,\n\rbinlog_config\030\033 \001(\0132\025.doris" +
      ".BinlogConfigPB\022%\n\021compaction_policy\030\034 \001" +
      "(\t:\nsize_based\0225\n\'time_series_compaction" +
      "_goal_size_mbytes\030\035 \001(\003:\0041024\0229\n+time_se" +
      "ries_compaction_file_count_threshold\030\036 \001" +
      "(\003:\0042000\022;\n-time_series_compaction_time_" +
      "threshold_seconds\030\037 \001(\003:\0043600\0229\n.time_se" +
      "ries_compaction_empty_rowsets_threshold\030" +
      "  \001(\003:\0015\0221\n&time_series_compaction_level" +
      "_threshold\030! \001(\003:\0011\022\021\n\010index_id\030\350\007 \001(\003\022\025" +
      "\n\014is_in_memory\030\351\007 \001(\010\022\026\n\ris_persistent\030\352" +
      "\007 \001(\010\022\023\n\ntable_name\030\353\007 \001(\t\022\024\n\013ttl_second" +
      "s\030\354\007 \001(\003\022\027\n\016schema_version\030\355\007 \001(\005J\004\010\026\020\027\"" +
      "\306\n\n\021TabletMetaCloudPB\022\020\n\010table_id\030\001 \001(\003\022" +
      "\024\n\014partition_id\030\002 \001(\003\022\021\n\ttablet_id\030\003 \001(\003" +
      "\022\023\n\013schema_hash\030\004 \001(\005\022\020\n\010shard_id\030\005 \001(\005\022" +
      "\025\n\rcreation_time\030\006 \001(\003\022\036\n\026cumulative_lay" +
      "er_point\030\007 \001(\003\022*\n\014tablet_state\030\010 \001(\0162\024.d" +
      "oris.TabletStatePB\022*\n\006schema\030\t \001(\0132\032.dor" +
      "is.TabletSchemaCloudPB\022*\n\010rs_metas\030\n \003(\013" +
      "2\030.doris.RowsetMetaCloudPB\022.\n\014inc_rs_met" +
      "as\030\013 \003(\0132\030.doris.RowsetMetaCloudPB\022(\n\nal" +
      "ter_task\030\014 \001(\0132\024.doris.AlterTabletPB\022\036\n\017" +
      "in_restore_mode\030\r \001(\010:\005false\022$\n\ntablet_u" +
      "id\030\016 \001(\0132\020.doris.PUniqueId\022\025\n\rend_rowset" +
      "_id\030\017 \001(\003\0222\n\025preferred_rowset_type\030\020 \001(\016" +
      "2\023.doris.RowsetTypePB\022(\n\013tablet_type\030\021 \001" +
      "(\0162\023.doris.TabletTypePB\0220\n\016stale_rs_meta" +
      "s\030\022 \003(\0132\030.doris.RowsetMetaCloudPB\022\025\n\nrep" +
      "lica_id\030\025 \001(\003:\0010\022,\n\rdelete_bitmap\030\027 \001(\0132" +
      "\025.doris.DeleteBitmapPB\022/\n enable_unique_" +
      "key_merge_on_write\030\030 \001(\010:\005false\022\020\n\010index" +
      "_id\030\031 \001(\003\022\033\n\014is_in_memory\030\032 \001(\010:\005false\022\034" +
      "\n\ris_persistent\030\033 \001(\010:\005false\022\031\n\021storage_" +
      "policy_id\030\034 \001(\003\022*\n\020cooldown_meta_id\030\035 \001(" +
      "\0132\020.doris.PUniqueId\022,\n\rbinlog_config\030\036 \001" +
      "(\0132\025.doris.BinlogConfigPB\022%\n\021compaction_" +
      "policy\030\037 \001(\t:\nsize_based\0225\n\'time_series_" +
      "compaction_goal_size_mbytes\030  \001(\003:\0041024\022" +
      "9\n+time_series_compaction_file_count_thr" +
      "eshold\030! \001(\003:\0042000\022;\n-time_series_compac" +
      "tion_time_threshold_seconds\030\" \001(\003:\0043600\022" +
      "9\n.time_series_compaction_empty_rowsets_" +
      "threshold\030% \001(\003:\0015\0221\n&time_series_compac" +
      "tion_level_threshold\030& \001(\003:\0011\022\022\n\ntable_n" +
      "ame\030e \001(\t\022\023\n\013ttl_seconds\030f \001(\003\022\026\n\016schema" +
      "_version\030g \001(\005J\004\010\026\020\027J\004\010#\020$J\004\010$\020%\"0\n\031OLAP" +
      "RawDeltaHeaderMessage\022\023\n\013schema_hash\030\002 \002" +
      "(\005\"k\n\016DeleteBitmapPB\022\022\n\nrowset_ids\030\001 \003(\t" +
      "\022\023\n\013segment_ids\030\002 \003(\r\022\020\n\010versions\030\003 \003(\003\022" +
      "\036\n\026segment_delete_bitmaps\030\004 \003(\014\"\215\001\n\021Binl" +
      "ogMetaEntryPB\022\017\n\007version\030\001 \001(\003\022\021\n\ttablet" +
      "_id\030\002 \001(\003\022\021\n\trowset_id\030\003 \001(\003\022\024\n\014num_segm" +
      "ents\030\004 \001(\003\022\025\n\rcreation_time\030\005 \001(\003\022\024\n\014row" +
      "set_id_v2\030\006 \001(\t\"D\n\024PendingPublishInfoPB\022" +
      "\024\n\014partition_id\030\001 \001(\003\022\026\n\016transaction_id\030" +
      "\002 \001(\003\"\362\001\n\023RowsetBinlogMetasPB\022J\n\023rowset_" +
      "binlog_metas\030\001 \003(\0132-.doris.RowsetBinlogM" +
      "etasPB.RowsetBinlogMetaPB\032\216\001\n\022RowsetBinl" +
      "ogMetaPB\022\021\n\trowset_id\030\001 \001(\t\022\017\n\007version\030\002" +
      " \001(\003\022\024\n\014num_segments\030\003 \001(\003\022\020\n\010meta_key\030\004" +
      " \001(\t\022\014\n\004meta\030\005 \001(\014\022\020\n\010data_key\030\006 \001(\t\022\014\n\004" +
      "data\030\007 \001(\014\"\221\004\n\023PartialUpdateInfoPB\022 \n\021is" +
      "_partial_update\030\001 \001(\010:\005false\022$\n\034partial_" +
      "update_input_columns\030\002 \003(\t\022\024\n\014missing_ci" +
      "ds\030\003 \003(\r\022\023\n\013update_cids\030\004 \003(\r\0224\n%can_ins" +
      "ert_new_rows_in_partial_update\030\005 \001(\010:\005fa" +
      "lse\022\035\n\016is_strict_mode\030\006 \001(\010:\005false\022\027\n\014ti" +
      "mestamp_ms\030\007 \001(\003:\0010\022\020\n\010timezone\030\010 \001(\t\0228\n" +
      ")is_input_columns_contains_auto_inc_colu" +
      "mn\030\t \001(\010:\005false\0221\n\"is_schema_contains_au" +
      "to_inc_column\030\n \001(\010:\005false\022\026\n\016default_va" +
      "lues\030\013 \003(\t\022&\n\032max_version_in_flush_phase" +
      "\030\014 \001(\003:\002-1\022\027\n\014nano_seconds\030\r \001(\005:\0010\022A\n\023p" +
      "artial_update_mode\030\016 \001(\0162\034.doris.UniqueK" +
      "eyUpdateModePB:\006UPSERT*1\n\014RowsetTypePB\022\020" +
      "\n\014ALPHA_ROWSET\020\000\022\017\n\013BETA_ROWSET\020\001*T\n\rRow" +
      "setStatePB\022\014\n\010PREPARED\020\000\022\r\n\tCOMMITTED\020\001\022" +
      "\013\n\007VISIBLE\020\002\022\031\n\024BEGIN_PARTIAL_UPDATE\020\220N*" +
      "M\n\021SegmentsOverlapPB\022\023\n\017OVERLAP_UNKNOWN\020" +
      "\000\022\017\n\013OVERLAPPING\020\001\022\022\n\016NONOVERLAPPING\020\002*<" +
      "\n\014DataFileType\022\022\n\016OLAP_DATA_FILE\020\000\022\030\n\024CO" +
      "LUMN_ORIENTED_FILE\020\001*7\n\010KeysType\022\014\n\010DUP_" +
      "KEYS\020\000\022\017\n\013UNIQUE_KEYS\020\001\022\014\n\010AGG_KEYS\020\002*_\n" +
      "\020AlterTabletState\022\022\n\016ALTER_PREPARED\020\000\022\021\n" +
      "\rALTER_RUNNING\020\001\022\022\n\016ALTER_FINISHED\020\002\022\020\n\014" +
      "ALTER_FAILED\020\003*?\n\017AlterTabletType\022\021\n\rSCH" +
      "EMA_CHANGE\020\001\022\n\n\006ROLLUP\020\002\022\r\n\tMIGRATION\020\003*" +
      "D\n\tIndexType\022\n\n\006BITMAP\020\000\022\014\n\010INVERTED\020\001\022\017" +
      "\n\013BLOOMFILTER\020\002\022\014\n\010NGRAM_BF\020\003*6\n\034Inverte" +
      "dIndexStorageFormatPB\022\006\n\002V1\020\000\022\006\n\002V2\020\001\022\006\n" +
      "\002V3\020\002*#\n\010SortType\022\013\n\007LEXICAL\020\000\022\n\n\006ZORDER" +
      "\020\001*Z\n\025UniqueKeyUpdateModePB\022\n\n\006UPSERT\020\000\022" +
      "\030\n\024UPDATE_FIXED_COLUMNS\020\001\022\033\n\027UPDATE_FLEX" +
      "IBLE_COLUMNS\020\002*d\n\rTabletStatePB\022\017\n\013PB_NO" +
      "TREADY\020\000\022\016\n\nPB_RUNNING\020\001\022\021\n\rPB_TOMBSTONE" +
      "D\020\002\022\016\n\nPB_STOPPED\020\003\022\017\n\013PB_SHUTDOWN\020\004*<\n\014" +
      "TabletTypePB\022\024\n\020TABLET_TYPE_DISK\020\000\022\026\n\022TA" +
      "BLET_TYPE_MEMORY\020\001*=\n\017StorageMediumPB\022\007\n" +
      "\003HDD\020\000\022\007\n\003SSD\020\001\022\006\n\002S3\020\002\022\020\n\014REMOTE_CACHE\020" +
      "cB\030\n\026org.apache.doris.proto"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          org.apache.doris.proto.OlapCommon.getDescriptor(),
          org.apache.doris.proto.Types.getDescriptor(),
          doris.segment_v2.SegmentV2.getDescriptor(),
        });
    internal_static_doris_ZoneMap_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_doris_ZoneMap_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_ZoneMap_descriptor,
        new java.lang.String[] { "Min", "Max", "NullFlag", });
    internal_static_doris_KeyBoundsPB_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_doris_KeyBoundsPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_KeyBoundsPB_descriptor,
        new java.lang.String[] { "MinKey", "MaxKey", });
    internal_static_doris_RowsetMetaPB_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_doris_RowsetMetaPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_RowsetMetaPB_descriptor,
        new java.lang.String[] { "RowsetId", "PartitionId", "TabletId", "TxnId", "TabletSchemaHash", "RowsetType", "RowsetState", "StartVersion", "EndVersion", "VersionHash", "NumRows", "TotalDiskSize", "DataDiskSize", "IndexDiskSize", "ZoneMaps", "DeletePredicate", "Empty", "LoadId", "DeleteFlag", "CreationTime", "TabletUid", "NumSegments", "RowsetIdV2", "ResourceId", "NewestWriteTimestamp", "SegmentsKeyBounds", "TabletSchema", "SegmentsOverlapPb", "CompactionLevel", "SourceTabletId", "SourceRowsetId", "TxnExpiration", "SegmentsFileSize", "IndexId", "SchemaVersion", "EnableSegmentsFileSize", "HasVariantTypeInSchema", "EnableInvertedIndexFileInfo", "InvertedIndexFileInfo", "SchemaDictKeyList", });
    internal_static_doris_SchemaDictKeyList_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_doris_SchemaDictKeyList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_SchemaDictKeyList_descriptor,
        new java.lang.String[] { "ColumnDictKeyList", "IndexInfoDictKeyList", "SparseColumnDictKeyList", });
    internal_static_doris_RowsetMetaCloudPB_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_doris_RowsetMetaCloudPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_RowsetMetaCloudPB_descriptor,
        new java.lang.String[] { "RowsetId", "PartitionId", "TabletId", "TxnId", "TabletSchemaHash", "RowsetType", "RowsetState", "StartVersion", "EndVersion", "VersionHash", "NumRows", "TotalDiskSize", "DataDiskSize", "IndexDiskSize", "ZoneMaps", "DeletePredicate", "Empty", "LoadId", "DeleteFlag", "CreationTime", "TabletUid", "NumSegments", "RowsetIdV2", "ResourceId", "NewestWriteTimestamp", "SegmentsKeyBounds", "TabletSchema", "TxnExpiration", "SegmentsOverlapPb", "CompactionLevel", "SourceTabletId", "SourceRowsetId", "SegmentsFileSize", "IndexId", "SchemaVersion", "EnableSegmentsFileSize", "HasVariantTypeInSchema", "SchemaDictKeyList", "EnableInvertedIndexFileInfo", "InvertedIndexFileInfo", });
    internal_static_doris_SegmentStatisticsPB_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_doris_SegmentStatisticsPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_SegmentStatisticsPB_descriptor,
        new java.lang.String[] { "RowNum", "DataSize", "IndexSize", "KeyBounds", });
    internal_static_doris_RemoteRowsetGcPB_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_doris_RemoteRowsetGcPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_RemoteRowsetGcPB_descriptor,
        new java.lang.String[] { "ResourceId", "TabletId", "NumSegments", });
    internal_static_doris_RemoteTabletGcPB_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_doris_RemoteTabletGcPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_RemoteTabletGcPB_descriptor,
        new java.lang.String[] { "ResourceIds", });
    internal_static_doris_DeletePredicatePB_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_doris_DeletePredicatePB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_DeletePredicatePB_descriptor,
        new java.lang.String[] { "Version", "SubPredicates", "InPredicates", "SubPredicatesV2", });
    internal_static_doris_DeleteSubPredicatePB_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_doris_DeleteSubPredicatePB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_DeleteSubPredicatePB_descriptor,
        new java.lang.String[] { "ColumnUniqueId", "ColumnName", "Op", "CondValue", });
    internal_static_doris_InPredicatePB_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_doris_InPredicatePB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_InPredicatePB_descriptor,
        new java.lang.String[] { "ColumnName", "IsNotIn", "Values", "ColumnUniqueId", });
    internal_static_doris_AlterTabletPB_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_doris_AlterTabletPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_AlterTabletPB_descriptor,
        new java.lang.String[] { "AlterState", "RelatedTabletId", "RelatedSchemaHash", "AlterType", });
    internal_static_doris_ColumnPB_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_doris_ColumnPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_ColumnPB_descriptor,
        new java.lang.String[] { "UniqueId", "Name", "Type", "IsKey", "Aggregation", "IsNullable", "DefaultValue", "Precision", "Frac", "Length", "IndexLength", "IsBfColumn", "ReferencedColumnId", "ReferencedColumn", "HasBitmapIndex", "Visible", "ChildrenColumns", "ChildrenColumnNames", "ResultIsNullable", "ColumnPathInfo", "SparseColumns", "IsAutoIncrement", "ParentUniqueId", "BeExecVersion", });
    internal_static_doris_SchemaCloudDictionary_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_doris_SchemaCloudDictionary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_SchemaCloudDictionary_descriptor,
        new java.lang.String[] { "ColumnDict", "CurrentColumnDictId", "IndexDict", "CurrentIndexDictId", });
    internal_static_doris_SchemaCloudDictionary_ColumnDictEntry_descriptor =
      internal_static_doris_SchemaCloudDictionary_descriptor.getNestedTypes().get(0);
    internal_static_doris_SchemaCloudDictionary_ColumnDictEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_SchemaCloudDictionary_ColumnDictEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_doris_SchemaCloudDictionary_IndexDictEntry_descriptor =
      internal_static_doris_SchemaCloudDictionary_descriptor.getNestedTypes().get(1);
    internal_static_doris_SchemaCloudDictionary_IndexDictEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_SchemaCloudDictionary_IndexDictEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_doris_TabletIndexPB_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_doris_TabletIndexPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_TabletIndexPB_descriptor,
        new java.lang.String[] { "IndexId", "IndexName", "IndexType", "ColUniqueId", "Properties", "IndexSuffixName", });
    internal_static_doris_TabletIndexPB_PropertiesEntry_descriptor =
      internal_static_doris_TabletIndexPB_descriptor.getNestedTypes().get(0);
    internal_static_doris_TabletIndexPB_PropertiesEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_TabletIndexPB_PropertiesEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_doris_TabletSchemaPB_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_doris_TabletSchemaPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_TabletSchemaPB_descriptor,
        new java.lang.String[] { "KeysType", "Column", "NumShortKeyColumns", "NumRowsPerRowBlock", "CompressKind", "BfFpp", "NextColumnUniqueId", "IsInMemory", "DeleteSignIdx", "SequenceColIdx", "SortType", "SortColNum", "CompressionType", "SchemaVersion", "DisableAutoCompaction", "Index", "VersionColIdx", "StoreRowColumn", "IsDynamicSchema", "EnableSingleReplicaCompaction", "SkipWriteIndexOnLoad", "ClusterKeyUids", "InvertedIndexStorageFormat", "RowStoreColumnUniqueIds", "RowStorePageSize", "EnableVariantFlattenNested", "SkipBitmapColIdx", "StoragePageSize", });
    internal_static_doris_TabletSchemaCloudPB_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_doris_TabletSchemaCloudPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_TabletSchemaCloudPB_descriptor,
        new java.lang.String[] { "KeysType", "Column", "NumShortKeyColumns", "NumRowsPerRowBlock", "CompressKind", "BfFpp", "NextColumnUniqueId", "DeleteSignIdx", "SequenceColIdx", "SortType", "SortColNum", "CompressionType", "SchemaVersion", "DisableAutoCompaction", "Index", "VersionColIdx", "StoreRowColumn", "EnableSingleReplicaCompaction", "SkipWriteIndexOnLoad", "ClusterKeyUids", "InvertedIndexStorageFormat", "RowStoreColumnUniqueIds", "RowStorePageSize", "EnableVariantFlattenNested", "SkipBitmapColIdx", "StoragePageSize", "IsDynamicSchema", "IsInMemory", });
    internal_static_doris_S3StorageParamPB_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_doris_S3StorageParamPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_S3StorageParamPB_descriptor,
        new java.lang.String[] { "S3Endpoint", "S3Region", "S3Ak", "S3Sk", "S3MaxConn", "S3RequestTimeoutMs", "S3ConnTimeoutMs", "RootPath", });
    internal_static_doris_BinlogConfigPB_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_doris_BinlogConfigPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_BinlogConfigPB_descriptor,
        new java.lang.String[] { "Enable", "TtlSeconds", "MaxBytes", "MaxHistoryNums", });
    internal_static_doris_TabletMetaPB_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_doris_TabletMetaPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_TabletMetaPB_descriptor,
        new java.lang.String[] { "TableId", "PartitionId", "TabletId", "SchemaHash", "ShardId", "CreationTime", "CumulativeLayerPoint", "TabletState", "Schema", "RsMetas", "IncRsMetas", "AlterTask", "InRestoreMode", "TabletUid", "EndRowsetId", "PreferredRowsetType", "TabletType", "StaleRsMetas", "ReplicaId", "DeleteBitmap", "EnableUniqueKeyMergeOnWrite", "StoragePolicyId", "CooldownMetaId", "BinlogConfig", "CompactionPolicy", "TimeSeriesCompactionGoalSizeMbytes", "TimeSeriesCompactionFileCountThreshold", "TimeSeriesCompactionTimeThresholdSeconds", "TimeSeriesCompactionEmptyRowsetsThreshold", "TimeSeriesCompactionLevelThreshold", "IndexId", "IsInMemory", "IsPersistent", "TableName", "TtlSeconds", "SchemaVersion", });
    internal_static_doris_TabletMetaCloudPB_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_doris_TabletMetaCloudPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_TabletMetaCloudPB_descriptor,
        new java.lang.String[] { "TableId", "PartitionId", "TabletId", "SchemaHash", "ShardId", "CreationTime", "CumulativeLayerPoint", "TabletState", "Schema", "RsMetas", "IncRsMetas", "AlterTask", "InRestoreMode", "TabletUid", "EndRowsetId", "PreferredRowsetType", "TabletType", "StaleRsMetas", "ReplicaId", "DeleteBitmap", "EnableUniqueKeyMergeOnWrite", "IndexId", "IsInMemory", "IsPersistent", "StoragePolicyId", "CooldownMetaId", "BinlogConfig", "CompactionPolicy", "TimeSeriesCompactionGoalSizeMbytes", "TimeSeriesCompactionFileCountThreshold", "TimeSeriesCompactionTimeThresholdSeconds", "TimeSeriesCompactionEmptyRowsetsThreshold", "TimeSeriesCompactionLevelThreshold", "TableName", "TtlSeconds", "SchemaVersion", });
    internal_static_doris_OLAPRawDeltaHeaderMessage_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_doris_OLAPRawDeltaHeaderMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_OLAPRawDeltaHeaderMessage_descriptor,
        new java.lang.String[] { "SchemaHash", });
    internal_static_doris_DeleteBitmapPB_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_doris_DeleteBitmapPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_DeleteBitmapPB_descriptor,
        new java.lang.String[] { "RowsetIds", "SegmentIds", "Versions", "SegmentDeleteBitmaps", });
    internal_static_doris_BinlogMetaEntryPB_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_doris_BinlogMetaEntryPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_BinlogMetaEntryPB_descriptor,
        new java.lang.String[] { "Version", "TabletId", "RowsetId", "NumSegments", "CreationTime", "RowsetIdV2", });
    internal_static_doris_PendingPublishInfoPB_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_doris_PendingPublishInfoPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PendingPublishInfoPB_descriptor,
        new java.lang.String[] { "PartitionId", "TransactionId", });
    internal_static_doris_RowsetBinlogMetasPB_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_doris_RowsetBinlogMetasPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_RowsetBinlogMetasPB_descriptor,
        new java.lang.String[] { "RowsetBinlogMetas", });
    internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_descriptor =
      internal_static_doris_RowsetBinlogMetasPB_descriptor.getNestedTypes().get(0);
    internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_RowsetBinlogMetasPB_RowsetBinlogMetaPB_descriptor,
        new java.lang.String[] { "RowsetId", "Version", "NumSegments", "MetaKey", "Meta", "DataKey", "Data", });
    internal_static_doris_PartialUpdateInfoPB_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_doris_PartialUpdateInfoPB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PartialUpdateInfoPB_descriptor,
        new java.lang.String[] { "IsPartialUpdate", "PartialUpdateInputColumns", "MissingCids", "UpdateCids", "CanInsertNewRowsInPartialUpdate", "IsStrictMode", "TimestampMs", "Timezone", "IsInputColumnsContainsAutoIncColumn", "IsSchemaContainsAutoIncColumn", "DefaultValues", "MaxVersionInFlushPhase", "NanoSeconds", "PartialUpdateMode", });
    org.apache.doris.proto.OlapCommon.getDescriptor();
    org.apache.doris.proto.Types.getDescriptor();
    doris.segment_v2.SegmentV2.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}