Descriptors.java

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

package org.apache.doris.proto;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface PSlotDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:doris.PSlotDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int32 id = 1;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <code>required int32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * tuple id which this slot is belong to
     * </pre>
     *
     * <code>required int32 parent = 2;</code>
     * @return Whether the parent field is set.
     */
    boolean hasParent();
    /**
     * <pre>
     * tuple id which this slot is belong to
     * </pre>
     *
     * <code>required int32 parent = 2;</code>
     * @return The parent.
     */
    int getParent();

    /**
     * <code>required .doris.PTypeDesc slot_type = 3;</code>
     * @return Whether the slotType field is set.
     */
    boolean hasSlotType();
    /**
     * <code>required .doris.PTypeDesc slot_type = 3;</code>
     * @return The slotType.
     */
    org.apache.doris.proto.Types.PTypeDesc getSlotType();
    /**
     * <code>required .doris.PTypeDesc slot_type = 3;</code>
     */
    org.apache.doris.proto.Types.PTypeDescOrBuilder getSlotTypeOrBuilder();

    /**
     * <pre>
     * in originating table
     * </pre>
     *
     * <code>required int32 column_pos = 4;</code>
     * @return Whether the columnPos field is set.
     */
    boolean hasColumnPos();
    /**
     * <pre>
     * in originating table
     * </pre>
     *
     * <code>required int32 column_pos = 4;</code>
     * @return The columnPos.
     */
    int getColumnPos();

    /**
     * <pre>
     * // deprecated
     * </pre>
     *
     * <code>required int32 byte_offset = 5;</code>
     * @return Whether the byteOffset field is set.
     */
    boolean hasByteOffset();
    /**
     * <pre>
     * // deprecated
     * </pre>
     *
     * <code>required int32 byte_offset = 5;</code>
     * @return The byteOffset.
     */
    int getByteOffset();

    /**
     * <code>required int32 null_indicator_byte = 6;</code>
     * @return Whether the nullIndicatorByte field is set.
     */
    boolean hasNullIndicatorByte();
    /**
     * <code>required int32 null_indicator_byte = 6;</code>
     * @return The nullIndicatorByte.
     */
    int getNullIndicatorByte();

    /**
     * <code>required int32 null_indicator_bit = 7;</code>
     * @return Whether the nullIndicatorBit field is set.
     */
    boolean hasNullIndicatorBit();
    /**
     * <code>required int32 null_indicator_bit = 7;</code>
     * @return The nullIndicatorBit.
     */
    int getNullIndicatorBit();

    /**
     * <code>required string col_name = 8;</code>
     * @return Whether the colName field is set.
     */
    boolean hasColName();
    /**
     * <code>required string col_name = 8;</code>
     * @return The colName.
     */
    java.lang.String getColName();
    /**
     * <code>required string col_name = 8;</code>
     * @return The bytes for colName.
     */
    com.google.protobuf.ByteString
        getColNameBytes();

    /**
     * <code>required int32 slot_idx = 9;</code>
     * @return Whether the slotIdx field is set.
     */
    boolean hasSlotIdx();
    /**
     * <code>required int32 slot_idx = 9;</code>
     * @return The slotIdx.
     */
    int getSlotIdx();

    /**
     * <code>optional bool is_materialized = 10;</code>
     * @return Whether the isMaterialized field is set.
     */
    boolean hasIsMaterialized();
    /**
     * <code>optional bool is_materialized = 10;</code>
     * @return The isMaterialized.
     */
    boolean getIsMaterialized();

    /**
     * <code>optional int32 col_unique_id = 11;</code>
     * @return Whether the colUniqueId field is set.
     */
    boolean hasColUniqueId();
    /**
     * <code>optional int32 col_unique_id = 11;</code>
     * @return The colUniqueId.
     */
    int getColUniqueId();

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

    /**
     * <code>optional bool is_auto_increment = 13;</code>
     * @return Whether the isAutoIncrement field is set.
     */
    boolean hasIsAutoIncrement();
    /**
     * <code>optional bool is_auto_increment = 13;</code>
     * @return The isAutoIncrement.
     */
    boolean getIsAutoIncrement();

    /**
     * <code>optional int32 col_type = 14 [default = 0];</code>
     * @return Whether the colType field is set.
     */
    boolean hasColType();
    /**
     * <code>optional int32 col_type = 14 [default = 0];</code>
     * @return The colType.
     */
    int getColType();

    /**
     * <code>repeated string column_paths = 15;</code>
     * @return A list containing the columnPaths.
     */
    java.util.List<java.lang.String>
        getColumnPathsList();
    /**
     * <code>repeated string column_paths = 15;</code>
     * @return The count of columnPaths.
     */
    int getColumnPathsCount();
    /**
     * <code>repeated string column_paths = 15;</code>
     * @param index The index of the element to return.
     * @return The columnPaths at the given index.
     */
    java.lang.String getColumnPaths(int index);
    /**
     * <code>repeated string column_paths = 15;</code>
     * @param index The index of the value to return.
     * @return The bytes of the columnPaths at the given index.
     */
    com.google.protobuf.ByteString
        getColumnPathsBytes(int index);
  }
  /**
   * Protobuf type {@code doris.PSlotDescriptor}
   */
  public static final class PSlotDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PSlotDescriptor)
      PSlotDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PSlotDescriptor.newBuilder() to construct.
    private PSlotDescriptor(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PSlotDescriptor() {
      colName_ = "";
      columnPaths_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

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

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

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

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <code>required int32 id = 1;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int PARENT_FIELD_NUMBER = 2;
    private int parent_ = 0;
    /**
     * <pre>
     * tuple id which this slot is belong to
     * </pre>
     *
     * <code>required int32 parent = 2;</code>
     * @return Whether the parent field is set.
     */
    @java.lang.Override
    public boolean hasParent() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * tuple id which this slot is belong to
     * </pre>
     *
     * <code>required int32 parent = 2;</code>
     * @return The parent.
     */
    @java.lang.Override
    public int getParent() {
      return parent_;
    }

    public static final int SLOT_TYPE_FIELD_NUMBER = 3;
    private org.apache.doris.proto.Types.PTypeDesc slotType_;
    /**
     * <code>required .doris.PTypeDesc slot_type = 3;</code>
     * @return Whether the slotType field is set.
     */
    @java.lang.Override
    public boolean hasSlotType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .doris.PTypeDesc slot_type = 3;</code>
     * @return The slotType.
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PTypeDesc getSlotType() {
      return slotType_ == null ? org.apache.doris.proto.Types.PTypeDesc.getDefaultInstance() : slotType_;
    }
    /**
     * <code>required .doris.PTypeDesc slot_type = 3;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Types.PTypeDescOrBuilder getSlotTypeOrBuilder() {
      return slotType_ == null ? org.apache.doris.proto.Types.PTypeDesc.getDefaultInstance() : slotType_;
    }

    public static final int COLUMN_POS_FIELD_NUMBER = 4;
    private int columnPos_ = 0;
    /**
     * <pre>
     * in originating table
     * </pre>
     *
     * <code>required int32 column_pos = 4;</code>
     * @return Whether the columnPos field is set.
     */
    @java.lang.Override
    public boolean hasColumnPos() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * in originating table
     * </pre>
     *
     * <code>required int32 column_pos = 4;</code>
     * @return The columnPos.
     */
    @java.lang.Override
    public int getColumnPos() {
      return columnPos_;
    }

    public static final int BYTE_OFFSET_FIELD_NUMBER = 5;
    private int byteOffset_ = 0;
    /**
     * <pre>
     * // deprecated
     * </pre>
     *
     * <code>required int32 byte_offset = 5;</code>
     * @return Whether the byteOffset field is set.
     */
    @java.lang.Override
    public boolean hasByteOffset() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * // deprecated
     * </pre>
     *
     * <code>required int32 byte_offset = 5;</code>
     * @return The byteOffset.
     */
    @java.lang.Override
    public int getByteOffset() {
      return byteOffset_;
    }

    public static final int NULL_INDICATOR_BYTE_FIELD_NUMBER = 6;
    private int nullIndicatorByte_ = 0;
    /**
     * <code>required int32 null_indicator_byte = 6;</code>
     * @return Whether the nullIndicatorByte field is set.
     */
    @java.lang.Override
    public boolean hasNullIndicatorByte() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>required int32 null_indicator_byte = 6;</code>
     * @return The nullIndicatorByte.
     */
    @java.lang.Override
    public int getNullIndicatorByte() {
      return nullIndicatorByte_;
    }

    public static final int NULL_INDICATOR_BIT_FIELD_NUMBER = 7;
    private int nullIndicatorBit_ = 0;
    /**
     * <code>required int32 null_indicator_bit = 7;</code>
     * @return Whether the nullIndicatorBit field is set.
     */
    @java.lang.Override
    public boolean hasNullIndicatorBit() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>required int32 null_indicator_bit = 7;</code>
     * @return The nullIndicatorBit.
     */
    @java.lang.Override
    public int getNullIndicatorBit() {
      return nullIndicatorBit_;
    }

    public static final int COL_NAME_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object colName_ = "";
    /**
     * <code>required string col_name = 8;</code>
     * @return Whether the colName field is set.
     */
    @java.lang.Override
    public boolean hasColName() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>required string col_name = 8;</code>
     * @return The colName.
     */
    @java.lang.Override
    public java.lang.String getColName() {
      java.lang.Object ref = colName_;
      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()) {
          colName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string col_name = 8;</code>
     * @return The bytes for colName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColNameBytes() {
      java.lang.Object ref = colName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        colName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SLOT_IDX_FIELD_NUMBER = 9;
    private int slotIdx_ = 0;
    /**
     * <code>required int32 slot_idx = 9;</code>
     * @return Whether the slotIdx field is set.
     */
    @java.lang.Override
    public boolean hasSlotIdx() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>required int32 slot_idx = 9;</code>
     * @return The slotIdx.
     */
    @java.lang.Override
    public int getSlotIdx() {
      return slotIdx_;
    }

    public static final int IS_MATERIALIZED_FIELD_NUMBER = 10;
    private boolean isMaterialized_ = false;
    /**
     * <code>optional bool is_materialized = 10;</code>
     * @return Whether the isMaterialized field is set.
     */
    @java.lang.Override
    public boolean hasIsMaterialized() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional bool is_materialized = 10;</code>
     * @return The isMaterialized.
     */
    @java.lang.Override
    public boolean getIsMaterialized() {
      return isMaterialized_;
    }

    public static final int COL_UNIQUE_ID_FIELD_NUMBER = 11;
    private int colUniqueId_ = 0;
    /**
     * <code>optional int32 col_unique_id = 11;</code>
     * @return Whether the colUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasColUniqueId() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional int32 col_unique_id = 11;</code>
     * @return The colUniqueId.
     */
    @java.lang.Override
    public int getColUniqueId() {
      return colUniqueId_;
    }

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

    public static final int IS_AUTO_INCREMENT_FIELD_NUMBER = 13;
    private boolean isAutoIncrement_ = false;
    /**
     * <code>optional bool is_auto_increment = 13;</code>
     * @return Whether the isAutoIncrement field is set.
     */
    @java.lang.Override
    public boolean hasIsAutoIncrement() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional bool is_auto_increment = 13;</code>
     * @return The isAutoIncrement.
     */
    @java.lang.Override
    public boolean getIsAutoIncrement() {
      return isAutoIncrement_;
    }

    public static final int COL_TYPE_FIELD_NUMBER = 14;
    private int colType_ = 0;
    /**
     * <code>optional int32 col_type = 14 [default = 0];</code>
     * @return Whether the colType field is set.
     */
    @java.lang.Override
    public boolean hasColType() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional int32 col_type = 14 [default = 0];</code>
     * @return The colType.
     */
    @java.lang.Override
    public int getColType() {
      return colType_;
    }

    public static final int COLUMN_PATHS_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList columnPaths_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string column_paths = 15;</code>
     * @return A list containing the columnPaths.
     */
    public com.google.protobuf.ProtocolStringList
        getColumnPathsList() {
      return columnPaths_;
    }
    /**
     * <code>repeated string column_paths = 15;</code>
     * @return The count of columnPaths.
     */
    public int getColumnPathsCount() {
      return columnPaths_.size();
    }
    /**
     * <code>repeated string column_paths = 15;</code>
     * @param index The index of the element to return.
     * @return The columnPaths at the given index.
     */
    public java.lang.String getColumnPaths(int index) {
      return columnPaths_.get(index);
    }
    /**
     * <code>repeated string column_paths = 15;</code>
     * @param index The index of the value to return.
     * @return The bytes of the columnPaths at the given index.
     */
    public com.google.protobuf.ByteString
        getColumnPathsBytes(int index) {
      return columnPaths_.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;

      if (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasParent()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSlotType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasColumnPos()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasByteOffset()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNullIndicatorByte()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNullIndicatorBit()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasColName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSlotIdx()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getSlotType().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, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, parent_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getSlotType());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, columnPos_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, byteOffset_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt32(6, nullIndicatorByte_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(7, nullIndicatorBit_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, colName_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(9, slotIdx_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeBool(10, isMaterialized_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeInt32(11, colUniqueId_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeBool(12, isKey_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeBool(13, isAutoIncrement_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeInt32(14, colType_);
      }
      for (int i = 0; i < columnPaths_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, columnPaths_.getRaw(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, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, parent_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getSlotType());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, columnPos_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, byteOffset_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, nullIndicatorByte_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, nullIndicatorBit_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, colName_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, slotIdx_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, isMaterialized_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(11, colUniqueId_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, isKey_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, isAutoIncrement_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, colType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < columnPaths_.size(); i++) {
          dataSize += computeStringSizeNoTag(columnPaths_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getColumnPathsList().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.Descriptors.PSlotDescriptor)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.Descriptors.PSlotDescriptor other = (org.apache.doris.proto.Descriptors.PSlotDescriptor) obj;

      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (getId()
            != other.getId()) return false;
      }
      if (hasParent() != other.hasParent()) return false;
      if (hasParent()) {
        if (getParent()
            != other.getParent()) return false;
      }
      if (hasSlotType() != other.hasSlotType()) return false;
      if (hasSlotType()) {
        if (!getSlotType()
            .equals(other.getSlotType())) return false;
      }
      if (hasColumnPos() != other.hasColumnPos()) return false;
      if (hasColumnPos()) {
        if (getColumnPos()
            != other.getColumnPos()) return false;
      }
      if (hasByteOffset() != other.hasByteOffset()) return false;
      if (hasByteOffset()) {
        if (getByteOffset()
            != other.getByteOffset()) return false;
      }
      if (hasNullIndicatorByte() != other.hasNullIndicatorByte()) return false;
      if (hasNullIndicatorByte()) {
        if (getNullIndicatorByte()
            != other.getNullIndicatorByte()) return false;
      }
      if (hasNullIndicatorBit() != other.hasNullIndicatorBit()) return false;
      if (hasNullIndicatorBit()) {
        if (getNullIndicatorBit()
            != other.getNullIndicatorBit()) return false;
      }
      if (hasColName() != other.hasColName()) return false;
      if (hasColName()) {
        if (!getColName()
            .equals(other.getColName())) return false;
      }
      if (hasSlotIdx() != other.hasSlotIdx()) return false;
      if (hasSlotIdx()) {
        if (getSlotIdx()
            != other.getSlotIdx()) return false;
      }
      if (hasIsMaterialized() != other.hasIsMaterialized()) return false;
      if (hasIsMaterialized()) {
        if (getIsMaterialized()
            != other.getIsMaterialized()) return false;
      }
      if (hasColUniqueId() != other.hasColUniqueId()) return false;
      if (hasColUniqueId()) {
        if (getColUniqueId()
            != other.getColUniqueId()) return false;
      }
      if (hasIsKey() != other.hasIsKey()) return false;
      if (hasIsKey()) {
        if (getIsKey()
            != other.getIsKey()) return false;
      }
      if (hasIsAutoIncrement() != other.hasIsAutoIncrement()) return false;
      if (hasIsAutoIncrement()) {
        if (getIsAutoIncrement()
            != other.getIsAutoIncrement()) return false;
      }
      if (hasColType() != other.hasColType()) return false;
      if (hasColType()) {
        if (getColType()
            != other.getColType()) return false;
      }
      if (!getColumnPathsList()
          .equals(other.getColumnPathsList())) 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 (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId();
      }
      if (hasParent()) {
        hash = (37 * hash) + PARENT_FIELD_NUMBER;
        hash = (53 * hash) + getParent();
      }
      if (hasSlotType()) {
        hash = (37 * hash) + SLOT_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getSlotType().hashCode();
      }
      if (hasColumnPos()) {
        hash = (37 * hash) + COLUMN_POS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnPos();
      }
      if (hasByteOffset()) {
        hash = (37 * hash) + BYTE_OFFSET_FIELD_NUMBER;
        hash = (53 * hash) + getByteOffset();
      }
      if (hasNullIndicatorByte()) {
        hash = (37 * hash) + NULL_INDICATOR_BYTE_FIELD_NUMBER;
        hash = (53 * hash) + getNullIndicatorByte();
      }
      if (hasNullIndicatorBit()) {
        hash = (37 * hash) + NULL_INDICATOR_BIT_FIELD_NUMBER;
        hash = (53 * hash) + getNullIndicatorBit();
      }
      if (hasColName()) {
        hash = (37 * hash) + COL_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getColName().hashCode();
      }
      if (hasSlotIdx()) {
        hash = (37 * hash) + SLOT_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getSlotIdx();
      }
      if (hasIsMaterialized()) {
        hash = (37 * hash) + IS_MATERIALIZED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsMaterialized());
      }
      if (hasColUniqueId()) {
        hash = (37 * hash) + COL_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getColUniqueId();
      }
      if (hasIsKey()) {
        hash = (37 * hash) + IS_KEY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsKey());
      }
      if (hasIsAutoIncrement()) {
        hash = (37 * hash) + IS_AUTO_INCREMENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsAutoIncrement());
      }
      if (hasColType()) {
        hash = (37 * hash) + COL_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getColType();
      }
      if (getColumnPathsCount() > 0) {
        hash = (37 * hash) + COLUMN_PATHS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnPathsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSlotTypeFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0;
        parent_ = 0;
        slotType_ = null;
        if (slotTypeBuilder_ != null) {
          slotTypeBuilder_.dispose();
          slotTypeBuilder_ = null;
        }
        columnPos_ = 0;
        byteOffset_ = 0;
        nullIndicatorByte_ = 0;
        nullIndicatorBit_ = 0;
        colName_ = "";
        slotIdx_ = 0;
        isMaterialized_ = false;
        colUniqueId_ = 0;
        isKey_ = false;
        isAutoIncrement_ = false;
        colType_ = 0;
        columnPaths_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.Descriptors.PSlotDescriptor result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.parent_ = parent_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.slotType_ = slotTypeBuilder_ == null
              ? slotType_
              : slotTypeBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.columnPos_ = columnPos_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.byteOffset_ = byteOffset_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.nullIndicatorByte_ = nullIndicatorByte_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.nullIndicatorBit_ = nullIndicatorBit_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.colName_ = colName_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.slotIdx_ = slotIdx_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.isMaterialized_ = isMaterialized_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.colUniqueId_ = colUniqueId_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.isKey_ = isKey_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.isAutoIncrement_ = isAutoIncrement_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.colType_ = colType_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          columnPaths_.makeImmutable();
          result.columnPaths_ = columnPaths_;
        }
        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.Descriptors.PSlotDescriptor) {
          return mergeFrom((org.apache.doris.proto.Descriptors.PSlotDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.Descriptors.PSlotDescriptor other) {
        if (other == org.apache.doris.proto.Descriptors.PSlotDescriptor.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasParent()) {
          setParent(other.getParent());
        }
        if (other.hasSlotType()) {
          mergeSlotType(other.getSlotType());
        }
        if (other.hasColumnPos()) {
          setColumnPos(other.getColumnPos());
        }
        if (other.hasByteOffset()) {
          setByteOffset(other.getByteOffset());
        }
        if (other.hasNullIndicatorByte()) {
          setNullIndicatorByte(other.getNullIndicatorByte());
        }
        if (other.hasNullIndicatorBit()) {
          setNullIndicatorBit(other.getNullIndicatorBit());
        }
        if (other.hasColName()) {
          colName_ = other.colName_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (other.hasSlotIdx()) {
          setSlotIdx(other.getSlotIdx());
        }
        if (other.hasIsMaterialized()) {
          setIsMaterialized(other.getIsMaterialized());
        }
        if (other.hasColUniqueId()) {
          setColUniqueId(other.getColUniqueId());
        }
        if (other.hasIsKey()) {
          setIsKey(other.getIsKey());
        }
        if (other.hasIsAutoIncrement()) {
          setIsAutoIncrement(other.getIsAutoIncrement());
        }
        if (other.hasColType()) {
          setColType(other.getColType());
        }
        if (!other.columnPaths_.isEmpty()) {
          if (columnPaths_.isEmpty()) {
            columnPaths_ = other.columnPaths_;
            bitField0_ |= 0x00004000;
          } else {
            ensureColumnPathsIsMutable();
            columnPaths_.addAll(other.columnPaths_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasId()) {
          return false;
        }
        if (!hasParent()) {
          return false;
        }
        if (!hasSlotType()) {
          return false;
        }
        if (!hasColumnPos()) {
          return false;
        }
        if (!hasByteOffset()) {
          return false;
        }
        if (!hasNullIndicatorByte()) {
          return false;
        }
        if (!hasNullIndicatorBit()) {
          return false;
        }
        if (!hasColName()) {
          return false;
        }
        if (!hasSlotIdx()) {
          return false;
        }
        if (!getSlotType().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: {
                id_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                parent_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getSlotTypeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                columnPos_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                byteOffset_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                nullIndicatorByte_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                nullIndicatorBit_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 66: {
                colName_ = input.readBytes();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 72: {
                slotIdx_ = input.readInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                isMaterialized_ = input.readBool();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                colUniqueId_ = input.readInt32();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                isKey_ = input.readBool();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                isAutoIncrement_ = input.readBool();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                colType_ = input.readInt32();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 122: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureColumnPathsIsMutable();
                columnPaths_.add(bs);
                break;
              } // case 122
              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 id_ ;
      /**
       * <code>required int32 id = 1;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <code>required int32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      private int parent_ ;
      /**
       * <pre>
       * tuple id which this slot is belong to
       * </pre>
       *
       * <code>required int32 parent = 2;</code>
       * @return Whether the parent field is set.
       */
      @java.lang.Override
      public boolean hasParent() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * tuple id which this slot is belong to
       * </pre>
       *
       * <code>required int32 parent = 2;</code>
       * @return The parent.
       */
      @java.lang.Override
      public int getParent() {
        return parent_;
      }
      /**
       * <pre>
       * tuple id which this slot is belong to
       * </pre>
       *
       * <code>required int32 parent = 2;</code>
       * @param value The parent to set.
       * @return This builder for chaining.
       */
      public Builder setParent(int value) {

        parent_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * tuple id which this slot is belong to
       * </pre>
       *
       * <code>required int32 parent = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearParent() {
        bitField0_ = (bitField0_ & ~0x00000002);
        parent_ = 0;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Types.PTypeDesc slotType_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PTypeDesc, org.apache.doris.proto.Types.PTypeDesc.Builder, org.apache.doris.proto.Types.PTypeDescOrBuilder> slotTypeBuilder_;
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       * @return Whether the slotType field is set.
       */
      public boolean hasSlotType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       * @return The slotType.
       */
      public org.apache.doris.proto.Types.PTypeDesc getSlotType() {
        if (slotTypeBuilder_ == null) {
          return slotType_ == null ? org.apache.doris.proto.Types.PTypeDesc.getDefaultInstance() : slotType_;
        } else {
          return slotTypeBuilder_.getMessage();
        }
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       */
      public Builder setSlotType(org.apache.doris.proto.Types.PTypeDesc value) {
        if (slotTypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          slotType_ = value;
        } else {
          slotTypeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       */
      public Builder setSlotType(
          org.apache.doris.proto.Types.PTypeDesc.Builder builderForValue) {
        if (slotTypeBuilder_ == null) {
          slotType_ = builderForValue.build();
        } else {
          slotTypeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       */
      public Builder mergeSlotType(org.apache.doris.proto.Types.PTypeDesc value) {
        if (slotTypeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            slotType_ != null &&
            slotType_ != org.apache.doris.proto.Types.PTypeDesc.getDefaultInstance()) {
            getSlotTypeBuilder().mergeFrom(value);
          } else {
            slotType_ = value;
          }
        } else {
          slotTypeBuilder_.mergeFrom(value);
        }
        if (slotType_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       */
      public Builder clearSlotType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        slotType_ = null;
        if (slotTypeBuilder_ != null) {
          slotTypeBuilder_.dispose();
          slotTypeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       */
      public org.apache.doris.proto.Types.PTypeDesc.Builder getSlotTypeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSlotTypeFieldBuilder().getBuilder();
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       */
      public org.apache.doris.proto.Types.PTypeDescOrBuilder getSlotTypeOrBuilder() {
        if (slotTypeBuilder_ != null) {
          return slotTypeBuilder_.getMessageOrBuilder();
        } else {
          return slotType_ == null ?
              org.apache.doris.proto.Types.PTypeDesc.getDefaultInstance() : slotType_;
        }
      }
      /**
       * <code>required .doris.PTypeDesc slot_type = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Types.PTypeDesc, org.apache.doris.proto.Types.PTypeDesc.Builder, org.apache.doris.proto.Types.PTypeDescOrBuilder> 
          getSlotTypeFieldBuilder() {
        if (slotTypeBuilder_ == null) {
          slotTypeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Types.PTypeDesc, org.apache.doris.proto.Types.PTypeDesc.Builder, org.apache.doris.proto.Types.PTypeDescOrBuilder>(
                  getSlotType(),
                  getParentForChildren(),
                  isClean());
          slotType_ = null;
        }
        return slotTypeBuilder_;
      }

      private int columnPos_ ;
      /**
       * <pre>
       * in originating table
       * </pre>
       *
       * <code>required int32 column_pos = 4;</code>
       * @return Whether the columnPos field is set.
       */
      @java.lang.Override
      public boolean hasColumnPos() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * in originating table
       * </pre>
       *
       * <code>required int32 column_pos = 4;</code>
       * @return The columnPos.
       */
      @java.lang.Override
      public int getColumnPos() {
        return columnPos_;
      }
      /**
       * <pre>
       * in originating table
       * </pre>
       *
       * <code>required int32 column_pos = 4;</code>
       * @param value The columnPos to set.
       * @return This builder for chaining.
       */
      public Builder setColumnPos(int value) {

        columnPos_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * in originating table
       * </pre>
       *
       * <code>required int32 column_pos = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnPos() {
        bitField0_ = (bitField0_ & ~0x00000008);
        columnPos_ = 0;
        onChanged();
        return this;
      }

      private int byteOffset_ ;
      /**
       * <pre>
       * // deprecated
       * </pre>
       *
       * <code>required int32 byte_offset = 5;</code>
       * @return Whether the byteOffset field is set.
       */
      @java.lang.Override
      public boolean hasByteOffset() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * // deprecated
       * </pre>
       *
       * <code>required int32 byte_offset = 5;</code>
       * @return The byteOffset.
       */
      @java.lang.Override
      public int getByteOffset() {
        return byteOffset_;
      }
      /**
       * <pre>
       * // deprecated
       * </pre>
       *
       * <code>required int32 byte_offset = 5;</code>
       * @param value The byteOffset to set.
       * @return This builder for chaining.
       */
      public Builder setByteOffset(int value) {

        byteOffset_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * // deprecated
       * </pre>
       *
       * <code>required int32 byte_offset = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearByteOffset() {
        bitField0_ = (bitField0_ & ~0x00000010);
        byteOffset_ = 0;
        onChanged();
        return this;
      }

      private int nullIndicatorByte_ ;
      /**
       * <code>required int32 null_indicator_byte = 6;</code>
       * @return Whether the nullIndicatorByte field is set.
       */
      @java.lang.Override
      public boolean hasNullIndicatorByte() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required int32 null_indicator_byte = 6;</code>
       * @return The nullIndicatorByte.
       */
      @java.lang.Override
      public int getNullIndicatorByte() {
        return nullIndicatorByte_;
      }
      /**
       * <code>required int32 null_indicator_byte = 6;</code>
       * @param value The nullIndicatorByte to set.
       * @return This builder for chaining.
       */
      public Builder setNullIndicatorByte(int value) {

        nullIndicatorByte_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 null_indicator_byte = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearNullIndicatorByte() {
        bitField0_ = (bitField0_ & ~0x00000020);
        nullIndicatorByte_ = 0;
        onChanged();
        return this;
      }

      private int nullIndicatorBit_ ;
      /**
       * <code>required int32 null_indicator_bit = 7;</code>
       * @return Whether the nullIndicatorBit field is set.
       */
      @java.lang.Override
      public boolean hasNullIndicatorBit() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>required int32 null_indicator_bit = 7;</code>
       * @return The nullIndicatorBit.
       */
      @java.lang.Override
      public int getNullIndicatorBit() {
        return nullIndicatorBit_;
      }
      /**
       * <code>required int32 null_indicator_bit = 7;</code>
       * @param value The nullIndicatorBit to set.
       * @return This builder for chaining.
       */
      public Builder setNullIndicatorBit(int value) {

        nullIndicatorBit_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 null_indicator_bit = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearNullIndicatorBit() {
        bitField0_ = (bitField0_ & ~0x00000040);
        nullIndicatorBit_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object colName_ = "";
      /**
       * <code>required string col_name = 8;</code>
       * @return Whether the colName field is set.
       */
      public boolean hasColName() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>required string col_name = 8;</code>
       * @return The colName.
       */
      public java.lang.String getColName() {
        java.lang.Object ref = colName_;
        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()) {
            colName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string col_name = 8;</code>
       * @return The bytes for colName.
       */
      public com.google.protobuf.ByteString
          getColNameBytes() {
        java.lang.Object ref = colName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          colName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string col_name = 8;</code>
       * @param value The colName to set.
       * @return This builder for chaining.
       */
      public Builder setColName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        colName_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>required string col_name = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearColName() {
        colName_ = getDefaultInstance().getColName();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>required string col_name = 8;</code>
       * @param value The bytes for colName to set.
       * @return This builder for chaining.
       */
      public Builder setColNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        colName_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private int slotIdx_ ;
      /**
       * <code>required int32 slot_idx = 9;</code>
       * @return Whether the slotIdx field is set.
       */
      @java.lang.Override
      public boolean hasSlotIdx() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>required int32 slot_idx = 9;</code>
       * @return The slotIdx.
       */
      @java.lang.Override
      public int getSlotIdx() {
        return slotIdx_;
      }
      /**
       * <code>required int32 slot_idx = 9;</code>
       * @param value The slotIdx to set.
       * @return This builder for chaining.
       */
      public Builder setSlotIdx(int value) {

        slotIdx_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 slot_idx = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlotIdx() {
        bitField0_ = (bitField0_ & ~0x00000100);
        slotIdx_ = 0;
        onChanged();
        return this;
      }

      private boolean isMaterialized_ ;
      /**
       * <code>optional bool is_materialized = 10;</code>
       * @return Whether the isMaterialized field is set.
       */
      @java.lang.Override
      public boolean hasIsMaterialized() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional bool is_materialized = 10;</code>
       * @return The isMaterialized.
       */
      @java.lang.Override
      public boolean getIsMaterialized() {
        return isMaterialized_;
      }
      /**
       * <code>optional bool is_materialized = 10;</code>
       * @param value The isMaterialized to set.
       * @return This builder for chaining.
       */
      public Builder setIsMaterialized(boolean value) {

        isMaterialized_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_materialized = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsMaterialized() {
        bitField0_ = (bitField0_ & ~0x00000200);
        isMaterialized_ = false;
        onChanged();
        return this;
      }

      private int colUniqueId_ ;
      /**
       * <code>optional int32 col_unique_id = 11;</code>
       * @return Whether the colUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasColUniqueId() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional int32 col_unique_id = 11;</code>
       * @return The colUniqueId.
       */
      @java.lang.Override
      public int getColUniqueId() {
        return colUniqueId_;
      }
      /**
       * <code>optional int32 col_unique_id = 11;</code>
       * @param value The colUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setColUniqueId(int value) {

        colUniqueId_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 col_unique_id = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearColUniqueId() {
        bitField0_ = (bitField0_ & ~0x00000400);
        colUniqueId_ = 0;
        onChanged();
        return this;
      }

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

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

      private boolean isAutoIncrement_ ;
      /**
       * <code>optional bool is_auto_increment = 13;</code>
       * @return Whether the isAutoIncrement field is set.
       */
      @java.lang.Override
      public boolean hasIsAutoIncrement() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional bool is_auto_increment = 13;</code>
       * @return The isAutoIncrement.
       */
      @java.lang.Override
      public boolean getIsAutoIncrement() {
        return isAutoIncrement_;
      }
      /**
       * <code>optional bool is_auto_increment = 13;</code>
       * @param value The isAutoIncrement to set.
       * @return This builder for chaining.
       */
      public Builder setIsAutoIncrement(boolean value) {

        isAutoIncrement_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_auto_increment = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsAutoIncrement() {
        bitField0_ = (bitField0_ & ~0x00001000);
        isAutoIncrement_ = false;
        onChanged();
        return this;
      }

      private int colType_ ;
      /**
       * <code>optional int32 col_type = 14 [default = 0];</code>
       * @return Whether the colType field is set.
       */
      @java.lang.Override
      public boolean hasColType() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional int32 col_type = 14 [default = 0];</code>
       * @return The colType.
       */
      @java.lang.Override
      public int getColType() {
        return colType_;
      }
      /**
       * <code>optional int32 col_type = 14 [default = 0];</code>
       * @param value The colType to set.
       * @return This builder for chaining.
       */
      public Builder setColType(int value) {

        colType_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 col_type = 14 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearColType() {
        bitField0_ = (bitField0_ & ~0x00002000);
        colType_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList columnPaths_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureColumnPathsIsMutable() {
        if (!columnPaths_.isModifiable()) {
          columnPaths_ = new com.google.protobuf.LazyStringArrayList(columnPaths_);
        }
        bitField0_ |= 0x00004000;
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @return A list containing the columnPaths.
       */
      public com.google.protobuf.ProtocolStringList
          getColumnPathsList() {
        columnPaths_.makeImmutable();
        return columnPaths_;
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @return The count of columnPaths.
       */
      public int getColumnPathsCount() {
        return columnPaths_.size();
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @param index The index of the element to return.
       * @return The columnPaths at the given index.
       */
      public java.lang.String getColumnPaths(int index) {
        return columnPaths_.get(index);
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @param index The index of the value to return.
       * @return The bytes of the columnPaths at the given index.
       */
      public com.google.protobuf.ByteString
          getColumnPathsBytes(int index) {
        return columnPaths_.getByteString(index);
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @param index The index to set the value at.
       * @param value The columnPaths to set.
       * @return This builder for chaining.
       */
      public Builder setColumnPaths(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnPathsIsMutable();
        columnPaths_.set(index, value);
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @param value The columnPaths to add.
       * @return This builder for chaining.
       */
      public Builder addColumnPaths(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnPathsIsMutable();
        columnPaths_.add(value);
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @param values The columnPaths to add.
       * @return This builder for chaining.
       */
      public Builder addAllColumnPaths(
          java.lang.Iterable<java.lang.String> values) {
        ensureColumnPathsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, columnPaths_);
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnPaths() {
        columnPaths_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00004000);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string column_paths = 15;</code>
       * @param value The bytes of the columnPaths to add.
       * @return This builder for chaining.
       */
      public Builder addColumnPathsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnPathsIsMutable();
        columnPaths_.add(value);
        bitField0_ |= 0x00004000;
        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.PSlotDescriptor)
    }

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

    public static org.apache.doris.proto.Descriptors.PSlotDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

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

    /**
     * <code>required int32 id = 1;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <code>required int32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 byte_size = 2;</code>
     * @return Whether the byteSize field is set.
     */
    boolean hasByteSize();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 byte_size = 2;</code>
     * @return The byteSize.
     */
    int getByteSize();

    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 num_null_bytes = 3;</code>
     * @return Whether the numNullBytes field is set.
     */
    boolean hasNumNullBytes();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 num_null_bytes = 3;</code>
     * @return The numNullBytes.
     */
    int getNumNullBytes();

    /**
     * <code>optional int64 table_id = 4;</code>
     * @return Whether the tableId field is set.
     */
    boolean hasTableId();
    /**
     * <code>optional int64 table_id = 4;</code>
     * @return The tableId.
     */
    long getTableId();

    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 num_null_slots = 5;</code>
     * @return Whether the numNullSlots field is set.
     */
    boolean hasNumNullSlots();
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 num_null_slots = 5;</code>
     * @return The numNullSlots.
     */
    int getNumNullSlots();
  }
  /**
   * Protobuf type {@code doris.PTupleDescriptor}
   */
  public static final class PTupleDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PTupleDescriptor)
      PTupleDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PTupleDescriptor.newBuilder() to construct.
    private PTupleDescriptor(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PTupleDescriptor() {
    }

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

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

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

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <code>required int32 id = 1;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int BYTE_SIZE_FIELD_NUMBER = 2;
    private int byteSize_ = 0;
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 byte_size = 2;</code>
     * @return Whether the byteSize field is set.
     */
    @java.lang.Override
    public boolean hasByteSize() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 byte_size = 2;</code>
     * @return The byteSize.
     */
    @java.lang.Override
    public int getByteSize() {
      return byteSize_;
    }

    public static final int NUM_NULL_BYTES_FIELD_NUMBER = 3;
    private int numNullBytes_ = 0;
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 num_null_bytes = 3;</code>
     * @return Whether the numNullBytes field is set.
     */
    @java.lang.Override
    public boolean hasNumNullBytes() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>required int32 num_null_bytes = 3;</code>
     * @return The numNullBytes.
     */
    @java.lang.Override
    public int getNumNullBytes() {
      return numNullBytes_;
    }

    public static final int TABLE_ID_FIELD_NUMBER = 4;
    private long tableId_ = 0L;
    /**
     * <code>optional int64 table_id = 4;</code>
     * @return Whether the tableId field is set.
     */
    @java.lang.Override
    public boolean hasTableId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int64 table_id = 4;</code>
     * @return The tableId.
     */
    @java.lang.Override
    public long getTableId() {
      return tableId_;
    }

    public static final int NUM_NULL_SLOTS_FIELD_NUMBER = 5;
    private int numNullSlots_ = 0;
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 num_null_slots = 5;</code>
     * @return Whether the numNullSlots field is set.
     */
    @java.lang.Override
    public boolean hasNumNullSlots() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * deprecated
     * </pre>
     *
     * <code>optional int32 num_null_slots = 5;</code>
     * @return The numNullSlots.
     */
    @java.lang.Override
    public int getNumNullSlots() {
      return numNullSlots_;
    }

    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 (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasByteSize()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumNullBytes()) {
        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, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, byteSize_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(3, numNullBytes_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(4, tableId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, numNullSlots_);
      }
      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, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, byteSize_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, numNullBytes_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, tableId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, numNullSlots_);
      }
      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.Descriptors.PTupleDescriptor)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.Descriptors.PTupleDescriptor other = (org.apache.doris.proto.Descriptors.PTupleDescriptor) obj;

      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (getId()
            != other.getId()) return false;
      }
      if (hasByteSize() != other.hasByteSize()) return false;
      if (hasByteSize()) {
        if (getByteSize()
            != other.getByteSize()) return false;
      }
      if (hasNumNullBytes() != other.hasNumNullBytes()) return false;
      if (hasNumNullBytes()) {
        if (getNumNullBytes()
            != other.getNumNullBytes()) return false;
      }
      if (hasTableId() != other.hasTableId()) return false;
      if (hasTableId()) {
        if (getTableId()
            != other.getTableId()) return false;
      }
      if (hasNumNullSlots() != other.hasNumNullSlots()) return false;
      if (hasNumNullSlots()) {
        if (getNumNullSlots()
            != other.getNumNullSlots()) 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 (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId();
      }
      if (hasByteSize()) {
        hash = (37 * hash) + BYTE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + getByteSize();
      }
      if (hasNumNullBytes()) {
        hash = (37 * hash) + NUM_NULL_BYTES_FIELD_NUMBER;
        hash = (53 * hash) + getNumNullBytes();
      }
      if (hasTableId()) {
        hash = (37 * hash) + TABLE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTableId());
      }
      if (hasNumNullSlots()) {
        hash = (37 * hash) + NUM_NULL_SLOTS_FIELD_NUMBER;
        hash = (53 * hash) + getNumNullSlots();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

      // Construct using org.apache.doris.proto.Descriptors.PTupleDescriptor.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0;
        byteSize_ = 0;
        numNullBytes_ = 0;
        tableId_ = 0L;
        numNullSlots_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.Descriptors.PTupleDescriptor result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.byteSize_ = byteSize_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.numNullBytes_ = numNullBytes_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.tableId_ = tableId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.numNullSlots_ = numNullSlots_;
          to_bitField0_ |= 0x00000010;
        }
        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.Descriptors.PTupleDescriptor) {
          return mergeFrom((org.apache.doris.proto.Descriptors.PTupleDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.Descriptors.PTupleDescriptor other) {
        if (other == org.apache.doris.proto.Descriptors.PTupleDescriptor.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasByteSize()) {
          setByteSize(other.getByteSize());
        }
        if (other.hasNumNullBytes()) {
          setNumNullBytes(other.getNumNullBytes());
        }
        if (other.hasTableId()) {
          setTableId(other.getTableId());
        }
        if (other.hasNumNullSlots()) {
          setNumNullSlots(other.getNumNullSlots());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasId()) {
          return false;
        }
        if (!hasByteSize()) {
          return false;
        }
        if (!hasNumNullBytes()) {
          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: {
                id_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                byteSize_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                numNullBytes_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                tableId_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                numNullSlots_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              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 id_ ;
      /**
       * <code>required int32 id = 1;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <code>required int32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      private int byteSize_ ;
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 byte_size = 2;</code>
       * @return Whether the byteSize field is set.
       */
      @java.lang.Override
      public boolean hasByteSize() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 byte_size = 2;</code>
       * @return The byteSize.
       */
      @java.lang.Override
      public int getByteSize() {
        return byteSize_;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 byte_size = 2;</code>
       * @param value The byteSize to set.
       * @return This builder for chaining.
       */
      public Builder setByteSize(int value) {

        byteSize_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 byte_size = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearByteSize() {
        bitField0_ = (bitField0_ & ~0x00000002);
        byteSize_ = 0;
        onChanged();
        return this;
      }

      private int numNullBytes_ ;
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 num_null_bytes = 3;</code>
       * @return Whether the numNullBytes field is set.
       */
      @java.lang.Override
      public boolean hasNumNullBytes() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 num_null_bytes = 3;</code>
       * @return The numNullBytes.
       */
      @java.lang.Override
      public int getNumNullBytes() {
        return numNullBytes_;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 num_null_bytes = 3;</code>
       * @param value The numNullBytes to set.
       * @return This builder for chaining.
       */
      public Builder setNumNullBytes(int value) {

        numNullBytes_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>required int32 num_null_bytes = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumNullBytes() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numNullBytes_ = 0;
        onChanged();
        return this;
      }

      private long tableId_ ;
      /**
       * <code>optional int64 table_id = 4;</code>
       * @return Whether the tableId field is set.
       */
      @java.lang.Override
      public boolean hasTableId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int64 table_id = 4;</code>
       * @return The tableId.
       */
      @java.lang.Override
      public long getTableId() {
        return tableId_;
      }
      /**
       * <code>optional int64 table_id = 4;</code>
       * @param value The tableId to set.
       * @return This builder for chaining.
       */
      public Builder setTableId(long value) {

        tableId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 table_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tableId_ = 0L;
        onChanged();
        return this;
      }

      private int numNullSlots_ ;
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 num_null_slots = 5;</code>
       * @return Whether the numNullSlots field is set.
       */
      @java.lang.Override
      public boolean hasNumNullSlots() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 num_null_slots = 5;</code>
       * @return The numNullSlots.
       */
      @java.lang.Override
      public int getNumNullSlots() {
        return numNullSlots_;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 num_null_slots = 5;</code>
       * @param value The numNullSlots to set.
       * @return This builder for chaining.
       */
      public Builder setNumNullSlots(int value) {

        numNullSlots_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated
       * </pre>
       *
       * <code>optional int32 num_null_slots = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumNullSlots() {
        bitField0_ = (bitField0_ & ~0x00000010);
        numNullSlots_ = 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.PTupleDescriptor)
    }

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

    public static org.apache.doris.proto.Descriptors.PTupleDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

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

    /**
     * <code>required int64 id = 1;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <code>required int64 id = 1;</code>
     * @return The id.
     */
    long getId();

    /**
     * <code>repeated string columns = 2;</code>
     * @return A list containing the columns.
     */
    java.util.List<java.lang.String>
        getColumnsList();
    /**
     * <code>repeated string columns = 2;</code>
     * @return The count of columns.
     */
    int getColumnsCount();
    /**
     * <code>repeated string columns = 2;</code>
     * @param index The index of the element to return.
     * @return The columns at the given index.
     */
    java.lang.String getColumns(int index);
    /**
     * <code>repeated string columns = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the columns at the given index.
     */
    com.google.protobuf.ByteString
        getColumnsBytes(int index);

    /**
     * <code>required int32 schema_hash = 3;</code>
     * @return Whether the schemaHash field is set.
     */
    boolean hasSchemaHash();
    /**
     * <code>required int32 schema_hash = 3;</code>
     * @return The schemaHash.
     */
    int getSchemaHash();

    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> 
        getColumnsDescList();
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPB getColumnsDesc(int index);
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    int getColumnsDescCount();
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getColumnsDescOrBuilderList();
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnsDescOrBuilder(
        int index);

    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> 
        getIndexesDescList();
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    org.apache.doris.proto.OlapFile.TabletIndexPB getIndexesDesc(int index);
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    int getIndexesDescCount();
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
        getIndexesDescOrBuilderList();
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexesDescOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code doris.POlapTableIndexSchema}
   */
  public static final class POlapTableIndexSchema extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.POlapTableIndexSchema)
      POlapTableIndexSchemaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use POlapTableIndexSchema.newBuilder() to construct.
    private POlapTableIndexSchema(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private POlapTableIndexSchema() {
      columns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      columnsDesc_ = java.util.Collections.emptyList();
      indexesDesc_ = java.util.Collections.emptyList();
    }

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

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

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

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_ = 0L;
    /**
     * <code>required int64 id = 1;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int COLUMNS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList columns_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string columns = 2;</code>
     * @return A list containing the columns.
     */
    public com.google.protobuf.ProtocolStringList
        getColumnsList() {
      return columns_;
    }
    /**
     * <code>repeated string columns = 2;</code>
     * @return The count of columns.
     */
    public int getColumnsCount() {
      return columns_.size();
    }
    /**
     * <code>repeated string columns = 2;</code>
     * @param index The index of the element to return.
     * @return The columns at the given index.
     */
    public java.lang.String getColumns(int index) {
      return columns_.get(index);
    }
    /**
     * <code>repeated string columns = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the columns at the given index.
     */
    public com.google.protobuf.ByteString
        getColumnsBytes(int index) {
      return columns_.getByteString(index);
    }

    public static final int SCHEMA_HASH_FIELD_NUMBER = 3;
    private int schemaHash_ = 0;
    /**
     * <code>required int32 schema_hash = 3;</code>
     * @return Whether the schemaHash field is set.
     */
    @java.lang.Override
    public boolean hasSchemaHash() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int32 schema_hash = 3;</code>
     * @return The schemaHash.
     */
    @java.lang.Override
    public int getSchemaHash() {
      return schemaHash_;
    }

    public static final int COLUMNS_DESC_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> columnsDesc_;
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getColumnsDescList() {
      return columnsDesc_;
    }
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
        getColumnsDescOrBuilderList() {
      return columnsDesc_;
    }
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    @java.lang.Override
    public int getColumnsDescCount() {
      return columnsDesc_.size();
    }
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPB getColumnsDesc(int index) {
      return columnsDesc_.get(index);
    }
    /**
     * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnsDescOrBuilder(
        int index) {
      return columnsDesc_.get(index);
    }

    public static final int INDEXES_DESC_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> indexesDesc_;
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexesDescList() {
      return indexesDesc_;
    }
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
        getIndexesDescOrBuilderList() {
      return indexesDesc_;
    }
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    @java.lang.Override
    public int getIndexesDescCount() {
      return indexesDesc_.size();
    }
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletIndexPB getIndexesDesc(int index) {
      return indexesDesc_.get(index);
    }
    /**
     * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexesDescOrBuilder(
        int index) {
      return indexesDesc_.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 (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSchemaHash()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getColumnsDescCount(); i++) {
        if (!getColumnsDesc(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, id_);
      }
      for (int i = 0; i < columns_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, columns_.getRaw(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(3, schemaHash_);
      }
      for (int i = 0; i < columnsDesc_.size(); i++) {
        output.writeMessage(4, columnsDesc_.get(i));
      }
      for (int i = 0; i < indexesDesc_.size(); i++) {
        output.writeMessage(5, indexesDesc_.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, id_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < columns_.size(); i++) {
          dataSize += computeStringSizeNoTag(columns_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getColumnsList().size();
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, schemaHash_);
      }
      for (int i = 0; i < columnsDesc_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, columnsDesc_.get(i));
      }
      for (int i = 0; i < indexesDesc_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, indexesDesc_.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.Descriptors.POlapTableIndexSchema)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.Descriptors.POlapTableIndexSchema other = (org.apache.doris.proto.Descriptors.POlapTableIndexSchema) obj;

      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (getId()
            != other.getId()) return false;
      }
      if (!getColumnsList()
          .equals(other.getColumnsList())) return false;
      if (hasSchemaHash() != other.hasSchemaHash()) return false;
      if (hasSchemaHash()) {
        if (getSchemaHash()
            != other.getSchemaHash()) return false;
      }
      if (!getColumnsDescList()
          .equals(other.getColumnsDescList())) return false;
      if (!getIndexesDescList()
          .equals(other.getIndexesDescList())) 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 (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getId());
      }
      if (getColumnsCount() > 0) {
        hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnsList().hashCode();
      }
      if (hasSchemaHash()) {
        hash = (37 * hash) + SCHEMA_HASH_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaHash();
      }
      if (getColumnsDescCount() > 0) {
        hash = (37 * hash) + COLUMNS_DESC_FIELD_NUMBER;
        hash = (53 * hash) + getColumnsDescList().hashCode();
      }
      if (getIndexesDescCount() > 0) {
        hash = (37 * hash) + INDEXES_DESC_FIELD_NUMBER;
        hash = (53 * hash) + getIndexesDescList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

      // Construct using org.apache.doris.proto.Descriptors.POlapTableIndexSchema.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0L;
        columns_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        schemaHash_ = 0;
        if (columnsDescBuilder_ == null) {
          columnsDesc_ = java.util.Collections.emptyList();
        } else {
          columnsDesc_ = null;
          columnsDescBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (indexesDescBuilder_ == null) {
          indexesDesc_ = java.util.Collections.emptyList();
        } else {
          indexesDesc_ = null;
          indexesDescBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.Descriptors.POlapTableIndexSchema result) {
        if (columnsDescBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            columnsDesc_ = java.util.Collections.unmodifiableList(columnsDesc_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.columnsDesc_ = columnsDesc_;
        } else {
          result.columnsDesc_ = columnsDescBuilder_.build();
        }
        if (indexesDescBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            indexesDesc_ = java.util.Collections.unmodifiableList(indexesDesc_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.indexesDesc_ = indexesDesc_;
        } else {
          result.indexesDesc_ = indexesDescBuilder_.build();
        }
      }

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

      public Builder mergeFrom(org.apache.doris.proto.Descriptors.POlapTableIndexSchema other) {
        if (other == org.apache.doris.proto.Descriptors.POlapTableIndexSchema.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.columns_.isEmpty()) {
          if (columns_.isEmpty()) {
            columns_ = other.columns_;
            bitField0_ |= 0x00000002;
          } else {
            ensureColumnsIsMutable();
            columns_.addAll(other.columns_);
          }
          onChanged();
        }
        if (other.hasSchemaHash()) {
          setSchemaHash(other.getSchemaHash());
        }
        if (columnsDescBuilder_ == null) {
          if (!other.columnsDesc_.isEmpty()) {
            if (columnsDesc_.isEmpty()) {
              columnsDesc_ = other.columnsDesc_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureColumnsDescIsMutable();
              columnsDesc_.addAll(other.columnsDesc_);
            }
            onChanged();
          }
        } else {
          if (!other.columnsDesc_.isEmpty()) {
            if (columnsDescBuilder_.isEmpty()) {
              columnsDescBuilder_.dispose();
              columnsDescBuilder_ = null;
              columnsDesc_ = other.columnsDesc_;
              bitField0_ = (bitField0_ & ~0x00000008);
              columnsDescBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnsDescFieldBuilder() : null;
            } else {
              columnsDescBuilder_.addAllMessages(other.columnsDesc_);
            }
          }
        }
        if (indexesDescBuilder_ == null) {
          if (!other.indexesDesc_.isEmpty()) {
            if (indexesDesc_.isEmpty()) {
              indexesDesc_ = other.indexesDesc_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureIndexesDescIsMutable();
              indexesDesc_.addAll(other.indexesDesc_);
            }
            onChanged();
          }
        } else {
          if (!other.indexesDesc_.isEmpty()) {
            if (indexesDescBuilder_.isEmpty()) {
              indexesDescBuilder_.dispose();
              indexesDescBuilder_ = null;
              indexesDesc_ = other.indexesDesc_;
              bitField0_ = (bitField0_ & ~0x00000010);
              indexesDescBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIndexesDescFieldBuilder() : null;
            } else {
              indexesDescBuilder_.addAllMessages(other.indexesDesc_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasId()) {
          return false;
        }
        if (!hasSchemaHash()) {
          return false;
        }
        for (int i = 0; i < getColumnsDescCount(); i++) {
          if (!getColumnsDesc(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: {
                id_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureColumnsIsMutable();
                columns_.add(bs);
                break;
              } // case 18
              case 24: {
                schemaHash_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                org.apache.doris.proto.OlapFile.ColumnPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.ColumnPB.PARSER,
                        extensionRegistry);
                if (columnsDescBuilder_ == null) {
                  ensureColumnsDescIsMutable();
                  columnsDesc_.add(m);
                } else {
                  columnsDescBuilder_.addMessage(m);
                }
                break;
              } // case 34
              case 42: {
                org.apache.doris.proto.OlapFile.TabletIndexPB m =
                    input.readMessage(
                        org.apache.doris.proto.OlapFile.TabletIndexPB.PARSER,
                        extensionRegistry);
                if (indexesDescBuilder_ == null) {
                  ensureIndexesDescIsMutable();
                  indexesDesc_.add(m);
                } else {
                  indexesDescBuilder_.addMessage(m);
                }
                break;
              } // case 42
              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 id_ ;
      /**
       * <code>required int64 id = 1;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * <code>required int64 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {

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

      private com.google.protobuf.LazyStringArrayList columns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureColumnsIsMutable() {
        if (!columns_.isModifiable()) {
          columns_ = new com.google.protobuf.LazyStringArrayList(columns_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @return A list containing the columns.
       */
      public com.google.protobuf.ProtocolStringList
          getColumnsList() {
        columns_.makeImmutable();
        return columns_;
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @return The count of columns.
       */
      public int getColumnsCount() {
        return columns_.size();
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @param index The index of the element to return.
       * @return The columns at the given index.
       */
      public java.lang.String getColumns(int index) {
        return columns_.get(index);
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the columns at the given index.
       */
      public com.google.protobuf.ByteString
          getColumnsBytes(int index) {
        return columns_.getByteString(index);
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @param index The index to set the value at.
       * @param value The columns to set.
       * @return This builder for chaining.
       */
      public Builder setColumns(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnsIsMutable();
        columns_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @param value The columns to add.
       * @return This builder for chaining.
       */
      public Builder addColumns(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnsIsMutable();
        columns_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @param values The columns to add.
       * @return This builder for chaining.
       */
      public Builder addAllColumns(
          java.lang.Iterable<java.lang.String> values) {
        ensureColumnsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, columns_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumns() {
        columns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string columns = 2;</code>
       * @param value The bytes of the columns to add.
       * @return This builder for chaining.
       */
      public Builder addColumnsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnsIsMutable();
        columns_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int schemaHash_ ;
      /**
       * <code>required int32 schema_hash = 3;</code>
       * @return Whether the schemaHash field is set.
       */
      @java.lang.Override
      public boolean hasSchemaHash() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required int32 schema_hash = 3;</code>
       * @return The schemaHash.
       */
      @java.lang.Override
      public int getSchemaHash() {
        return schemaHash_;
      }
      /**
       * <code>required int32 schema_hash = 3;</code>
       * @param value The schemaHash to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaHash(int value) {

        schemaHash_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 schema_hash = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaHash() {
        bitField0_ = (bitField0_ & ~0x00000004);
        schemaHash_ = 0;
        onChanged();
        return this;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> columnsDescBuilder_;

      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB> getColumnsDescList() {
        if (columnsDescBuilder_ == null) {
          return java.util.Collections.unmodifiableList(columnsDesc_);
        } else {
          return columnsDescBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public int getColumnsDescCount() {
        if (columnsDescBuilder_ == null) {
          return columnsDesc_.size();
        } else {
          return columnsDescBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB getColumnsDesc(int index) {
        if (columnsDescBuilder_ == null) {
          return columnsDesc_.get(index);
        } else {
          return columnsDescBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder setColumnsDesc(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnsDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsDescIsMutable();
          columnsDesc_.set(index, value);
          onChanged();
        } else {
          columnsDescBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder setColumnsDesc(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnsDescBuilder_ == null) {
          ensureColumnsDescIsMutable();
          columnsDesc_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnsDescBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder addColumnsDesc(org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnsDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsDescIsMutable();
          columnsDesc_.add(value);
          onChanged();
        } else {
          columnsDescBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder addColumnsDesc(
          int index, org.apache.doris.proto.OlapFile.ColumnPB value) {
        if (columnsDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsDescIsMutable();
          columnsDesc_.add(index, value);
          onChanged();
        } else {
          columnsDescBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder addColumnsDesc(
          org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnsDescBuilder_ == null) {
          ensureColumnsDescIsMutable();
          columnsDesc_.add(builderForValue.build());
          onChanged();
        } else {
          columnsDescBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder addColumnsDesc(
          int index, org.apache.doris.proto.OlapFile.ColumnPB.Builder builderForValue) {
        if (columnsDescBuilder_ == null) {
          ensureColumnsDescIsMutable();
          columnsDesc_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnsDescBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder addAllColumnsDesc(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.ColumnPB> values) {
        if (columnsDescBuilder_ == null) {
          ensureColumnsDescIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, columnsDesc_);
          onChanged();
        } else {
          columnsDescBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder clearColumnsDesc() {
        if (columnsDescBuilder_ == null) {
          columnsDesc_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          columnsDescBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public Builder removeColumnsDesc(int index) {
        if (columnsDescBuilder_ == null) {
          ensureColumnsDescIsMutable();
          columnsDesc_.remove(index);
          onChanged();
        } else {
          columnsDescBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder getColumnsDescBuilder(
          int index) {
        return getColumnsDescFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPBOrBuilder getColumnsDescOrBuilder(
          int index) {
        if (columnsDescBuilder_ == null) {
          return columnsDesc_.get(index);  } else {
          return columnsDescBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.ColumnPBOrBuilder> 
           getColumnsDescOrBuilderList() {
        if (columnsDescBuilder_ != null) {
          return columnsDescBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(columnsDesc_);
        }
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addColumnsDescBuilder() {
        return getColumnsDescFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public org.apache.doris.proto.OlapFile.ColumnPB.Builder addColumnsDescBuilder(
          int index) {
        return getColumnsDescFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.ColumnPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.ColumnPB columns_desc = 4;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.ColumnPB.Builder> 
           getColumnsDescBuilderList() {
        return getColumnsDescFieldBuilder().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> 
          getColumnsDescFieldBuilder() {
        if (columnsDescBuilder_ == null) {
          columnsDescBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.ColumnPB, org.apache.doris.proto.OlapFile.ColumnPB.Builder, org.apache.doris.proto.OlapFile.ColumnPBOrBuilder>(
                  columnsDesc_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          columnsDesc_ = null;
        }
        return columnsDescBuilder_;
      }

      private java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> indexesDesc_ =
        java.util.Collections.emptyList();
      private void ensureIndexesDescIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          indexesDesc_ = new java.util.ArrayList<org.apache.doris.proto.OlapFile.TabletIndexPB>(indexesDesc_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> indexesDescBuilder_;

      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB> getIndexesDescList() {
        if (indexesDescBuilder_ == null) {
          return java.util.Collections.unmodifiableList(indexesDesc_);
        } else {
          return indexesDescBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public int getIndexesDescCount() {
        if (indexesDescBuilder_ == null) {
          return indexesDesc_.size();
        } else {
          return indexesDescBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB getIndexesDesc(int index) {
        if (indexesDescBuilder_ == null) {
          return indexesDesc_.get(index);
        } else {
          return indexesDescBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder setIndexesDesc(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexesDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexesDescIsMutable();
          indexesDesc_.set(index, value);
          onChanged();
        } else {
          indexesDescBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder setIndexesDesc(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexesDescBuilder_ == null) {
          ensureIndexesDescIsMutable();
          indexesDesc_.set(index, builderForValue.build());
          onChanged();
        } else {
          indexesDescBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder addIndexesDesc(org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexesDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexesDescIsMutable();
          indexesDesc_.add(value);
          onChanged();
        } else {
          indexesDescBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder addIndexesDesc(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB value) {
        if (indexesDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexesDescIsMutable();
          indexesDesc_.add(index, value);
          onChanged();
        } else {
          indexesDescBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder addIndexesDesc(
          org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexesDescBuilder_ == null) {
          ensureIndexesDescIsMutable();
          indexesDesc_.add(builderForValue.build());
          onChanged();
        } else {
          indexesDescBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder addIndexesDesc(
          int index, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder builderForValue) {
        if (indexesDescBuilder_ == null) {
          ensureIndexesDescIsMutable();
          indexesDesc_.add(index, builderForValue.build());
          onChanged();
        } else {
          indexesDescBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder addAllIndexesDesc(
          java.lang.Iterable<? extends org.apache.doris.proto.OlapFile.TabletIndexPB> values) {
        if (indexesDescBuilder_ == null) {
          ensureIndexesDescIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, indexesDesc_);
          onChanged();
        } else {
          indexesDescBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder clearIndexesDesc() {
        if (indexesDescBuilder_ == null) {
          indexesDesc_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          indexesDescBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public Builder removeIndexesDesc(int index) {
        if (indexesDescBuilder_ == null) {
          ensureIndexesDescIsMutable();
          indexesDesc_.remove(index);
          onChanged();
        } else {
          indexesDescBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder getIndexesDescBuilder(
          int index) {
        return getIndexesDescFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder getIndexesDescOrBuilder(
          int index) {
        if (indexesDescBuilder_ == null) {
          return indexesDesc_.get(index);  } else {
          return indexesDescBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder> 
           getIndexesDescOrBuilderList() {
        if (indexesDescBuilder_ != null) {
          return indexesDescBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(indexesDesc_);
        }
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder addIndexesDescBuilder() {
        return getIndexesDescFieldBuilder().addBuilder(
            org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public org.apache.doris.proto.OlapFile.TabletIndexPB.Builder addIndexesDescBuilder(
          int index) {
        return getIndexesDescFieldBuilder().addBuilder(
            index, org.apache.doris.proto.OlapFile.TabletIndexPB.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.TabletIndexPB indexes_desc = 5;</code>
       */
      public java.util.List<org.apache.doris.proto.OlapFile.TabletIndexPB.Builder> 
           getIndexesDescBuilderList() {
        return getIndexesDescFieldBuilder().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> 
          getIndexesDescFieldBuilder() {
        if (indexesDescBuilder_ == null) {
          indexesDescBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.OlapFile.TabletIndexPB, org.apache.doris.proto.OlapFile.TabletIndexPB.Builder, org.apache.doris.proto.OlapFile.TabletIndexPBOrBuilder>(
                  indexesDesc_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          indexesDesc_ = null;
        }
        return indexesDescBuilder_;
      }
      @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.POlapTableIndexSchema)
    }

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

    public static org.apache.doris.proto.Descriptors.POlapTableIndexSchema getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

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

    /**
     * <code>required int64 db_id = 1;</code>
     * @return Whether the dbId field is set.
     */
    boolean hasDbId();
    /**
     * <code>required int64 db_id = 1;</code>
     * @return The dbId.
     */
    long getDbId();

    /**
     * <code>required int64 table_id = 2;</code>
     * @return Whether the tableId field is set.
     */
    boolean hasTableId();
    /**
     * <code>required int64 table_id = 2;</code>
     * @return The tableId.
     */
    long getTableId();

    /**
     * <code>required int64 version = 3;</code>
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * <code>required int64 version = 3;</code>
     * @return The version.
     */
    long getVersion();

    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    java.util.List<org.apache.doris.proto.Descriptors.PSlotDescriptor> 
        getSlotDescsList();
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    org.apache.doris.proto.Descriptors.PSlotDescriptor getSlotDescs(int index);
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    int getSlotDescsCount();
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    java.util.List<? extends org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder> 
        getSlotDescsOrBuilderList();
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder getSlotDescsOrBuilder(
        int index);

    /**
     * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
     * @return Whether the tupleDesc field is set.
     */
    boolean hasTupleDesc();
    /**
     * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
     * @return The tupleDesc.
     */
    org.apache.doris.proto.Descriptors.PTupleDescriptor getTupleDesc();
    /**
     * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
     */
    org.apache.doris.proto.Descriptors.PTupleDescriptorOrBuilder getTupleDescOrBuilder();

    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    java.util.List<org.apache.doris.proto.Descriptors.POlapTableIndexSchema> 
        getIndexesList();
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    org.apache.doris.proto.Descriptors.POlapTableIndexSchema getIndexes(int index);
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    int getIndexesCount();
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    java.util.List<? extends org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder> 
        getIndexesOrBuilderList();
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder getIndexesOrBuilder(
        int index);

    /**
     * <pre>
     * deprecated, use unique_key_update_mode
     * </pre>
     *
     * <code>optional bool partial_update = 7 [default = false];</code>
     * @return Whether the partialUpdate field is set.
     */
    boolean hasPartialUpdate();
    /**
     * <pre>
     * deprecated, use unique_key_update_mode
     * </pre>
     *
     * <code>optional bool partial_update = 7 [default = false];</code>
     * @return The partialUpdate.
     */
    boolean getPartialUpdate();

    /**
     * <code>repeated string partial_update_input_columns = 8;</code>
     * @return A list containing the partialUpdateInputColumns.
     */
    java.util.List<java.lang.String>
        getPartialUpdateInputColumnsList();
    /**
     * <code>repeated string partial_update_input_columns = 8;</code>
     * @return The count of partialUpdateInputColumns.
     */
    int getPartialUpdateInputColumnsCount();
    /**
     * <code>repeated string partial_update_input_columns = 8;</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 = 8;</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>optional bool is_strict_mode = 9 [default = false];</code>
     * @return Whether the isStrictMode field is set.
     */
    boolean hasIsStrictMode();
    /**
     * <code>optional bool is_strict_mode = 9 [default = false];</code>
     * @return The isStrictMode.
     */
    boolean getIsStrictMode();

    /**
     * <code>optional string auto_increment_column = 10;</code>
     * @return Whether the autoIncrementColumn field is set.
     */
    boolean hasAutoIncrementColumn();
    /**
     * <code>optional string auto_increment_column = 10;</code>
     * @return The autoIncrementColumn.
     */
    java.lang.String getAutoIncrementColumn();
    /**
     * <code>optional string auto_increment_column = 10;</code>
     * @return The bytes for autoIncrementColumn.
     */
    com.google.protobuf.ByteString
        getAutoIncrementColumnBytes();

    /**
     * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
     * @return Whether the timestampMs field is set.
     */
    boolean hasTimestampMs();
    /**
     * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
     * @return The timestampMs.
     */
    long getTimestampMs();

    /**
     * <code>optional string timezone = 12;</code>
     * @return Whether the timezone field is set.
     */
    boolean hasTimezone();
    /**
     * <code>optional string timezone = 12;</code>
     * @return The timezone.
     */
    java.lang.String getTimezone();
    /**
     * <code>optional string timezone = 12;</code>
     * @return The bytes for timezone.
     */
    com.google.protobuf.ByteString
        getTimezoneBytes();

    /**
     * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
     * @return Whether the autoIncrementColumnUniqueId field is set.
     */
    boolean hasAutoIncrementColumnUniqueId();
    /**
     * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
     * @return The autoIncrementColumnUniqueId.
     */
    int getAutoIncrementColumnUniqueId();

    /**
     * <code>optional int32 nano_seconds = 14 [default = 0];</code>
     * @return Whether the nanoSeconds field is set.
     */
    boolean hasNanoSeconds();
    /**
     * <code>optional int32 nano_seconds = 14 [default = 0];</code>
     * @return The nanoSeconds.
     */
    int getNanoSeconds();

    /**
     * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
     * @return Whether the uniqueKeyUpdateMode field is set.
     */
    boolean hasUniqueKeyUpdateMode();
    /**
     * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
     * @return The uniqueKeyUpdateMode.
     */
    org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB getUniqueKeyUpdateMode();

    /**
     * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
     * @return Whether the sequenceMapColUniqueId field is set.
     */
    boolean hasSequenceMapColUniqueId();
    /**
     * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
     * @return The sequenceMapColUniqueId.
     */
    int getSequenceMapColUniqueId();
  }
  /**
   * Protobuf type {@code doris.POlapTableSchemaParam}
   */
  public static final class POlapTableSchemaParam extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.POlapTableSchemaParam)
      POlapTableSchemaParamOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use POlapTableSchemaParam.newBuilder() to construct.
    private POlapTableSchemaParam(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private POlapTableSchemaParam() {
      slotDescs_ = java.util.Collections.emptyList();
      indexes_ = java.util.Collections.emptyList();
      partialUpdateInputColumns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      autoIncrementColumn_ = "";
      timezone_ = "";
      autoIncrementColumnUniqueId_ = -1;
      uniqueKeyUpdateMode_ = 0;
      sequenceMapColUniqueId_ = -1;
    }

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

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

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

    private int bitField0_;
    public static final int DB_ID_FIELD_NUMBER = 1;
    private long dbId_ = 0L;
    /**
     * <code>required int64 db_id = 1;</code>
     * @return Whether the dbId field is set.
     */
    @java.lang.Override
    public boolean hasDbId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 db_id = 1;</code>
     * @return The dbId.
     */
    @java.lang.Override
    public long getDbId() {
      return dbId_;
    }

    public static final int TABLE_ID_FIELD_NUMBER = 2;
    private long tableId_ = 0L;
    /**
     * <code>required int64 table_id = 2;</code>
     * @return Whether the tableId field is set.
     */
    @java.lang.Override
    public boolean hasTableId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int64 table_id = 2;</code>
     * @return The tableId.
     */
    @java.lang.Override
    public long getTableId() {
      return tableId_;
    }

    public static final int VERSION_FIELD_NUMBER = 3;
    private long version_ = 0L;
    /**
     * <code>required int64 version = 3;</code>
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required int64 version = 3;</code>
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int SLOT_DESCS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.Descriptors.PSlotDescriptor> slotDescs_;
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.Descriptors.PSlotDescriptor> getSlotDescsList() {
      return slotDescs_;
    }
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder> 
        getSlotDescsOrBuilderList() {
      return slotDescs_;
    }
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    @java.lang.Override
    public int getSlotDescsCount() {
      return slotDescs_.size();
    }
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Descriptors.PSlotDescriptor getSlotDescs(int index) {
      return slotDescs_.get(index);
    }
    /**
     * <pre>
     * Logical columns, contain all column that in logical table
     * </pre>
     *
     * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder getSlotDescsOrBuilder(
        int index) {
      return slotDescs_.get(index);
    }

    public static final int TUPLE_DESC_FIELD_NUMBER = 5;
    private org.apache.doris.proto.Descriptors.PTupleDescriptor tupleDesc_;
    /**
     * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
     * @return Whether the tupleDesc field is set.
     */
    @java.lang.Override
    public boolean hasTupleDesc() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
     * @return The tupleDesc.
     */
    @java.lang.Override
    public org.apache.doris.proto.Descriptors.PTupleDescriptor getTupleDesc() {
      return tupleDesc_ == null ? org.apache.doris.proto.Descriptors.PTupleDescriptor.getDefaultInstance() : tupleDesc_;
    }
    /**
     * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Descriptors.PTupleDescriptorOrBuilder getTupleDescOrBuilder() {
      return tupleDesc_ == null ? org.apache.doris.proto.Descriptors.PTupleDescriptor.getDefaultInstance() : tupleDesc_;
    }

    public static final int INDEXES_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.Descriptors.POlapTableIndexSchema> indexes_;
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.Descriptors.POlapTableIndexSchema> getIndexesList() {
      return indexes_;
    }
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder> 
        getIndexesOrBuilderList() {
      return indexes_;
    }
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    @java.lang.Override
    public int getIndexesCount() {
      return indexes_.size();
    }
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Descriptors.POlapTableIndexSchema getIndexes(int index) {
      return indexes_.get(index);
    }
    /**
     * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder getIndexesOrBuilder(
        int index) {
      return indexes_.get(index);
    }

    public static final int PARTIAL_UPDATE_FIELD_NUMBER = 7;
    private boolean partialUpdate_ = false;
    /**
     * <pre>
     * deprecated, use unique_key_update_mode
     * </pre>
     *
     * <code>optional bool partial_update = 7 [default = false];</code>
     * @return Whether the partialUpdate field is set.
     */
    @java.lang.Override
    public boolean hasPartialUpdate() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * deprecated, use unique_key_update_mode
     * </pre>
     *
     * <code>optional bool partial_update = 7 [default = false];</code>
     * @return The partialUpdate.
     */
    @java.lang.Override
    public boolean getPartialUpdate() {
      return partialUpdate_;
    }

    public static final int PARTIAL_UPDATE_INPUT_COLUMNS_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList partialUpdateInputColumns_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string partial_update_input_columns = 8;</code>
     * @return A list containing the partialUpdateInputColumns.
     */
    public com.google.protobuf.ProtocolStringList
        getPartialUpdateInputColumnsList() {
      return partialUpdateInputColumns_;
    }
    /**
     * <code>repeated string partial_update_input_columns = 8;</code>
     * @return The count of partialUpdateInputColumns.
     */
    public int getPartialUpdateInputColumnsCount() {
      return partialUpdateInputColumns_.size();
    }
    /**
     * <code>repeated string partial_update_input_columns = 8;</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 = 8;</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 IS_STRICT_MODE_FIELD_NUMBER = 9;
    private boolean isStrictMode_ = false;
    /**
     * <code>optional bool is_strict_mode = 9 [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 = 9 [default = false];</code>
     * @return The isStrictMode.
     */
    @java.lang.Override
    public boolean getIsStrictMode() {
      return isStrictMode_;
    }

    public static final int AUTO_INCREMENT_COLUMN_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private volatile java.lang.Object autoIncrementColumn_ = "";
    /**
     * <code>optional string auto_increment_column = 10;</code>
     * @return Whether the autoIncrementColumn field is set.
     */
    @java.lang.Override
    public boolean hasAutoIncrementColumn() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional string auto_increment_column = 10;</code>
     * @return The autoIncrementColumn.
     */
    @java.lang.Override
    public java.lang.String getAutoIncrementColumn() {
      java.lang.Object ref = autoIncrementColumn_;
      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()) {
          autoIncrementColumn_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string auto_increment_column = 10;</code>
     * @return The bytes for autoIncrementColumn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAutoIncrementColumnBytes() {
      java.lang.Object ref = autoIncrementColumn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        autoIncrementColumn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMESTAMP_MS_FIELD_NUMBER = 11;
    private long timestampMs_ = 0L;
    /**
     * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
     * @return Whether the timestampMs field is set.
     */
    @java.lang.Override
    public boolean hasTimestampMs() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
     * @return The timestampMs.
     */
    @java.lang.Override
    public long getTimestampMs() {
      return timestampMs_;
    }

    public static final int TIMEZONE_FIELD_NUMBER = 12;
    @SuppressWarnings("serial")
    private volatile java.lang.Object timezone_ = "";
    /**
     * <code>optional string timezone = 12;</code>
     * @return Whether the timezone field is set.
     */
    @java.lang.Override
    public boolean hasTimezone() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional string timezone = 12;</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 = 12;</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 AUTO_INCREMENT_COLUMN_UNIQUE_ID_FIELD_NUMBER = 13;
    private int autoIncrementColumnUniqueId_ = -1;
    /**
     * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
     * @return Whether the autoIncrementColumnUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasAutoIncrementColumnUniqueId() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
     * @return The autoIncrementColumnUniqueId.
     */
    @java.lang.Override
    public int getAutoIncrementColumnUniqueId() {
      return autoIncrementColumnUniqueId_;
    }

    public static final int NANO_SECONDS_FIELD_NUMBER = 14;
    private int nanoSeconds_ = 0;
    /**
     * <code>optional int32 nano_seconds = 14 [default = 0];</code>
     * @return Whether the nanoSeconds field is set.
     */
    @java.lang.Override
    public boolean hasNanoSeconds() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional int32 nano_seconds = 14 [default = 0];</code>
     * @return The nanoSeconds.
     */
    @java.lang.Override
    public int getNanoSeconds() {
      return nanoSeconds_;
    }

    public static final int UNIQUE_KEY_UPDATE_MODE_FIELD_NUMBER = 15;
    private int uniqueKeyUpdateMode_ = 0;
    /**
     * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
     * @return Whether the uniqueKeyUpdateMode field is set.
     */
    @java.lang.Override public boolean hasUniqueKeyUpdateMode() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
     * @return The uniqueKeyUpdateMode.
     */
    @java.lang.Override public org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB getUniqueKeyUpdateMode() {
      org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB result = org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.forNumber(uniqueKeyUpdateMode_);
      return result == null ? org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.UPSERT : result;
    }

    public static final int SEQUENCE_MAP_COL_UNIQUE_ID_FIELD_NUMBER = 16;
    private int sequenceMapColUniqueId_ = -1;
    /**
     * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
     * @return Whether the sequenceMapColUniqueId field is set.
     */
    @java.lang.Override
    public boolean hasSequenceMapColUniqueId() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
     * @return The sequenceMapColUniqueId.
     */
    @java.lang.Override
    public int getSequenceMapColUniqueId() {
      return sequenceMapColUniqueId_;
    }

    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 (!hasDbId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTableId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTupleDesc()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getSlotDescsCount(); i++) {
        if (!getSlotDescs(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!getTupleDesc().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getIndexesCount(); i++) {
        if (!getIndexes(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, dbId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, tableId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, version_);
      }
      for (int i = 0; i < slotDescs_.size(); i++) {
        output.writeMessage(4, slotDescs_.get(i));
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(5, getTupleDesc());
      }
      for (int i = 0; i < indexes_.size(); i++) {
        output.writeMessage(6, indexes_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeBool(7, partialUpdate_);
      }
      for (int i = 0; i < partialUpdateInputColumns_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, partialUpdateInputColumns_.getRaw(i));
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeBool(9, isStrictMode_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, autoIncrementColumn_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt64(11, timestampMs_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, timezone_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt32(13, autoIncrementColumnUniqueId_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeInt32(14, nanoSeconds_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeEnum(15, uniqueKeyUpdateMode_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt32(16, sequenceMapColUniqueId_);
      }
      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, dbId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, tableId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, version_);
      }
      for (int i = 0; i < slotDescs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, slotDescs_.get(i));
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getTupleDesc());
      }
      for (int i = 0; i < indexes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, indexes_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, partialUpdate_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < partialUpdateInputColumns_.size(); i++) {
          dataSize += computeStringSizeNoTag(partialUpdateInputColumns_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPartialUpdateInputColumnsList().size();
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, isStrictMode_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, autoIncrementColumn_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(11, timestampMs_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, timezone_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, autoIncrementColumnUniqueId_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, nanoSeconds_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(15, uniqueKeyUpdateMode_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(16, sequenceMapColUniqueId_);
      }
      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.Descriptors.POlapTableSchemaParam)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.Descriptors.POlapTableSchemaParam other = (org.apache.doris.proto.Descriptors.POlapTableSchemaParam) obj;

      if (hasDbId() != other.hasDbId()) return false;
      if (hasDbId()) {
        if (getDbId()
            != other.getDbId()) return false;
      }
      if (hasTableId() != other.hasTableId()) return false;
      if (hasTableId()) {
        if (getTableId()
            != other.getTableId()) return false;
      }
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (!getSlotDescsList()
          .equals(other.getSlotDescsList())) return false;
      if (hasTupleDesc() != other.hasTupleDesc()) return false;
      if (hasTupleDesc()) {
        if (!getTupleDesc()
            .equals(other.getTupleDesc())) return false;
      }
      if (!getIndexesList()
          .equals(other.getIndexesList())) return false;
      if (hasPartialUpdate() != other.hasPartialUpdate()) return false;
      if (hasPartialUpdate()) {
        if (getPartialUpdate()
            != other.getPartialUpdate()) return false;
      }
      if (!getPartialUpdateInputColumnsList()
          .equals(other.getPartialUpdateInputColumnsList())) return false;
      if (hasIsStrictMode() != other.hasIsStrictMode()) return false;
      if (hasIsStrictMode()) {
        if (getIsStrictMode()
            != other.getIsStrictMode()) return false;
      }
      if (hasAutoIncrementColumn() != other.hasAutoIncrementColumn()) return false;
      if (hasAutoIncrementColumn()) {
        if (!getAutoIncrementColumn()
            .equals(other.getAutoIncrementColumn())) 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 (hasAutoIncrementColumnUniqueId() != other.hasAutoIncrementColumnUniqueId()) return false;
      if (hasAutoIncrementColumnUniqueId()) {
        if (getAutoIncrementColumnUniqueId()
            != other.getAutoIncrementColumnUniqueId()) return false;
      }
      if (hasNanoSeconds() != other.hasNanoSeconds()) return false;
      if (hasNanoSeconds()) {
        if (getNanoSeconds()
            != other.getNanoSeconds()) return false;
      }
      if (hasUniqueKeyUpdateMode() != other.hasUniqueKeyUpdateMode()) return false;
      if (hasUniqueKeyUpdateMode()) {
        if (uniqueKeyUpdateMode_ != other.uniqueKeyUpdateMode_) return false;
      }
      if (hasSequenceMapColUniqueId() != other.hasSequenceMapColUniqueId()) return false;
      if (hasSequenceMapColUniqueId()) {
        if (getSequenceMapColUniqueId()
            != other.getSequenceMapColUniqueId()) 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 (hasDbId()) {
        hash = (37 * hash) + DB_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDbId());
      }
      if (hasTableId()) {
        hash = (37 * hash) + TABLE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTableId());
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (getSlotDescsCount() > 0) {
        hash = (37 * hash) + SLOT_DESCS_FIELD_NUMBER;
        hash = (53 * hash) + getSlotDescsList().hashCode();
      }
      if (hasTupleDesc()) {
        hash = (37 * hash) + TUPLE_DESC_FIELD_NUMBER;
        hash = (53 * hash) + getTupleDesc().hashCode();
      }
      if (getIndexesCount() > 0) {
        hash = (37 * hash) + INDEXES_FIELD_NUMBER;
        hash = (53 * hash) + getIndexesList().hashCode();
      }
      if (hasPartialUpdate()) {
        hash = (37 * hash) + PARTIAL_UPDATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getPartialUpdate());
      }
      if (getPartialUpdateInputColumnsCount() > 0) {
        hash = (37 * hash) + PARTIAL_UPDATE_INPUT_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getPartialUpdateInputColumnsList().hashCode();
      }
      if (hasIsStrictMode()) {
        hash = (37 * hash) + IS_STRICT_MODE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsStrictMode());
      }
      if (hasAutoIncrementColumn()) {
        hash = (37 * hash) + AUTO_INCREMENT_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getAutoIncrementColumn().hashCode();
      }
      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 (hasAutoIncrementColumnUniqueId()) {
        hash = (37 * hash) + AUTO_INCREMENT_COLUMN_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getAutoIncrementColumnUniqueId();
      }
      if (hasNanoSeconds()) {
        hash = (37 * hash) + NANO_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getNanoSeconds();
      }
      if (hasUniqueKeyUpdateMode()) {
        hash = (37 * hash) + UNIQUE_KEY_UPDATE_MODE_FIELD_NUMBER;
        hash = (53 * hash) + uniqueKeyUpdateMode_;
      }
      if (hasSequenceMapColUniqueId()) {
        hash = (37 * hash) + SEQUENCE_MAP_COL_UNIQUE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getSequenceMapColUniqueId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSlotDescsFieldBuilder();
          getTupleDescFieldBuilder();
          getIndexesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        dbId_ = 0L;
        tableId_ = 0L;
        version_ = 0L;
        if (slotDescsBuilder_ == null) {
          slotDescs_ = java.util.Collections.emptyList();
        } else {
          slotDescs_ = null;
          slotDescsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        tupleDesc_ = null;
        if (tupleDescBuilder_ != null) {
          tupleDescBuilder_.dispose();
          tupleDescBuilder_ = null;
        }
        if (indexesBuilder_ == null) {
          indexes_ = java.util.Collections.emptyList();
        } else {
          indexes_ = null;
          indexesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        partialUpdate_ = false;
        partialUpdateInputColumns_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        isStrictMode_ = false;
        autoIncrementColumn_ = "";
        timestampMs_ = 0L;
        timezone_ = "";
        autoIncrementColumnUniqueId_ = -1;
        nanoSeconds_ = 0;
        uniqueKeyUpdateMode_ = 0;
        sequenceMapColUniqueId_ = -1;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.Descriptors.POlapTableSchemaParam result) {
        if (slotDescsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            slotDescs_ = java.util.Collections.unmodifiableList(slotDescs_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.slotDescs_ = slotDescs_;
        } else {
          result.slotDescs_ = slotDescsBuilder_.build();
        }
        if (indexesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            indexes_ = java.util.Collections.unmodifiableList(indexes_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.indexes_ = indexes_;
        } else {
          result.indexes_ = indexesBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.Descriptors.POlapTableSchemaParam result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.dbId_ = dbId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tableId_ = tableId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.tupleDesc_ = tupleDescBuilder_ == null
              ? tupleDesc_
              : tupleDescBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.partialUpdate_ = partialUpdate_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          partialUpdateInputColumns_.makeImmutable();
          result.partialUpdateInputColumns_ = partialUpdateInputColumns_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.isStrictMode_ = isStrictMode_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.autoIncrementColumn_ = autoIncrementColumn_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.timestampMs_ = timestampMs_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.timezone_ = timezone_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.autoIncrementColumnUniqueId_ = autoIncrementColumnUniqueId_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.nanoSeconds_ = nanoSeconds_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.uniqueKeyUpdateMode_ = uniqueKeyUpdateMode_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.sequenceMapColUniqueId_ = sequenceMapColUniqueId_;
          to_bitField0_ |= 0x00001000;
        }
        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.Descriptors.POlapTableSchemaParam) {
          return mergeFrom((org.apache.doris.proto.Descriptors.POlapTableSchemaParam)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.Descriptors.POlapTableSchemaParam other) {
        if (other == org.apache.doris.proto.Descriptors.POlapTableSchemaParam.getDefaultInstance()) return this;
        if (other.hasDbId()) {
          setDbId(other.getDbId());
        }
        if (other.hasTableId()) {
          setTableId(other.getTableId());
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (slotDescsBuilder_ == null) {
          if (!other.slotDescs_.isEmpty()) {
            if (slotDescs_.isEmpty()) {
              slotDescs_ = other.slotDescs_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureSlotDescsIsMutable();
              slotDescs_.addAll(other.slotDescs_);
            }
            onChanged();
          }
        } else {
          if (!other.slotDescs_.isEmpty()) {
            if (slotDescsBuilder_.isEmpty()) {
              slotDescsBuilder_.dispose();
              slotDescsBuilder_ = null;
              slotDescs_ = other.slotDescs_;
              bitField0_ = (bitField0_ & ~0x00000008);
              slotDescsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSlotDescsFieldBuilder() : null;
            } else {
              slotDescsBuilder_.addAllMessages(other.slotDescs_);
            }
          }
        }
        if (other.hasTupleDesc()) {
          mergeTupleDesc(other.getTupleDesc());
        }
        if (indexesBuilder_ == null) {
          if (!other.indexes_.isEmpty()) {
            if (indexes_.isEmpty()) {
              indexes_ = other.indexes_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureIndexesIsMutable();
              indexes_.addAll(other.indexes_);
            }
            onChanged();
          }
        } else {
          if (!other.indexes_.isEmpty()) {
            if (indexesBuilder_.isEmpty()) {
              indexesBuilder_.dispose();
              indexesBuilder_ = null;
              indexes_ = other.indexes_;
              bitField0_ = (bitField0_ & ~0x00000020);
              indexesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIndexesFieldBuilder() : null;
            } else {
              indexesBuilder_.addAllMessages(other.indexes_);
            }
          }
        }
        if (other.hasPartialUpdate()) {
          setPartialUpdate(other.getPartialUpdate());
        }
        if (!other.partialUpdateInputColumns_.isEmpty()) {
          if (partialUpdateInputColumns_.isEmpty()) {
            partialUpdateInputColumns_ = other.partialUpdateInputColumns_;
            bitField0_ |= 0x00000080;
          } else {
            ensurePartialUpdateInputColumnsIsMutable();
            partialUpdateInputColumns_.addAll(other.partialUpdateInputColumns_);
          }
          onChanged();
        }
        if (other.hasIsStrictMode()) {
          setIsStrictMode(other.getIsStrictMode());
        }
        if (other.hasAutoIncrementColumn()) {
          autoIncrementColumn_ = other.autoIncrementColumn_;
          bitField0_ |= 0x00000200;
          onChanged();
        }
        if (other.hasTimestampMs()) {
          setTimestampMs(other.getTimestampMs());
        }
        if (other.hasTimezone()) {
          timezone_ = other.timezone_;
          bitField0_ |= 0x00000800;
          onChanged();
        }
        if (other.hasAutoIncrementColumnUniqueId()) {
          setAutoIncrementColumnUniqueId(other.getAutoIncrementColumnUniqueId());
        }
        if (other.hasNanoSeconds()) {
          setNanoSeconds(other.getNanoSeconds());
        }
        if (other.hasUniqueKeyUpdateMode()) {
          setUniqueKeyUpdateMode(other.getUniqueKeyUpdateMode());
        }
        if (other.hasSequenceMapColUniqueId()) {
          setSequenceMapColUniqueId(other.getSequenceMapColUniqueId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasDbId()) {
          return false;
        }
        if (!hasTableId()) {
          return false;
        }
        if (!hasVersion()) {
          return false;
        }
        if (!hasTupleDesc()) {
          return false;
        }
        for (int i = 0; i < getSlotDescsCount(); i++) {
          if (!getSlotDescs(i).isInitialized()) {
            return false;
          }
        }
        if (!getTupleDesc().isInitialized()) {
          return false;
        }
        for (int i = 0; i < getIndexesCount(); i++) {
          if (!getIndexes(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: {
                dbId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                tableId_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                version_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                org.apache.doris.proto.Descriptors.PSlotDescriptor m =
                    input.readMessage(
                        org.apache.doris.proto.Descriptors.PSlotDescriptor.PARSER,
                        extensionRegistry);
                if (slotDescsBuilder_ == null) {
                  ensureSlotDescsIsMutable();
                  slotDescs_.add(m);
                } else {
                  slotDescsBuilder_.addMessage(m);
                }
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getTupleDescFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                org.apache.doris.proto.Descriptors.POlapTableIndexSchema m =
                    input.readMessage(
                        org.apache.doris.proto.Descriptors.POlapTableIndexSchema.PARSER,
                        extensionRegistry);
                if (indexesBuilder_ == null) {
                  ensureIndexesIsMutable();
                  indexes_.add(m);
                } else {
                  indexesBuilder_.addMessage(m);
                }
                break;
              } // case 50
              case 56: {
                partialUpdate_ = input.readBool();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 66: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensurePartialUpdateInputColumnsIsMutable();
                partialUpdateInputColumns_.add(bs);
                break;
              } // case 66
              case 72: {
                isStrictMode_ = input.readBool();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 82: {
                autoIncrementColumn_ = input.readBytes();
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 88: {
                timestampMs_ = input.readInt64();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 98: {
                timezone_ = input.readBytes();
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 104: {
                autoIncrementColumnUniqueId_ = input.readInt32();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                nanoSeconds_ = input.readInt32();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 120: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB tmpValue =
                    org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(15, tmpRaw);
                } else {
                  uniqueKeyUpdateMode_ = tmpRaw;
                  bitField0_ |= 0x00004000;
                }
                break;
              } // case 120
              case 128: {
                sequenceMapColUniqueId_ = input.readInt32();
                bitField0_ |= 0x00008000;
                break;
              } // case 128
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long dbId_ ;
      /**
       * <code>required int64 db_id = 1;</code>
       * @return Whether the dbId field is set.
       */
      @java.lang.Override
      public boolean hasDbId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 db_id = 1;</code>
       * @return The dbId.
       */
      @java.lang.Override
      public long getDbId() {
        return dbId_;
      }
      /**
       * <code>required int64 db_id = 1;</code>
       * @param value The dbId to set.
       * @return This builder for chaining.
       */
      public Builder setDbId(long value) {

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

      private long tableId_ ;
      /**
       * <code>required int64 table_id = 2;</code>
       * @return Whether the tableId field is set.
       */
      @java.lang.Override
      public boolean hasTableId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 table_id = 2;</code>
       * @return The tableId.
       */
      @java.lang.Override
      public long getTableId() {
        return tableId_;
      }
      /**
       * <code>required int64 table_id = 2;</code>
       * @param value The tableId to set.
       * @return This builder for chaining.
       */
      public Builder setTableId(long value) {

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

      private long version_ ;
      /**
       * <code>required int64 version = 3;</code>
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required int64 version = 3;</code>
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * <code>required int64 version = 3;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

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

      private java.util.List<org.apache.doris.proto.Descriptors.PSlotDescriptor> slotDescs_ =
        java.util.Collections.emptyList();
      private void ensureSlotDescsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          slotDescs_ = new java.util.ArrayList<org.apache.doris.proto.Descriptors.PSlotDescriptor>(slotDescs_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Descriptors.PSlotDescriptor, org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder, org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder> slotDescsBuilder_;

      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public java.util.List<org.apache.doris.proto.Descriptors.PSlotDescriptor> getSlotDescsList() {
        if (slotDescsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(slotDescs_);
        } else {
          return slotDescsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public int getSlotDescsCount() {
        if (slotDescsBuilder_ == null) {
          return slotDescs_.size();
        } else {
          return slotDescsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public org.apache.doris.proto.Descriptors.PSlotDescriptor getSlotDescs(int index) {
        if (slotDescsBuilder_ == null) {
          return slotDescs_.get(index);
        } else {
          return slotDescsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder setSlotDescs(
          int index, org.apache.doris.proto.Descriptors.PSlotDescriptor value) {
        if (slotDescsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotDescsIsMutable();
          slotDescs_.set(index, value);
          onChanged();
        } else {
          slotDescsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder setSlotDescs(
          int index, org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder builderForValue) {
        if (slotDescsBuilder_ == null) {
          ensureSlotDescsIsMutable();
          slotDescs_.set(index, builderForValue.build());
          onChanged();
        } else {
          slotDescsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder addSlotDescs(org.apache.doris.proto.Descriptors.PSlotDescriptor value) {
        if (slotDescsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotDescsIsMutable();
          slotDescs_.add(value);
          onChanged();
        } else {
          slotDescsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder addSlotDescs(
          int index, org.apache.doris.proto.Descriptors.PSlotDescriptor value) {
        if (slotDescsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotDescsIsMutable();
          slotDescs_.add(index, value);
          onChanged();
        } else {
          slotDescsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder addSlotDescs(
          org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder builderForValue) {
        if (slotDescsBuilder_ == null) {
          ensureSlotDescsIsMutable();
          slotDescs_.add(builderForValue.build());
          onChanged();
        } else {
          slotDescsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder addSlotDescs(
          int index, org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder builderForValue) {
        if (slotDescsBuilder_ == null) {
          ensureSlotDescsIsMutable();
          slotDescs_.add(index, builderForValue.build());
          onChanged();
        } else {
          slotDescsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder addAllSlotDescs(
          java.lang.Iterable<? extends org.apache.doris.proto.Descriptors.PSlotDescriptor> values) {
        if (slotDescsBuilder_ == null) {
          ensureSlotDescsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, slotDescs_);
          onChanged();
        } else {
          slotDescsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder clearSlotDescs() {
        if (slotDescsBuilder_ == null) {
          slotDescs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          slotDescsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public Builder removeSlotDescs(int index) {
        if (slotDescsBuilder_ == null) {
          ensureSlotDescsIsMutable();
          slotDescs_.remove(index);
          onChanged();
        } else {
          slotDescsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder getSlotDescsBuilder(
          int index) {
        return getSlotDescsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder getSlotDescsOrBuilder(
          int index) {
        if (slotDescsBuilder_ == null) {
          return slotDescs_.get(index);  } else {
          return slotDescsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder> 
           getSlotDescsOrBuilderList() {
        if (slotDescsBuilder_ != null) {
          return slotDescsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(slotDescs_);
        }
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder addSlotDescsBuilder() {
        return getSlotDescsFieldBuilder().addBuilder(
            org.apache.doris.proto.Descriptors.PSlotDescriptor.getDefaultInstance());
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder addSlotDescsBuilder(
          int index) {
        return getSlotDescsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.Descriptors.PSlotDescriptor.getDefaultInstance());
      }
      /**
       * <pre>
       * Logical columns, contain all column that in logical table
       * </pre>
       *
       * <code>repeated .doris.PSlotDescriptor slot_descs = 4;</code>
       */
      public java.util.List<org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder> 
           getSlotDescsBuilderList() {
        return getSlotDescsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Descriptors.PSlotDescriptor, org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder, org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder> 
          getSlotDescsFieldBuilder() {
        if (slotDescsBuilder_ == null) {
          slotDescsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.Descriptors.PSlotDescriptor, org.apache.doris.proto.Descriptors.PSlotDescriptor.Builder, org.apache.doris.proto.Descriptors.PSlotDescriptorOrBuilder>(
                  slotDescs_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          slotDescs_ = null;
        }
        return slotDescsBuilder_;
      }

      private org.apache.doris.proto.Descriptors.PTupleDescriptor tupleDesc_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Descriptors.PTupleDescriptor, org.apache.doris.proto.Descriptors.PTupleDescriptor.Builder, org.apache.doris.proto.Descriptors.PTupleDescriptorOrBuilder> tupleDescBuilder_;
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       * @return Whether the tupleDesc field is set.
       */
      public boolean hasTupleDesc() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       * @return The tupleDesc.
       */
      public org.apache.doris.proto.Descriptors.PTupleDescriptor getTupleDesc() {
        if (tupleDescBuilder_ == null) {
          return tupleDesc_ == null ? org.apache.doris.proto.Descriptors.PTupleDescriptor.getDefaultInstance() : tupleDesc_;
        } else {
          return tupleDescBuilder_.getMessage();
        }
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       */
      public Builder setTupleDesc(org.apache.doris.proto.Descriptors.PTupleDescriptor value) {
        if (tupleDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tupleDesc_ = value;
        } else {
          tupleDescBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       */
      public Builder setTupleDesc(
          org.apache.doris.proto.Descriptors.PTupleDescriptor.Builder builderForValue) {
        if (tupleDescBuilder_ == null) {
          tupleDesc_ = builderForValue.build();
        } else {
          tupleDescBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       */
      public Builder mergeTupleDesc(org.apache.doris.proto.Descriptors.PTupleDescriptor value) {
        if (tupleDescBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            tupleDesc_ != null &&
            tupleDesc_ != org.apache.doris.proto.Descriptors.PTupleDescriptor.getDefaultInstance()) {
            getTupleDescBuilder().mergeFrom(value);
          } else {
            tupleDesc_ = value;
          }
        } else {
          tupleDescBuilder_.mergeFrom(value);
        }
        if (tupleDesc_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       */
      public Builder clearTupleDesc() {
        bitField0_ = (bitField0_ & ~0x00000010);
        tupleDesc_ = null;
        if (tupleDescBuilder_ != null) {
          tupleDescBuilder_.dispose();
          tupleDescBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       */
      public org.apache.doris.proto.Descriptors.PTupleDescriptor.Builder getTupleDescBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getTupleDescFieldBuilder().getBuilder();
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       */
      public org.apache.doris.proto.Descriptors.PTupleDescriptorOrBuilder getTupleDescOrBuilder() {
        if (tupleDescBuilder_ != null) {
          return tupleDescBuilder_.getMessageOrBuilder();
        } else {
          return tupleDesc_ == null ?
              org.apache.doris.proto.Descriptors.PTupleDescriptor.getDefaultInstance() : tupleDesc_;
        }
      }
      /**
       * <code>required .doris.PTupleDescriptor tuple_desc = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Descriptors.PTupleDescriptor, org.apache.doris.proto.Descriptors.PTupleDescriptor.Builder, org.apache.doris.proto.Descriptors.PTupleDescriptorOrBuilder> 
          getTupleDescFieldBuilder() {
        if (tupleDescBuilder_ == null) {
          tupleDescBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Descriptors.PTupleDescriptor, org.apache.doris.proto.Descriptors.PTupleDescriptor.Builder, org.apache.doris.proto.Descriptors.PTupleDescriptorOrBuilder>(
                  getTupleDesc(),
                  getParentForChildren(),
                  isClean());
          tupleDesc_ = null;
        }
        return tupleDescBuilder_;
      }

      private java.util.List<org.apache.doris.proto.Descriptors.POlapTableIndexSchema> indexes_ =
        java.util.Collections.emptyList();
      private void ensureIndexesIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          indexes_ = new java.util.ArrayList<org.apache.doris.proto.Descriptors.POlapTableIndexSchema>(indexes_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Descriptors.POlapTableIndexSchema, org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder, org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder> indexesBuilder_;

      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public java.util.List<org.apache.doris.proto.Descriptors.POlapTableIndexSchema> getIndexesList() {
        if (indexesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(indexes_);
        } else {
          return indexesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public int getIndexesCount() {
        if (indexesBuilder_ == null) {
          return indexes_.size();
        } else {
          return indexesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public org.apache.doris.proto.Descriptors.POlapTableIndexSchema getIndexes(int index) {
        if (indexesBuilder_ == null) {
          return indexes_.get(index);
        } else {
          return indexesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder setIndexes(
          int index, org.apache.doris.proto.Descriptors.POlapTableIndexSchema value) {
        if (indexesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexesIsMutable();
          indexes_.set(index, value);
          onChanged();
        } else {
          indexesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder setIndexes(
          int index, org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder builderForValue) {
        if (indexesBuilder_ == null) {
          ensureIndexesIsMutable();
          indexes_.set(index, builderForValue.build());
          onChanged();
        } else {
          indexesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder addIndexes(org.apache.doris.proto.Descriptors.POlapTableIndexSchema value) {
        if (indexesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexesIsMutable();
          indexes_.add(value);
          onChanged();
        } else {
          indexesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder addIndexes(
          int index, org.apache.doris.proto.Descriptors.POlapTableIndexSchema value) {
        if (indexesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndexesIsMutable();
          indexes_.add(index, value);
          onChanged();
        } else {
          indexesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder addIndexes(
          org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder builderForValue) {
        if (indexesBuilder_ == null) {
          ensureIndexesIsMutable();
          indexes_.add(builderForValue.build());
          onChanged();
        } else {
          indexesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder addIndexes(
          int index, org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder builderForValue) {
        if (indexesBuilder_ == null) {
          ensureIndexesIsMutable();
          indexes_.add(index, builderForValue.build());
          onChanged();
        } else {
          indexesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder addAllIndexes(
          java.lang.Iterable<? extends org.apache.doris.proto.Descriptors.POlapTableIndexSchema> values) {
        if (indexesBuilder_ == null) {
          ensureIndexesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, indexes_);
          onChanged();
        } else {
          indexesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder clearIndexes() {
        if (indexesBuilder_ == null) {
          indexes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          indexesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public Builder removeIndexes(int index) {
        if (indexesBuilder_ == null) {
          ensureIndexesIsMutable();
          indexes_.remove(index);
          onChanged();
        } else {
          indexesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder getIndexesBuilder(
          int index) {
        return getIndexesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder getIndexesOrBuilder(
          int index) {
        if (indexesBuilder_ == null) {
          return indexes_.get(index);  } else {
          return indexesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder> 
           getIndexesOrBuilderList() {
        if (indexesBuilder_ != null) {
          return indexesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(indexes_);
        }
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder addIndexesBuilder() {
        return getIndexesFieldBuilder().addBuilder(
            org.apache.doris.proto.Descriptors.POlapTableIndexSchema.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder addIndexesBuilder(
          int index) {
        return getIndexesFieldBuilder().addBuilder(
            index, org.apache.doris.proto.Descriptors.POlapTableIndexSchema.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.POlapTableIndexSchema indexes = 6;</code>
       */
      public java.util.List<org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder> 
           getIndexesBuilderList() {
        return getIndexesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Descriptors.POlapTableIndexSchema, org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder, org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder> 
          getIndexesFieldBuilder() {
        if (indexesBuilder_ == null) {
          indexesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.Descriptors.POlapTableIndexSchema, org.apache.doris.proto.Descriptors.POlapTableIndexSchema.Builder, org.apache.doris.proto.Descriptors.POlapTableIndexSchemaOrBuilder>(
                  indexes_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          indexes_ = null;
        }
        return indexesBuilder_;
      }

      private boolean partialUpdate_ ;
      /**
       * <pre>
       * deprecated, use unique_key_update_mode
       * </pre>
       *
       * <code>optional bool partial_update = 7 [default = false];</code>
       * @return Whether the partialUpdate field is set.
       */
      @java.lang.Override
      public boolean hasPartialUpdate() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * deprecated, use unique_key_update_mode
       * </pre>
       *
       * <code>optional bool partial_update = 7 [default = false];</code>
       * @return The partialUpdate.
       */
      @java.lang.Override
      public boolean getPartialUpdate() {
        return partialUpdate_;
      }
      /**
       * <pre>
       * deprecated, use unique_key_update_mode
       * </pre>
       *
       * <code>optional bool partial_update = 7 [default = false];</code>
       * @param value The partialUpdate to set.
       * @return This builder for chaining.
       */
      public Builder setPartialUpdate(boolean value) {

        partialUpdate_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deprecated, use unique_key_update_mode
       * </pre>
       *
       * <code>optional bool partial_update = 7 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearPartialUpdate() {
        bitField0_ = (bitField0_ & ~0x00000040);
        partialUpdate_ = 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_ |= 0x00000080;
      }
      /**
       * <code>repeated string partial_update_input_columns = 8;</code>
       * @return A list containing the partialUpdateInputColumns.
       */
      public com.google.protobuf.ProtocolStringList
          getPartialUpdateInputColumnsList() {
        partialUpdateInputColumns_.makeImmutable();
        return partialUpdateInputColumns_;
      }
      /**
       * <code>repeated string partial_update_input_columns = 8;</code>
       * @return The count of partialUpdateInputColumns.
       */
      public int getPartialUpdateInputColumnsCount() {
        return partialUpdateInputColumns_.size();
      }
      /**
       * <code>repeated string partial_update_input_columns = 8;</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 = 8;</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 = 8;</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_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 8;</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_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 8;</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_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartialUpdateInputColumns() {
        partialUpdateInputColumns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000080);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string partial_update_input_columns = 8;</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_ |= 0x00000080;
        onChanged();
        return this;
      }

      private boolean isStrictMode_ ;
      /**
       * <code>optional bool is_strict_mode = 9 [default = false];</code>
       * @return Whether the isStrictMode field is set.
       */
      @java.lang.Override
      public boolean hasIsStrictMode() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional bool is_strict_mode = 9 [default = false];</code>
       * @return The isStrictMode.
       */
      @java.lang.Override
      public boolean getIsStrictMode() {
        return isStrictMode_;
      }
      /**
       * <code>optional bool is_strict_mode = 9 [default = false];</code>
       * @param value The isStrictMode to set.
       * @return This builder for chaining.
       */
      public Builder setIsStrictMode(boolean value) {

        isStrictMode_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_strict_mode = 9 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsStrictMode() {
        bitField0_ = (bitField0_ & ~0x00000100);
        isStrictMode_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object autoIncrementColumn_ = "";
      /**
       * <code>optional string auto_increment_column = 10;</code>
       * @return Whether the autoIncrementColumn field is set.
       */
      public boolean hasAutoIncrementColumn() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional string auto_increment_column = 10;</code>
       * @return The autoIncrementColumn.
       */
      public java.lang.String getAutoIncrementColumn() {
        java.lang.Object ref = autoIncrementColumn_;
        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()) {
            autoIncrementColumn_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string auto_increment_column = 10;</code>
       * @return The bytes for autoIncrementColumn.
       */
      public com.google.protobuf.ByteString
          getAutoIncrementColumnBytes() {
        java.lang.Object ref = autoIncrementColumn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          autoIncrementColumn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string auto_increment_column = 10;</code>
       * @param value The autoIncrementColumn to set.
       * @return This builder for chaining.
       */
      public Builder setAutoIncrementColumn(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        autoIncrementColumn_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional string auto_increment_column = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoIncrementColumn() {
        autoIncrementColumn_ = getDefaultInstance().getAutoIncrementColumn();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * <code>optional string auto_increment_column = 10;</code>
       * @param value The bytes for autoIncrementColumn to set.
       * @return This builder for chaining.
       */
      public Builder setAutoIncrementColumnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        autoIncrementColumn_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }

      private long timestampMs_ ;
      /**
       * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
       * @return Whether the timestampMs field is set.
       */
      @java.lang.Override
      public boolean hasTimestampMs() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
       * @return The timestampMs.
       */
      @java.lang.Override
      public long getTimestampMs() {
        return timestampMs_;
      }
      /**
       * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
       * @param value The timestampMs to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampMs(long value) {

        timestampMs_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 timestamp_ms = 11 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampMs() {
        bitField0_ = (bitField0_ & ~0x00000400);
        timestampMs_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object timezone_ = "";
      /**
       * <code>optional string timezone = 12;</code>
       * @return Whether the timezone field is set.
       */
      public boolean hasTimezone() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional string timezone = 12;</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 = 12;</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 = 12;</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_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional string timezone = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimezone() {
        timezone_ = getDefaultInstance().getTimezone();
        bitField0_ = (bitField0_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * <code>optional string timezone = 12;</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_ |= 0x00000800;
        onChanged();
        return this;
      }

      private int autoIncrementColumnUniqueId_ = -1;
      /**
       * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
       * @return Whether the autoIncrementColumnUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasAutoIncrementColumnUniqueId() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
       * @return The autoIncrementColumnUniqueId.
       */
      @java.lang.Override
      public int getAutoIncrementColumnUniqueId() {
        return autoIncrementColumnUniqueId_;
      }
      /**
       * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
       * @param value The autoIncrementColumnUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setAutoIncrementColumnUniqueId(int value) {

        autoIncrementColumnUniqueId_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 auto_increment_column_unique_id = 13 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoIncrementColumnUniqueId() {
        bitField0_ = (bitField0_ & ~0x00001000);
        autoIncrementColumnUniqueId_ = -1;
        onChanged();
        return this;
      }

      private int nanoSeconds_ ;
      /**
       * <code>optional int32 nano_seconds = 14 [default = 0];</code>
       * @return Whether the nanoSeconds field is set.
       */
      @java.lang.Override
      public boolean hasNanoSeconds() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional int32 nano_seconds = 14 [default = 0];</code>
       * @return The nanoSeconds.
       */
      @java.lang.Override
      public int getNanoSeconds() {
        return nanoSeconds_;
      }
      /**
       * <code>optional int32 nano_seconds = 14 [default = 0];</code>
       * @param value The nanoSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setNanoSeconds(int value) {

        nanoSeconds_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 nano_seconds = 14 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearNanoSeconds() {
        bitField0_ = (bitField0_ & ~0x00002000);
        nanoSeconds_ = 0;
        onChanged();
        return this;
      }

      private int uniqueKeyUpdateMode_ = 0;
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
       * @return Whether the uniqueKeyUpdateMode field is set.
       */
      @java.lang.Override public boolean hasUniqueKeyUpdateMode() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
       * @return The uniqueKeyUpdateMode.
       */
      @java.lang.Override
      public org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB getUniqueKeyUpdateMode() {
        org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB result = org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.forNumber(uniqueKeyUpdateMode_);
        return result == null ? org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB.UPSERT : result;
      }
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
       * @param value The uniqueKeyUpdateMode to set.
       * @return This builder for chaining.
       */
      public Builder setUniqueKeyUpdateMode(org.apache.doris.proto.OlapFile.UniqueKeyUpdateModePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00004000;
        uniqueKeyUpdateMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.UniqueKeyUpdateModePB unique_key_update_mode = 15 [default = UPSERT];</code>
       * @return This builder for chaining.
       */
      public Builder clearUniqueKeyUpdateMode() {
        bitField0_ = (bitField0_ & ~0x00004000);
        uniqueKeyUpdateMode_ = 0;
        onChanged();
        return this;
      }

      private int sequenceMapColUniqueId_ = -1;
      /**
       * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
       * @return Whether the sequenceMapColUniqueId field is set.
       */
      @java.lang.Override
      public boolean hasSequenceMapColUniqueId() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
       * @return The sequenceMapColUniqueId.
       */
      @java.lang.Override
      public int getSequenceMapColUniqueId() {
        return sequenceMapColUniqueId_;
      }
      /**
       * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
       * @param value The sequenceMapColUniqueId to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceMapColUniqueId(int value) {

        sequenceMapColUniqueId_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 sequence_map_col_unique_id = 16 [default = -1];</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceMapColUniqueId() {
        bitField0_ = (bitField0_ & ~0x00008000);
        sequenceMapColUniqueId_ = -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.POlapTableSchemaParam)
    }

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

    public static org.apache.doris.proto.Descriptors.POlapTableSchemaParam getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PSlotDescriptor_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PSlotDescriptor_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PTupleDescriptor_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PTupleDescriptor_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_POlapTableIndexSchema_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_POlapTableIndexSchema_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_POlapTableSchemaParam_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_POlapTableSchemaParam_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\021descriptors.proto\022\005doris\032\013types.proto\032" +
      "\017olap_file.proto\"\336\002\n\017PSlotDescriptor\022\n\n\002" +
      "id\030\001 \002(\005\022\016\n\006parent\030\002 \002(\005\022#\n\tslot_type\030\003 " +
      "\002(\0132\020.doris.PTypeDesc\022\022\n\ncolumn_pos\030\004 \002(" +
      "\005\022\023\n\013byte_offset\030\005 \002(\005\022\033\n\023null_indicator" +
      "_byte\030\006 \002(\005\022\032\n\022null_indicator_bit\030\007 \002(\005\022" +
      "\020\n\010col_name\030\010 \002(\t\022\020\n\010slot_idx\030\t \002(\005\022\027\n\017i" +
      "s_materialized\030\n \001(\010\022\025\n\rcol_unique_id\030\013 " +
      "\001(\005\022\016\n\006is_key\030\014 \001(\010\022\031\n\021is_auto_increment" +
      "\030\r \001(\010\022\023\n\010col_type\030\016 \001(\005:\0010\022\024\n\014column_pa" +
      "ths\030\017 \003(\t\"s\n\020PTupleDescriptor\022\n\n\002id\030\001 \002(" +
      "\005\022\021\n\tbyte_size\030\002 \002(\005\022\026\n\016num_null_bytes\030\003" +
      " \002(\005\022\020\n\010table_id\030\004 \001(\003\022\026\n\016num_null_slots" +
      "\030\005 \001(\005\"\234\001\n\025POlapTableIndexSchema\022\n\n\002id\030\001" +
      " \002(\003\022\017\n\007columns\030\002 \003(\t\022\023\n\013schema_hash\030\003 \002" +
      "(\005\022%\n\014columns_desc\030\004 \003(\0132\017.doris.ColumnP" +
      "B\022*\n\014indexes_desc\030\005 \003(\0132\024.doris.TabletIn" +
      "dexPB\"\263\004\n\025POlapTableSchemaParam\022\r\n\005db_id" +
      "\030\001 \002(\003\022\020\n\010table_id\030\002 \002(\003\022\017\n\007version\030\003 \002(" +
      "\003\022*\n\nslot_descs\030\004 \003(\0132\026.doris.PSlotDescr" +
      "iptor\022+\n\ntuple_desc\030\005 \002(\0132\027.doris.PTuple" +
      "Descriptor\022-\n\007indexes\030\006 \003(\0132\034.doris.POla" +
      "pTableIndexSchema\022\035\n\016partial_update\030\007 \001(" +
      "\010:\005false\022$\n\034partial_update_input_columns" +
      "\030\010 \003(\t\022\035\n\016is_strict_mode\030\t \001(\010:\005false\022\035\n" +
      "\025auto_increment_column\030\n \001(\t\022\027\n\014timestam" +
      "p_ms\030\013 \001(\003:\0010\022\020\n\010timezone\030\014 \001(\t\022+\n\037auto_" +
      "increment_column_unique_id\030\r \001(\005:\002-1\022\027\n\014" +
      "nano_seconds\030\016 \001(\005:\0010\022D\n\026unique_key_upda" +
      "te_mode\030\017 \001(\0162\034.doris.UniqueKeyUpdateMod" +
      "ePB:\006UPSERT\022&\n\032sequence_map_col_unique_i" +
      "d\030\020 \001(\005:\002-1B\030\n\026org.apache.doris.proto"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          org.apache.doris.proto.Types.getDescriptor(),
          org.apache.doris.proto.OlapFile.getDescriptor(),
        });
    internal_static_doris_PSlotDescriptor_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_doris_PSlotDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PSlotDescriptor_descriptor,
        new java.lang.String[] { "Id", "Parent", "SlotType", "ColumnPos", "ByteOffset", "NullIndicatorByte", "NullIndicatorBit", "ColName", "SlotIdx", "IsMaterialized", "ColUniqueId", "IsKey", "IsAutoIncrement", "ColType", "ColumnPaths", });
    internal_static_doris_PTupleDescriptor_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_doris_PTupleDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PTupleDescriptor_descriptor,
        new java.lang.String[] { "Id", "ByteSize", "NumNullBytes", "TableId", "NumNullSlots", });
    internal_static_doris_POlapTableIndexSchema_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_doris_POlapTableIndexSchema_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_POlapTableIndexSchema_descriptor,
        new java.lang.String[] { "Id", "Columns", "SchemaHash", "ColumnsDesc", "IndexesDesc", });
    internal_static_doris_POlapTableSchemaParam_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_doris_POlapTableSchemaParam_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_POlapTableSchemaParam_descriptor,
        new java.lang.String[] { "DbId", "TableId", "Version", "SlotDescs", "TupleDesc", "Indexes", "PartialUpdate", "PartialUpdateInputColumns", "IsStrictMode", "AutoIncrementColumn", "TimestampMs", "Timezone", "AutoIncrementColumnUniqueId", "NanoSeconds", "UniqueKeyUpdateMode", "SequenceMapColUniqueId", });
    org.apache.doris.proto.Types.getDescriptor();
    org.apache.doris.proto.OlapFile.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}