Data.java

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

package org.apache.doris.proto;

public final class Data {
  private Data() {}
  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 PNodeStatisticsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:doris.PNodeStatistics)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 node_id = 1;</code>
     * @return Whether the nodeId field is set.
     */
    boolean hasNodeId();
    /**
     * <code>required int64 node_id = 1;</code>
     * @return The nodeId.
     */
    long getNodeId();

    /**
     * <code>optional int64 peak_memory_bytes = 2;</code>
     * @return Whether the peakMemoryBytes field is set.
     */
    boolean hasPeakMemoryBytes();
    /**
     * <code>optional int64 peak_memory_bytes = 2;</code>
     * @return The peakMemoryBytes.
     */
    long getPeakMemoryBytes();
  }
  /**
   * Protobuf type {@code doris.PNodeStatistics}
   */
  public static final class PNodeStatistics extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PNodeStatistics)
      PNodeStatisticsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PNodeStatistics.newBuilder() to construct.
    private PNodeStatistics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PNodeStatistics() {
    }

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

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

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

    private int bitField0_;
    public static final int NODE_ID_FIELD_NUMBER = 1;
    private long nodeId_ = 0L;
    /**
     * <code>required int64 node_id = 1;</code>
     * @return Whether the nodeId field is set.
     */
    @java.lang.Override
    public boolean hasNodeId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 node_id = 1;</code>
     * @return The nodeId.
     */
    @java.lang.Override
    public long getNodeId() {
      return nodeId_;
    }

    public static final int PEAK_MEMORY_BYTES_FIELD_NUMBER = 2;
    private long peakMemoryBytes_ = 0L;
    /**
     * <code>optional int64 peak_memory_bytes = 2;</code>
     * @return Whether the peakMemoryBytes field is set.
     */
    @java.lang.Override
    public boolean hasPeakMemoryBytes() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 peak_memory_bytes = 2;</code>
     * @return The peakMemoryBytes.
     */
    @java.lang.Override
    public long getPeakMemoryBytes() {
      return peakMemoryBytes_;
    }

    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 (!hasNodeId()) {
        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, nodeId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, peakMemoryBytes_);
      }
      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, nodeId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, peakMemoryBytes_);
      }
      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.Data.PNodeStatistics)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.Data.PNodeStatistics other = (org.apache.doris.proto.Data.PNodeStatistics) obj;

      if (hasNodeId() != other.hasNodeId()) return false;
      if (hasNodeId()) {
        if (getNodeId()
            != other.getNodeId()) return false;
      }
      if (hasPeakMemoryBytes() != other.hasPeakMemoryBytes()) return false;
      if (hasPeakMemoryBytes()) {
        if (getPeakMemoryBytes()
            != other.getPeakMemoryBytes()) 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 (hasNodeId()) {
        hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNodeId());
      }
      if (hasPeakMemoryBytes()) {
        hash = (37 * hash) + PEAK_MEMORY_BYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPeakMemoryBytes());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

      // Construct using org.apache.doris.proto.Data.PNodeStatistics.newBuilder()
      private Builder() {

      }

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

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

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

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

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

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

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

      public Builder mergeFrom(org.apache.doris.proto.Data.PNodeStatistics other) {
        if (other == org.apache.doris.proto.Data.PNodeStatistics.getDefaultInstance()) return this;
        if (other.hasNodeId()) {
          setNodeId(other.getNodeId());
        }
        if (other.hasPeakMemoryBytes()) {
          setPeakMemoryBytes(other.getPeakMemoryBytes());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasNodeId()) {
          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: {
                nodeId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                peakMemoryBytes_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long nodeId_ ;
      /**
       * <code>required int64 node_id = 1;</code>
       * @return Whether the nodeId field is set.
       */
      @java.lang.Override
      public boolean hasNodeId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 node_id = 1;</code>
       * @return The nodeId.
       */
      @java.lang.Override
      public long getNodeId() {
        return nodeId_;
      }
      /**
       * <code>required int64 node_id = 1;</code>
       * @param value The nodeId to set.
       * @return This builder for chaining.
       */
      public Builder setNodeId(long value) {

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

      private long peakMemoryBytes_ ;
      /**
       * <code>optional int64 peak_memory_bytes = 2;</code>
       * @return Whether the peakMemoryBytes field is set.
       */
      @java.lang.Override
      public boolean hasPeakMemoryBytes() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 peak_memory_bytes = 2;</code>
       * @return The peakMemoryBytes.
       */
      @java.lang.Override
      public long getPeakMemoryBytes() {
        return peakMemoryBytes_;
      }
      /**
       * <code>optional int64 peak_memory_bytes = 2;</code>
       * @param value The peakMemoryBytes to set.
       * @return This builder for chaining.
       */
      public Builder setPeakMemoryBytes(long value) {

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

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


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

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

    public static org.apache.doris.proto.Data.PNodeStatistics getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

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

    /**
     * <code>optional int64 scan_rows = 1;</code>
     * @return Whether the scanRows field is set.
     */
    boolean hasScanRows();
    /**
     * <code>optional int64 scan_rows = 1;</code>
     * @return The scanRows.
     */
    long getScanRows();

    /**
     * <code>optional int64 scan_bytes = 2;</code>
     * @return Whether the scanBytes field is set.
     */
    boolean hasScanBytes();
    /**
     * <code>optional int64 scan_bytes = 2;</code>
     * @return The scanBytes.
     */
    long getScanBytes();

    /**
     * <code>optional int64 returned_rows = 3;</code>
     * @return Whether the returnedRows field is set.
     */
    boolean hasReturnedRows();
    /**
     * <code>optional int64 returned_rows = 3;</code>
     * @return The returnedRows.
     */
    long getReturnedRows();

    /**
     * <code>optional int64 cpu_ms = 4;</code>
     * @return Whether the cpuMs field is set.
     */
    boolean hasCpuMs();
    /**
     * <code>optional int64 cpu_ms = 4;</code>
     * @return The cpuMs.
     */
    long getCpuMs();

    /**
     * <code>optional int64 max_peak_memory_bytes = 5;</code>
     * @return Whether the maxPeakMemoryBytes field is set.
     */
    boolean hasMaxPeakMemoryBytes();
    /**
     * <code>optional int64 max_peak_memory_bytes = 5;</code>
     * @return The maxPeakMemoryBytes.
     */
    long getMaxPeakMemoryBytes();

    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    java.util.List<org.apache.doris.proto.Data.PNodeStatistics> 
        getNodesStatisticsList();
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    org.apache.doris.proto.Data.PNodeStatistics getNodesStatistics(int index);
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    int getNodesStatisticsCount();
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    java.util.List<? extends org.apache.doris.proto.Data.PNodeStatisticsOrBuilder> 
        getNodesStatisticsOrBuilderList();
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    org.apache.doris.proto.Data.PNodeStatisticsOrBuilder getNodesStatisticsOrBuilder(
        int index);

    /**
     * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
     * @return Whether the scanBytesFromLocalStorage field is set.
     */
    boolean hasScanBytesFromLocalStorage();
    /**
     * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
     * @return The scanBytesFromLocalStorage.
     */
    long getScanBytesFromLocalStorage();

    /**
     * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
     * @return Whether the scanBytesFromRemoteStorage field is set.
     */
    boolean hasScanBytesFromRemoteStorage();
    /**
     * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
     * @return The scanBytesFromRemoteStorage.
     */
    long getScanBytesFromRemoteStorage();

    /**
     * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
     * @return Whether the spillWriteBytesToLocalStorage field is set.
     */
    boolean hasSpillWriteBytesToLocalStorage();
    /**
     * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
     * @return The spillWriteBytesToLocalStorage.
     */
    long getSpillWriteBytesToLocalStorage();

    /**
     * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
     * @return Whether the spillReadBytesFromLocalStorage field is set.
     */
    boolean hasSpillReadBytesFromLocalStorage();
    /**
     * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
     * @return The spillReadBytesFromLocalStorage.
     */
    long getSpillReadBytesFromLocalStorage();
  }
  /**
   * Protobuf type {@code doris.PQueryStatistics}
   */
  public static final class PQueryStatistics extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PQueryStatistics)
      PQueryStatisticsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PQueryStatistics.newBuilder() to construct.
    private PQueryStatistics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PQueryStatistics() {
      nodesStatistics_ = java.util.Collections.emptyList();
    }

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

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

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

    private int bitField0_;
    public static final int SCAN_ROWS_FIELD_NUMBER = 1;
    private long scanRows_ = 0L;
    /**
     * <code>optional int64 scan_rows = 1;</code>
     * @return Whether the scanRows field is set.
     */
    @java.lang.Override
    public boolean hasScanRows() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 scan_rows = 1;</code>
     * @return The scanRows.
     */
    @java.lang.Override
    public long getScanRows() {
      return scanRows_;
    }

    public static final int SCAN_BYTES_FIELD_NUMBER = 2;
    private long scanBytes_ = 0L;
    /**
     * <code>optional int64 scan_bytes = 2;</code>
     * @return Whether the scanBytes field is set.
     */
    @java.lang.Override
    public boolean hasScanBytes() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 scan_bytes = 2;</code>
     * @return The scanBytes.
     */
    @java.lang.Override
    public long getScanBytes() {
      return scanBytes_;
    }

    public static final int RETURNED_ROWS_FIELD_NUMBER = 3;
    private long returnedRows_ = 0L;
    /**
     * <code>optional int64 returned_rows = 3;</code>
     * @return Whether the returnedRows field is set.
     */
    @java.lang.Override
    public boolean hasReturnedRows() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int64 returned_rows = 3;</code>
     * @return The returnedRows.
     */
    @java.lang.Override
    public long getReturnedRows() {
      return returnedRows_;
    }

    public static final int CPU_MS_FIELD_NUMBER = 4;
    private long cpuMs_ = 0L;
    /**
     * <code>optional int64 cpu_ms = 4;</code>
     * @return Whether the cpuMs field is set.
     */
    @java.lang.Override
    public boolean hasCpuMs() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int64 cpu_ms = 4;</code>
     * @return The cpuMs.
     */
    @java.lang.Override
    public long getCpuMs() {
      return cpuMs_;
    }

    public static final int MAX_PEAK_MEMORY_BYTES_FIELD_NUMBER = 5;
    private long maxPeakMemoryBytes_ = 0L;
    /**
     * <code>optional int64 max_peak_memory_bytes = 5;</code>
     * @return Whether the maxPeakMemoryBytes field is set.
     */
    @java.lang.Override
    public boolean hasMaxPeakMemoryBytes() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int64 max_peak_memory_bytes = 5;</code>
     * @return The maxPeakMemoryBytes.
     */
    @java.lang.Override
    public long getMaxPeakMemoryBytes() {
      return maxPeakMemoryBytes_;
    }

    public static final int NODES_STATISTICS_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.Data.PNodeStatistics> nodesStatistics_;
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.Data.PNodeStatistics> getNodesStatisticsList() {
      return nodesStatistics_;
    }
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.Data.PNodeStatisticsOrBuilder> 
        getNodesStatisticsOrBuilderList() {
      return nodesStatistics_;
    }
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    @java.lang.Override
    public int getNodesStatisticsCount() {
      return nodesStatistics_.size();
    }
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PNodeStatistics getNodesStatistics(int index) {
      return nodesStatistics_.get(index);
    }
    /**
     * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PNodeStatisticsOrBuilder getNodesStatisticsOrBuilder(
        int index) {
      return nodesStatistics_.get(index);
    }

    public static final int SCAN_BYTES_FROM_LOCAL_STORAGE_FIELD_NUMBER = 7;
    private long scanBytesFromLocalStorage_ = 0L;
    /**
     * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
     * @return Whether the scanBytesFromLocalStorage field is set.
     */
    @java.lang.Override
    public boolean hasScanBytesFromLocalStorage() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
     * @return The scanBytesFromLocalStorage.
     */
    @java.lang.Override
    public long getScanBytesFromLocalStorage() {
      return scanBytesFromLocalStorage_;
    }

    public static final int SCAN_BYTES_FROM_REMOTE_STORAGE_FIELD_NUMBER = 8;
    private long scanBytesFromRemoteStorage_ = 0L;
    /**
     * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
     * @return Whether the scanBytesFromRemoteStorage field is set.
     */
    @java.lang.Override
    public boolean hasScanBytesFromRemoteStorage() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
     * @return The scanBytesFromRemoteStorage.
     */
    @java.lang.Override
    public long getScanBytesFromRemoteStorage() {
      return scanBytesFromRemoteStorage_;
    }

    public static final int SPILL_WRITE_BYTES_TO_LOCAL_STORAGE_FIELD_NUMBER = 9;
    private long spillWriteBytesToLocalStorage_ = 0L;
    /**
     * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
     * @return Whether the spillWriteBytesToLocalStorage field is set.
     */
    @java.lang.Override
    public boolean hasSpillWriteBytesToLocalStorage() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
     * @return The spillWriteBytesToLocalStorage.
     */
    @java.lang.Override
    public long getSpillWriteBytesToLocalStorage() {
      return spillWriteBytesToLocalStorage_;
    }

    public static final int SPILL_READ_BYTES_FROM_LOCAL_STORAGE_FIELD_NUMBER = 10;
    private long spillReadBytesFromLocalStorage_ = 0L;
    /**
     * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
     * @return Whether the spillReadBytesFromLocalStorage field is set.
     */
    @java.lang.Override
    public boolean hasSpillReadBytesFromLocalStorage() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
     * @return The spillReadBytesFromLocalStorage.
     */
    @java.lang.Override
    public long getSpillReadBytesFromLocalStorage() {
      return spillReadBytesFromLocalStorage_;
    }

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

      for (int i = 0; i < getNodesStatisticsCount(); i++) {
        if (!getNodesStatistics(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, scanRows_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, scanBytes_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, returnedRows_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(4, cpuMs_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt64(5, maxPeakMemoryBytes_);
      }
      for (int i = 0; i < nodesStatistics_.size(); i++) {
        output.writeMessage(6, nodesStatistics_.get(i));
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt64(7, scanBytesFromLocalStorage_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt64(8, scanBytesFromRemoteStorage_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt64(9, spillWriteBytesToLocalStorage_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt64(10, spillReadBytesFromLocalStorage_);
      }
      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, scanRows_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, scanBytes_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, returnedRows_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, cpuMs_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, maxPeakMemoryBytes_);
      }
      for (int i = 0; i < nodesStatistics_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, nodesStatistics_.get(i));
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, scanBytesFromLocalStorage_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, scanBytesFromRemoteStorage_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, spillWriteBytesToLocalStorage_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, spillReadBytesFromLocalStorage_);
      }
      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.Data.PQueryStatistics)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.Data.PQueryStatistics other = (org.apache.doris.proto.Data.PQueryStatistics) obj;

      if (hasScanRows() != other.hasScanRows()) return false;
      if (hasScanRows()) {
        if (getScanRows()
            != other.getScanRows()) return false;
      }
      if (hasScanBytes() != other.hasScanBytes()) return false;
      if (hasScanBytes()) {
        if (getScanBytes()
            != other.getScanBytes()) return false;
      }
      if (hasReturnedRows() != other.hasReturnedRows()) return false;
      if (hasReturnedRows()) {
        if (getReturnedRows()
            != other.getReturnedRows()) return false;
      }
      if (hasCpuMs() != other.hasCpuMs()) return false;
      if (hasCpuMs()) {
        if (getCpuMs()
            != other.getCpuMs()) return false;
      }
      if (hasMaxPeakMemoryBytes() != other.hasMaxPeakMemoryBytes()) return false;
      if (hasMaxPeakMemoryBytes()) {
        if (getMaxPeakMemoryBytes()
            != other.getMaxPeakMemoryBytes()) return false;
      }
      if (!getNodesStatisticsList()
          .equals(other.getNodesStatisticsList())) return false;
      if (hasScanBytesFromLocalStorage() != other.hasScanBytesFromLocalStorage()) return false;
      if (hasScanBytesFromLocalStorage()) {
        if (getScanBytesFromLocalStorage()
            != other.getScanBytesFromLocalStorage()) return false;
      }
      if (hasScanBytesFromRemoteStorage() != other.hasScanBytesFromRemoteStorage()) return false;
      if (hasScanBytesFromRemoteStorage()) {
        if (getScanBytesFromRemoteStorage()
            != other.getScanBytesFromRemoteStorage()) return false;
      }
      if (hasSpillWriteBytesToLocalStorage() != other.hasSpillWriteBytesToLocalStorage()) return false;
      if (hasSpillWriteBytesToLocalStorage()) {
        if (getSpillWriteBytesToLocalStorage()
            != other.getSpillWriteBytesToLocalStorage()) return false;
      }
      if (hasSpillReadBytesFromLocalStorage() != other.hasSpillReadBytesFromLocalStorage()) return false;
      if (hasSpillReadBytesFromLocalStorage()) {
        if (getSpillReadBytesFromLocalStorage()
            != other.getSpillReadBytesFromLocalStorage()) 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 (hasScanRows()) {
        hash = (37 * hash) + SCAN_ROWS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getScanRows());
      }
      if (hasScanBytes()) {
        hash = (37 * hash) + SCAN_BYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getScanBytes());
      }
      if (hasReturnedRows()) {
        hash = (37 * hash) + RETURNED_ROWS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReturnedRows());
      }
      if (hasCpuMs()) {
        hash = (37 * hash) + CPU_MS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCpuMs());
      }
      if (hasMaxPeakMemoryBytes()) {
        hash = (37 * hash) + MAX_PEAK_MEMORY_BYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMaxPeakMemoryBytes());
      }
      if (getNodesStatisticsCount() > 0) {
        hash = (37 * hash) + NODES_STATISTICS_FIELD_NUMBER;
        hash = (53 * hash) + getNodesStatisticsList().hashCode();
      }
      if (hasScanBytesFromLocalStorage()) {
        hash = (37 * hash) + SCAN_BYTES_FROM_LOCAL_STORAGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getScanBytesFromLocalStorage());
      }
      if (hasScanBytesFromRemoteStorage()) {
        hash = (37 * hash) + SCAN_BYTES_FROM_REMOTE_STORAGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getScanBytesFromRemoteStorage());
      }
      if (hasSpillWriteBytesToLocalStorage()) {
        hash = (37 * hash) + SPILL_WRITE_BYTES_TO_LOCAL_STORAGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSpillWriteBytesToLocalStorage());
      }
      if (hasSpillReadBytesFromLocalStorage()) {
        hash = (37 * hash) + SPILL_READ_BYTES_FROM_LOCAL_STORAGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSpillReadBytesFromLocalStorage());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

      // Construct using org.apache.doris.proto.Data.PQueryStatistics.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        scanRows_ = 0L;
        scanBytes_ = 0L;
        returnedRows_ = 0L;
        cpuMs_ = 0L;
        maxPeakMemoryBytes_ = 0L;
        if (nodesStatisticsBuilder_ == null) {
          nodesStatistics_ = java.util.Collections.emptyList();
        } else {
          nodesStatistics_ = null;
          nodesStatisticsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        scanBytesFromLocalStorage_ = 0L;
        scanBytesFromRemoteStorage_ = 0L;
        spillWriteBytesToLocalStorage_ = 0L;
        spillReadBytesFromLocalStorage_ = 0L;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.Data.PQueryStatistics result) {
        if (nodesStatisticsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            nodesStatistics_ = java.util.Collections.unmodifiableList(nodesStatistics_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.nodesStatistics_ = nodesStatistics_;
        } else {
          result.nodesStatistics_ = nodesStatisticsBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.Data.PQueryStatistics result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.scanRows_ = scanRows_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.scanBytes_ = scanBytes_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.returnedRows_ = returnedRows_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.cpuMs_ = cpuMs_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.maxPeakMemoryBytes_ = maxPeakMemoryBytes_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.scanBytesFromLocalStorage_ = scanBytesFromLocalStorage_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.scanBytesFromRemoteStorage_ = scanBytesFromRemoteStorage_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.spillWriteBytesToLocalStorage_ = spillWriteBytesToLocalStorage_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.spillReadBytesFromLocalStorage_ = spillReadBytesFromLocalStorage_;
          to_bitField0_ |= 0x00000100;
        }
        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.Data.PQueryStatistics) {
          return mergeFrom((org.apache.doris.proto.Data.PQueryStatistics)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.Data.PQueryStatistics other) {
        if (other == org.apache.doris.proto.Data.PQueryStatistics.getDefaultInstance()) return this;
        if (other.hasScanRows()) {
          setScanRows(other.getScanRows());
        }
        if (other.hasScanBytes()) {
          setScanBytes(other.getScanBytes());
        }
        if (other.hasReturnedRows()) {
          setReturnedRows(other.getReturnedRows());
        }
        if (other.hasCpuMs()) {
          setCpuMs(other.getCpuMs());
        }
        if (other.hasMaxPeakMemoryBytes()) {
          setMaxPeakMemoryBytes(other.getMaxPeakMemoryBytes());
        }
        if (nodesStatisticsBuilder_ == null) {
          if (!other.nodesStatistics_.isEmpty()) {
            if (nodesStatistics_.isEmpty()) {
              nodesStatistics_ = other.nodesStatistics_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureNodesStatisticsIsMutable();
              nodesStatistics_.addAll(other.nodesStatistics_);
            }
            onChanged();
          }
        } else {
          if (!other.nodesStatistics_.isEmpty()) {
            if (nodesStatisticsBuilder_.isEmpty()) {
              nodesStatisticsBuilder_.dispose();
              nodesStatisticsBuilder_ = null;
              nodesStatistics_ = other.nodesStatistics_;
              bitField0_ = (bitField0_ & ~0x00000020);
              nodesStatisticsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getNodesStatisticsFieldBuilder() : null;
            } else {
              nodesStatisticsBuilder_.addAllMessages(other.nodesStatistics_);
            }
          }
        }
        if (other.hasScanBytesFromLocalStorage()) {
          setScanBytesFromLocalStorage(other.getScanBytesFromLocalStorage());
        }
        if (other.hasScanBytesFromRemoteStorage()) {
          setScanBytesFromRemoteStorage(other.getScanBytesFromRemoteStorage());
        }
        if (other.hasSpillWriteBytesToLocalStorage()) {
          setSpillWriteBytesToLocalStorage(other.getSpillWriteBytesToLocalStorage());
        }
        if (other.hasSpillReadBytesFromLocalStorage()) {
          setSpillReadBytesFromLocalStorage(other.getSpillReadBytesFromLocalStorage());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getNodesStatisticsCount(); i++) {
          if (!getNodesStatistics(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: {
                scanRows_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                scanBytes_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                returnedRows_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                cpuMs_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                maxPeakMemoryBytes_ = input.readInt64();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                org.apache.doris.proto.Data.PNodeStatistics m =
                    input.readMessage(
                        org.apache.doris.proto.Data.PNodeStatistics.PARSER,
                        extensionRegistry);
                if (nodesStatisticsBuilder_ == null) {
                  ensureNodesStatisticsIsMutable();
                  nodesStatistics_.add(m);
                } else {
                  nodesStatisticsBuilder_.addMessage(m);
                }
                break;
              } // case 50
              case 56: {
                scanBytesFromLocalStorage_ = input.readInt64();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                scanBytesFromRemoteStorage_ = input.readInt64();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                spillWriteBytesToLocalStorage_ = input.readInt64();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                spillReadBytesFromLocalStorage_ = input.readInt64();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              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 scanRows_ ;
      /**
       * <code>optional int64 scan_rows = 1;</code>
       * @return Whether the scanRows field is set.
       */
      @java.lang.Override
      public boolean hasScanRows() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 scan_rows = 1;</code>
       * @return The scanRows.
       */
      @java.lang.Override
      public long getScanRows() {
        return scanRows_;
      }
      /**
       * <code>optional int64 scan_rows = 1;</code>
       * @param value The scanRows to set.
       * @return This builder for chaining.
       */
      public Builder setScanRows(long value) {

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

      private long scanBytes_ ;
      /**
       * <code>optional int64 scan_bytes = 2;</code>
       * @return Whether the scanBytes field is set.
       */
      @java.lang.Override
      public boolean hasScanBytes() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 scan_bytes = 2;</code>
       * @return The scanBytes.
       */
      @java.lang.Override
      public long getScanBytes() {
        return scanBytes_;
      }
      /**
       * <code>optional int64 scan_bytes = 2;</code>
       * @param value The scanBytes to set.
       * @return This builder for chaining.
       */
      public Builder setScanBytes(long value) {

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

      private long returnedRows_ ;
      /**
       * <code>optional int64 returned_rows = 3;</code>
       * @return Whether the returnedRows field is set.
       */
      @java.lang.Override
      public boolean hasReturnedRows() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 returned_rows = 3;</code>
       * @return The returnedRows.
       */
      @java.lang.Override
      public long getReturnedRows() {
        return returnedRows_;
      }
      /**
       * <code>optional int64 returned_rows = 3;</code>
       * @param value The returnedRows to set.
       * @return This builder for chaining.
       */
      public Builder setReturnedRows(long value) {

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

      private long cpuMs_ ;
      /**
       * <code>optional int64 cpu_ms = 4;</code>
       * @return Whether the cpuMs field is set.
       */
      @java.lang.Override
      public boolean hasCpuMs() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int64 cpu_ms = 4;</code>
       * @return The cpuMs.
       */
      @java.lang.Override
      public long getCpuMs() {
        return cpuMs_;
      }
      /**
       * <code>optional int64 cpu_ms = 4;</code>
       * @param value The cpuMs to set.
       * @return This builder for chaining.
       */
      public Builder setCpuMs(long value) {

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

      private long maxPeakMemoryBytes_ ;
      /**
       * <code>optional int64 max_peak_memory_bytes = 5;</code>
       * @return Whether the maxPeakMemoryBytes field is set.
       */
      @java.lang.Override
      public boolean hasMaxPeakMemoryBytes() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int64 max_peak_memory_bytes = 5;</code>
       * @return The maxPeakMemoryBytes.
       */
      @java.lang.Override
      public long getMaxPeakMemoryBytes() {
        return maxPeakMemoryBytes_;
      }
      /**
       * <code>optional int64 max_peak_memory_bytes = 5;</code>
       * @param value The maxPeakMemoryBytes to set.
       * @return This builder for chaining.
       */
      public Builder setMaxPeakMemoryBytes(long value) {

        maxPeakMemoryBytes_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 max_peak_memory_bytes = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxPeakMemoryBytes() {
        bitField0_ = (bitField0_ & ~0x00000010);
        maxPeakMemoryBytes_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<org.apache.doris.proto.Data.PNodeStatistics> nodesStatistics_ =
        java.util.Collections.emptyList();
      private void ensureNodesStatisticsIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          nodesStatistics_ = new java.util.ArrayList<org.apache.doris.proto.Data.PNodeStatistics>(nodesStatistics_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Data.PNodeStatistics, org.apache.doris.proto.Data.PNodeStatistics.Builder, org.apache.doris.proto.Data.PNodeStatisticsOrBuilder> nodesStatisticsBuilder_;

      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public java.util.List<org.apache.doris.proto.Data.PNodeStatistics> getNodesStatisticsList() {
        if (nodesStatisticsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(nodesStatistics_);
        } else {
          return nodesStatisticsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public int getNodesStatisticsCount() {
        if (nodesStatisticsBuilder_ == null) {
          return nodesStatistics_.size();
        } else {
          return nodesStatisticsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public org.apache.doris.proto.Data.PNodeStatistics getNodesStatistics(int index) {
        if (nodesStatisticsBuilder_ == null) {
          return nodesStatistics_.get(index);
        } else {
          return nodesStatisticsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder setNodesStatistics(
          int index, org.apache.doris.proto.Data.PNodeStatistics value) {
        if (nodesStatisticsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodesStatisticsIsMutable();
          nodesStatistics_.set(index, value);
          onChanged();
        } else {
          nodesStatisticsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder setNodesStatistics(
          int index, org.apache.doris.proto.Data.PNodeStatistics.Builder builderForValue) {
        if (nodesStatisticsBuilder_ == null) {
          ensureNodesStatisticsIsMutable();
          nodesStatistics_.set(index, builderForValue.build());
          onChanged();
        } else {
          nodesStatisticsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder addNodesStatistics(org.apache.doris.proto.Data.PNodeStatistics value) {
        if (nodesStatisticsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodesStatisticsIsMutable();
          nodesStatistics_.add(value);
          onChanged();
        } else {
          nodesStatisticsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder addNodesStatistics(
          int index, org.apache.doris.proto.Data.PNodeStatistics value) {
        if (nodesStatisticsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodesStatisticsIsMutable();
          nodesStatistics_.add(index, value);
          onChanged();
        } else {
          nodesStatisticsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder addNodesStatistics(
          org.apache.doris.proto.Data.PNodeStatistics.Builder builderForValue) {
        if (nodesStatisticsBuilder_ == null) {
          ensureNodesStatisticsIsMutable();
          nodesStatistics_.add(builderForValue.build());
          onChanged();
        } else {
          nodesStatisticsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder addNodesStatistics(
          int index, org.apache.doris.proto.Data.PNodeStatistics.Builder builderForValue) {
        if (nodesStatisticsBuilder_ == null) {
          ensureNodesStatisticsIsMutable();
          nodesStatistics_.add(index, builderForValue.build());
          onChanged();
        } else {
          nodesStatisticsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder addAllNodesStatistics(
          java.lang.Iterable<? extends org.apache.doris.proto.Data.PNodeStatistics> values) {
        if (nodesStatisticsBuilder_ == null) {
          ensureNodesStatisticsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, nodesStatistics_);
          onChanged();
        } else {
          nodesStatisticsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder clearNodesStatistics() {
        if (nodesStatisticsBuilder_ == null) {
          nodesStatistics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          nodesStatisticsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public Builder removeNodesStatistics(int index) {
        if (nodesStatisticsBuilder_ == null) {
          ensureNodesStatisticsIsMutable();
          nodesStatistics_.remove(index);
          onChanged();
        } else {
          nodesStatisticsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public org.apache.doris.proto.Data.PNodeStatistics.Builder getNodesStatisticsBuilder(
          int index) {
        return getNodesStatisticsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public org.apache.doris.proto.Data.PNodeStatisticsOrBuilder getNodesStatisticsOrBuilder(
          int index) {
        if (nodesStatisticsBuilder_ == null) {
          return nodesStatistics_.get(index);  } else {
          return nodesStatisticsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.Data.PNodeStatisticsOrBuilder> 
           getNodesStatisticsOrBuilderList() {
        if (nodesStatisticsBuilder_ != null) {
          return nodesStatisticsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(nodesStatistics_);
        }
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public org.apache.doris.proto.Data.PNodeStatistics.Builder addNodesStatisticsBuilder() {
        return getNodesStatisticsFieldBuilder().addBuilder(
            org.apache.doris.proto.Data.PNodeStatistics.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public org.apache.doris.proto.Data.PNodeStatistics.Builder addNodesStatisticsBuilder(
          int index) {
        return getNodesStatisticsFieldBuilder().addBuilder(
            index, org.apache.doris.proto.Data.PNodeStatistics.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PNodeStatistics nodes_statistics = 6;</code>
       */
      public java.util.List<org.apache.doris.proto.Data.PNodeStatistics.Builder> 
           getNodesStatisticsBuilderList() {
        return getNodesStatisticsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Data.PNodeStatistics, org.apache.doris.proto.Data.PNodeStatistics.Builder, org.apache.doris.proto.Data.PNodeStatisticsOrBuilder> 
          getNodesStatisticsFieldBuilder() {
        if (nodesStatisticsBuilder_ == null) {
          nodesStatisticsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.Data.PNodeStatistics, org.apache.doris.proto.Data.PNodeStatistics.Builder, org.apache.doris.proto.Data.PNodeStatisticsOrBuilder>(
                  nodesStatistics_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          nodesStatistics_ = null;
        }
        return nodesStatisticsBuilder_;
      }

      private long scanBytesFromLocalStorage_ ;
      /**
       * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
       * @return Whether the scanBytesFromLocalStorage field is set.
       */
      @java.lang.Override
      public boolean hasScanBytesFromLocalStorage() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
       * @return The scanBytesFromLocalStorage.
       */
      @java.lang.Override
      public long getScanBytesFromLocalStorage() {
        return scanBytesFromLocalStorage_;
      }
      /**
       * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
       * @param value The scanBytesFromLocalStorage to set.
       * @return This builder for chaining.
       */
      public Builder setScanBytesFromLocalStorage(long value) {

        scanBytesFromLocalStorage_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 scan_bytes_from_local_storage = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearScanBytesFromLocalStorage() {
        bitField0_ = (bitField0_ & ~0x00000040);
        scanBytesFromLocalStorage_ = 0L;
        onChanged();
        return this;
      }

      private long scanBytesFromRemoteStorage_ ;
      /**
       * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
       * @return Whether the scanBytesFromRemoteStorage field is set.
       */
      @java.lang.Override
      public boolean hasScanBytesFromRemoteStorage() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
       * @return The scanBytesFromRemoteStorage.
       */
      @java.lang.Override
      public long getScanBytesFromRemoteStorage() {
        return scanBytesFromRemoteStorage_;
      }
      /**
       * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
       * @param value The scanBytesFromRemoteStorage to set.
       * @return This builder for chaining.
       */
      public Builder setScanBytesFromRemoteStorage(long value) {

        scanBytesFromRemoteStorage_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 scan_bytes_from_remote_storage = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearScanBytesFromRemoteStorage() {
        bitField0_ = (bitField0_ & ~0x00000080);
        scanBytesFromRemoteStorage_ = 0L;
        onChanged();
        return this;
      }

      private long spillWriteBytesToLocalStorage_ ;
      /**
       * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
       * @return Whether the spillWriteBytesToLocalStorage field is set.
       */
      @java.lang.Override
      public boolean hasSpillWriteBytesToLocalStorage() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
       * @return The spillWriteBytesToLocalStorage.
       */
      @java.lang.Override
      public long getSpillWriteBytesToLocalStorage() {
        return spillWriteBytesToLocalStorage_;
      }
      /**
       * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
       * @param value The spillWriteBytesToLocalStorage to set.
       * @return This builder for chaining.
       */
      public Builder setSpillWriteBytesToLocalStorage(long value) {

        spillWriteBytesToLocalStorage_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 spill_write_bytes_to_local_storage = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpillWriteBytesToLocalStorage() {
        bitField0_ = (bitField0_ & ~0x00000100);
        spillWriteBytesToLocalStorage_ = 0L;
        onChanged();
        return this;
      }

      private long spillReadBytesFromLocalStorage_ ;
      /**
       * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
       * @return Whether the spillReadBytesFromLocalStorage field is set.
       */
      @java.lang.Override
      public boolean hasSpillReadBytesFromLocalStorage() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
       * @return The spillReadBytesFromLocalStorage.
       */
      @java.lang.Override
      public long getSpillReadBytesFromLocalStorage() {
        return spillReadBytesFromLocalStorage_;
      }
      /**
       * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
       * @param value The spillReadBytesFromLocalStorage to set.
       * @return This builder for chaining.
       */
      public Builder setSpillReadBytesFromLocalStorage(long value) {

        spillReadBytesFromLocalStorage_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 spill_read_bytes_from_local_storage = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpillReadBytesFromLocalStorage() {
        bitField0_ = (bitField0_ & ~0x00000200);
        spillReadBytesFromLocalStorage_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static org.apache.doris.proto.Data.PQueryStatistics getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

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

    /**
     * <code>required int32 num_rows = 1;</code>
     * @return Whether the numRows field is set.
     */
    boolean hasNumRows();
    /**
     * <code>required int32 num_rows = 1;</code>
     * @return The numRows.
     */
    int getNumRows();

    /**
     * <code>repeated int32 row_tuples = 2;</code>
     * @return A list containing the rowTuples.
     */
    java.util.List<java.lang.Integer> getRowTuplesList();
    /**
     * <code>repeated int32 row_tuples = 2;</code>
     * @return The count of rowTuples.
     */
    int getRowTuplesCount();
    /**
     * <code>repeated int32 row_tuples = 2;</code>
     * @param index The index of the element to return.
     * @return The rowTuples at the given index.
     */
    int getRowTuples(int index);

    /**
     * <pre>
     * Should be deprecated after v1.2.0
     * </pre>
     *
     * <code>repeated int32 tuple_offsets = 3;</code>
     * @return A list containing the tupleOffsets.
     */
    java.util.List<java.lang.Integer> getTupleOffsetsList();
    /**
     * <pre>
     * Should be deprecated after v1.2.0
     * </pre>
     *
     * <code>repeated int32 tuple_offsets = 3;</code>
     * @return The count of tupleOffsets.
     */
    int getTupleOffsetsCount();
    /**
     * <pre>
     * Should be deprecated after v1.2.0
     * </pre>
     *
     * <code>repeated int32 tuple_offsets = 3;</code>
     * @param index The index of the element to return.
     * @return The tupleOffsets at the given index.
     */
    int getTupleOffsets(int index);

    /**
     * <code>required bytes tuple_data = 4;</code>
     * @return Whether the tupleData field is set.
     */
    boolean hasTupleData();
    /**
     * <code>required bytes tuple_data = 4;</code>
     * @return The tupleData.
     */
    com.google.protobuf.ByteString getTupleData();

    /**
     * <code>required bool is_compressed = 5;</code>
     * @return Whether the isCompressed field is set.
     */
    boolean hasIsCompressed();
    /**
     * <code>required bool is_compressed = 5;</code>
     * @return The isCompressed.
     */
    boolean getIsCompressed();

    /**
     * <pre>
     * This is used to replace "tuple_offsets"
     * </pre>
     *
     * <code>repeated int64 new_tuple_offsets = 6;</code>
     * @return A list containing the newTupleOffsets.
     */
    java.util.List<java.lang.Long> getNewTupleOffsetsList();
    /**
     * <pre>
     * This is used to replace "tuple_offsets"
     * </pre>
     *
     * <code>repeated int64 new_tuple_offsets = 6;</code>
     * @return The count of newTupleOffsets.
     */
    int getNewTupleOffsetsCount();
    /**
     * <pre>
     * This is used to replace "tuple_offsets"
     * </pre>
     *
     * <code>repeated int64 new_tuple_offsets = 6;</code>
     * @param index The index of the element to return.
     * @return The newTupleOffsets at the given index.
     */
    long getNewTupleOffsets(int index);
  }
  /**
   * Protobuf type {@code doris.PRowBatch}
   */
  public static final class PRowBatch extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PRowBatch)
      PRowBatchOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PRowBatch.newBuilder() to construct.
    private PRowBatch(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PRowBatch() {
      rowTuples_ = emptyIntList();
      tupleOffsets_ = emptyIntList();
      tupleData_ = com.google.protobuf.ByteString.EMPTY;
      newTupleOffsets_ = emptyLongList();
    }

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

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

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

    private int bitField0_;
    public static final int NUM_ROWS_FIELD_NUMBER = 1;
    private int numRows_ = 0;
    /**
     * <code>required int32 num_rows = 1;</code>
     * @return Whether the numRows field is set.
     */
    @java.lang.Override
    public boolean hasNumRows() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int32 num_rows = 1;</code>
     * @return The numRows.
     */
    @java.lang.Override
    public int getNumRows() {
      return numRows_;
    }

    public static final int ROW_TUPLES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList rowTuples_ =
        emptyIntList();
    /**
     * <code>repeated int32 row_tuples = 2;</code>
     * @return A list containing the rowTuples.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getRowTuplesList() {
      return rowTuples_;
    }
    /**
     * <code>repeated int32 row_tuples = 2;</code>
     * @return The count of rowTuples.
     */
    public int getRowTuplesCount() {
      return rowTuples_.size();
    }
    /**
     * <code>repeated int32 row_tuples = 2;</code>
     * @param index The index of the element to return.
     * @return The rowTuples at the given index.
     */
    public int getRowTuples(int index) {
      return rowTuples_.getInt(index);
    }

    public static final int TUPLE_OFFSETS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList tupleOffsets_ =
        emptyIntList();
    /**
     * <pre>
     * Should be deprecated after v1.2.0
     * </pre>
     *
     * <code>repeated int32 tuple_offsets = 3;</code>
     * @return A list containing the tupleOffsets.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getTupleOffsetsList() {
      return tupleOffsets_;
    }
    /**
     * <pre>
     * Should be deprecated after v1.2.0
     * </pre>
     *
     * <code>repeated int32 tuple_offsets = 3;</code>
     * @return The count of tupleOffsets.
     */
    public int getTupleOffsetsCount() {
      return tupleOffsets_.size();
    }
    /**
     * <pre>
     * Should be deprecated after v1.2.0
     * </pre>
     *
     * <code>repeated int32 tuple_offsets = 3;</code>
     * @param index The index of the element to return.
     * @return The tupleOffsets at the given index.
     */
    public int getTupleOffsets(int index) {
      return tupleOffsets_.getInt(index);
    }

    public static final int TUPLE_DATA_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString tupleData_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes tuple_data = 4;</code>
     * @return Whether the tupleData field is set.
     */
    @java.lang.Override
    public boolean hasTupleData() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bytes tuple_data = 4;</code>
     * @return The tupleData.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTupleData() {
      return tupleData_;
    }

    public static final int IS_COMPRESSED_FIELD_NUMBER = 5;
    private boolean isCompressed_ = false;
    /**
     * <code>required bool is_compressed = 5;</code>
     * @return Whether the isCompressed field is set.
     */
    @java.lang.Override
    public boolean hasIsCompressed() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required bool is_compressed = 5;</code>
     * @return The isCompressed.
     */
    @java.lang.Override
    public boolean getIsCompressed() {
      return isCompressed_;
    }

    public static final int NEW_TUPLE_OFFSETS_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList newTupleOffsets_ =
        emptyLongList();
    /**
     * <pre>
     * This is used to replace "tuple_offsets"
     * </pre>
     *
     * <code>repeated int64 new_tuple_offsets = 6;</code>
     * @return A list containing the newTupleOffsets.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getNewTupleOffsetsList() {
      return newTupleOffsets_;
    }
    /**
     * <pre>
     * This is used to replace "tuple_offsets"
     * </pre>
     *
     * <code>repeated int64 new_tuple_offsets = 6;</code>
     * @return The count of newTupleOffsets.
     */
    public int getNewTupleOffsetsCount() {
      return newTupleOffsets_.size();
    }
    /**
     * <pre>
     * This is used to replace "tuple_offsets"
     * </pre>
     *
     * <code>repeated int64 new_tuple_offsets = 6;</code>
     * @param index The index of the element to return.
     * @return The newTupleOffsets at the given index.
     */
    public long getNewTupleOffsets(int index) {
      return newTupleOffsets_.getLong(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 (!hasNumRows()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTupleData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIsCompressed()) {
        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, numRows_);
      }
      for (int i = 0; i < rowTuples_.size(); i++) {
        output.writeInt32(2, rowTuples_.getInt(i));
      }
      for (int i = 0; i < tupleOffsets_.size(); i++) {
        output.writeInt32(3, tupleOffsets_.getInt(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(4, tupleData_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(5, isCompressed_);
      }
      for (int i = 0; i < newTupleOffsets_.size(); i++) {
        output.writeInt64(6, newTupleOffsets_.getLong(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, numRows_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < rowTuples_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(rowTuples_.getInt(i));
        }
        size += dataSize;
        size += 1 * getRowTuplesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tupleOffsets_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(tupleOffsets_.getInt(i));
        }
        size += dataSize;
        size += 1 * getTupleOffsetsList().size();
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, tupleData_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, isCompressed_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < newTupleOffsets_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(newTupleOffsets_.getLong(i));
        }
        size += dataSize;
        size += 1 * getNewTupleOffsetsList().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.Data.PRowBatch)) {
        return super.equals(obj);
      }
      org.apache.doris.proto.Data.PRowBatch other = (org.apache.doris.proto.Data.PRowBatch) obj;

      if (hasNumRows() != other.hasNumRows()) return false;
      if (hasNumRows()) {
        if (getNumRows()
            != other.getNumRows()) return false;
      }
      if (!getRowTuplesList()
          .equals(other.getRowTuplesList())) return false;
      if (!getTupleOffsetsList()
          .equals(other.getTupleOffsetsList())) return false;
      if (hasTupleData() != other.hasTupleData()) return false;
      if (hasTupleData()) {
        if (!getTupleData()
            .equals(other.getTupleData())) return false;
      }
      if (hasIsCompressed() != other.hasIsCompressed()) return false;
      if (hasIsCompressed()) {
        if (getIsCompressed()
            != other.getIsCompressed()) return false;
      }
      if (!getNewTupleOffsetsList()
          .equals(other.getNewTupleOffsetsList())) 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 (hasNumRows()) {
        hash = (37 * hash) + NUM_ROWS_FIELD_NUMBER;
        hash = (53 * hash) + getNumRows();
      }
      if (getRowTuplesCount() > 0) {
        hash = (37 * hash) + ROW_TUPLES_FIELD_NUMBER;
        hash = (53 * hash) + getRowTuplesList().hashCode();
      }
      if (getTupleOffsetsCount() > 0) {
        hash = (37 * hash) + TUPLE_OFFSETS_FIELD_NUMBER;
        hash = (53 * hash) + getTupleOffsetsList().hashCode();
      }
      if (hasTupleData()) {
        hash = (37 * hash) + TUPLE_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getTupleData().hashCode();
      }
      if (hasIsCompressed()) {
        hash = (37 * hash) + IS_COMPRESSED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsCompressed());
      }
      if (getNewTupleOffsetsCount() > 0) {
        hash = (37 * hash) + NEW_TUPLE_OFFSETS_FIELD_NUMBER;
        hash = (53 * hash) + getNewTupleOffsetsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

      // Construct using org.apache.doris.proto.Data.PRowBatch.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        numRows_ = 0;
        rowTuples_ = emptyIntList();
        tupleOffsets_ = emptyIntList();
        tupleData_ = com.google.protobuf.ByteString.EMPTY;
        isCompressed_ = false;
        newTupleOffsets_ = emptyLongList();
        return this;
      }

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

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

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

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

      private void buildPartial0(org.apache.doris.proto.Data.PRowBatch result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.numRows_ = numRows_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          rowTuples_.makeImmutable();
          result.rowTuples_ = rowTuples_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          tupleOffsets_.makeImmutable();
          result.tupleOffsets_ = tupleOffsets_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.tupleData_ = tupleData_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.isCompressed_ = isCompressed_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          newTupleOffsets_.makeImmutable();
          result.newTupleOffsets_ = newTupleOffsets_;
        }
        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.Data.PRowBatch) {
          return mergeFrom((org.apache.doris.proto.Data.PRowBatch)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.Data.PRowBatch other) {
        if (other == org.apache.doris.proto.Data.PRowBatch.getDefaultInstance()) return this;
        if (other.hasNumRows()) {
          setNumRows(other.getNumRows());
        }
        if (!other.rowTuples_.isEmpty()) {
          if (rowTuples_.isEmpty()) {
            rowTuples_ = other.rowTuples_;
            rowTuples_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureRowTuplesIsMutable();
            rowTuples_.addAll(other.rowTuples_);
          }
          onChanged();
        }
        if (!other.tupleOffsets_.isEmpty()) {
          if (tupleOffsets_.isEmpty()) {
            tupleOffsets_ = other.tupleOffsets_;
            tupleOffsets_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureTupleOffsetsIsMutable();
            tupleOffsets_.addAll(other.tupleOffsets_);
          }
          onChanged();
        }
        if (other.hasTupleData()) {
          setTupleData(other.getTupleData());
        }
        if (other.hasIsCompressed()) {
          setIsCompressed(other.getIsCompressed());
        }
        if (!other.newTupleOffsets_.isEmpty()) {
          if (newTupleOffsets_.isEmpty()) {
            newTupleOffsets_ = other.newTupleOffsets_;
            newTupleOffsets_.makeImmutable();
            bitField0_ |= 0x00000020;
          } else {
            ensureNewTupleOffsetsIsMutable();
            newTupleOffsets_.addAll(other.newTupleOffsets_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasNumRows()) {
          return false;
        }
        if (!hasTupleData()) {
          return false;
        }
        if (!hasIsCompressed()) {
          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: {
                numRows_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int v = input.readInt32();
                ensureRowTuplesIsMutable();
                rowTuples_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureRowTuplesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  rowTuples_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              case 24: {
                int v = input.readInt32();
                ensureTupleOffsetsIsMutable();
                tupleOffsets_.addInt(v);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureTupleOffsetsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  tupleOffsets_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 26
              case 34: {
                tupleData_ = input.readBytes();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                isCompressed_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                long v = input.readInt64();
                ensureNewTupleOffsetsIsMutable();
                newTupleOffsets_.addLong(v);
                break;
              } // case 48
              case 50: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureNewTupleOffsetsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  newTupleOffsets_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int numRows_ ;
      /**
       * <code>required int32 num_rows = 1;</code>
       * @return Whether the numRows field is set.
       */
      @java.lang.Override
      public boolean hasNumRows() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int32 num_rows = 1;</code>
       * @return The numRows.
       */
      @java.lang.Override
      public int getNumRows() {
        return numRows_;
      }
      /**
       * <code>required int32 num_rows = 1;</code>
       * @param value The numRows to set.
       * @return This builder for chaining.
       */
      public Builder setNumRows(int value) {

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

      private com.google.protobuf.Internal.IntList rowTuples_ = emptyIntList();
      private void ensureRowTuplesIsMutable() {
        if (!rowTuples_.isModifiable()) {
          rowTuples_ = makeMutableCopy(rowTuples_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated int32 row_tuples = 2;</code>
       * @return A list containing the rowTuples.
       */
      public java.util.List<java.lang.Integer>
          getRowTuplesList() {
        rowTuples_.makeImmutable();
        return rowTuples_;
      }
      /**
       * <code>repeated int32 row_tuples = 2;</code>
       * @return The count of rowTuples.
       */
      public int getRowTuplesCount() {
        return rowTuples_.size();
      }
      /**
       * <code>repeated int32 row_tuples = 2;</code>
       * @param index The index of the element to return.
       * @return The rowTuples at the given index.
       */
      public int getRowTuples(int index) {
        return rowTuples_.getInt(index);
      }
      /**
       * <code>repeated int32 row_tuples = 2;</code>
       * @param index The index to set the value at.
       * @param value The rowTuples to set.
       * @return This builder for chaining.
       */
      public Builder setRowTuples(
          int index, int value) {

        ensureRowTuplesIsMutable();
        rowTuples_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 row_tuples = 2;</code>
       * @param value The rowTuples to add.
       * @return This builder for chaining.
       */
      public Builder addRowTuples(int value) {

        ensureRowTuplesIsMutable();
        rowTuples_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 row_tuples = 2;</code>
       * @param values The rowTuples to add.
       * @return This builder for chaining.
       */
      public Builder addAllRowTuples(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureRowTuplesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rowTuples_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 row_tuples = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowTuples() {
        rowTuples_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList tupleOffsets_ = emptyIntList();
      private void ensureTupleOffsetsIsMutable() {
        if (!tupleOffsets_.isModifiable()) {
          tupleOffsets_ = makeMutableCopy(tupleOffsets_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * Should be deprecated after v1.2.0
       * </pre>
       *
       * <code>repeated int32 tuple_offsets = 3;</code>
       * @return A list containing the tupleOffsets.
       */
      public java.util.List<java.lang.Integer>
          getTupleOffsetsList() {
        tupleOffsets_.makeImmutable();
        return tupleOffsets_;
      }
      /**
       * <pre>
       * Should be deprecated after v1.2.0
       * </pre>
       *
       * <code>repeated int32 tuple_offsets = 3;</code>
       * @return The count of tupleOffsets.
       */
      public int getTupleOffsetsCount() {
        return tupleOffsets_.size();
      }
      /**
       * <pre>
       * Should be deprecated after v1.2.0
       * </pre>
       *
       * <code>repeated int32 tuple_offsets = 3;</code>
       * @param index The index of the element to return.
       * @return The tupleOffsets at the given index.
       */
      public int getTupleOffsets(int index) {
        return tupleOffsets_.getInt(index);
      }
      /**
       * <pre>
       * Should be deprecated after v1.2.0
       * </pre>
       *
       * <code>repeated int32 tuple_offsets = 3;</code>
       * @param index The index to set the value at.
       * @param value The tupleOffsets to set.
       * @return This builder for chaining.
       */
      public Builder setTupleOffsets(
          int index, int value) {

        ensureTupleOffsetsIsMutable();
        tupleOffsets_.setInt(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Should be deprecated after v1.2.0
       * </pre>
       *
       * <code>repeated int32 tuple_offsets = 3;</code>
       * @param value The tupleOffsets to add.
       * @return This builder for chaining.
       */
      public Builder addTupleOffsets(int value) {

        ensureTupleOffsetsIsMutable();
        tupleOffsets_.addInt(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Should be deprecated after v1.2.0
       * </pre>
       *
       * <code>repeated int32 tuple_offsets = 3;</code>
       * @param values The tupleOffsets to add.
       * @return This builder for chaining.
       */
      public Builder addAllTupleOffsets(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureTupleOffsetsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tupleOffsets_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Should be deprecated after v1.2.0
       * </pre>
       *
       * <code>repeated int32 tuple_offsets = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTupleOffsets() {
        tupleOffsets_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString tupleData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes tuple_data = 4;</code>
       * @return Whether the tupleData field is set.
       */
      @java.lang.Override
      public boolean hasTupleData() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required bytes tuple_data = 4;</code>
       * @return The tupleData.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTupleData() {
        return tupleData_;
      }
      /**
       * <code>required bytes tuple_data = 4;</code>
       * @param value The tupleData to set.
       * @return This builder for chaining.
       */
      public Builder setTupleData(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        tupleData_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes tuple_data = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTupleData() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tupleData_ = getDefaultInstance().getTupleData();
        onChanged();
        return this;
      }

      private boolean isCompressed_ ;
      /**
       * <code>required bool is_compressed = 5;</code>
       * @return Whether the isCompressed field is set.
       */
      @java.lang.Override
      public boolean hasIsCompressed() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required bool is_compressed = 5;</code>
       * @return The isCompressed.
       */
      @java.lang.Override
      public boolean getIsCompressed() {
        return isCompressed_;
      }
      /**
       * <code>required bool is_compressed = 5;</code>
       * @param value The isCompressed to set.
       * @return This builder for chaining.
       */
      public Builder setIsCompressed(boolean value) {

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

      private com.google.protobuf.Internal.LongList newTupleOffsets_ = emptyLongList();
      private void ensureNewTupleOffsetsIsMutable() {
        if (!newTupleOffsets_.isModifiable()) {
          newTupleOffsets_ = makeMutableCopy(newTupleOffsets_);
        }
        bitField0_ |= 0x00000020;
      }
      /**
       * <pre>
       * This is used to replace "tuple_offsets"
       * </pre>
       *
       * <code>repeated int64 new_tuple_offsets = 6;</code>
       * @return A list containing the newTupleOffsets.
       */
      public java.util.List<java.lang.Long>
          getNewTupleOffsetsList() {
        newTupleOffsets_.makeImmutable();
        return newTupleOffsets_;
      }
      /**
       * <pre>
       * This is used to replace "tuple_offsets"
       * </pre>
       *
       * <code>repeated int64 new_tuple_offsets = 6;</code>
       * @return The count of newTupleOffsets.
       */
      public int getNewTupleOffsetsCount() {
        return newTupleOffsets_.size();
      }
      /**
       * <pre>
       * This is used to replace "tuple_offsets"
       * </pre>
       *
       * <code>repeated int64 new_tuple_offsets = 6;</code>
       * @param index The index of the element to return.
       * @return The newTupleOffsets at the given index.
       */
      public long getNewTupleOffsets(int index) {
        return newTupleOffsets_.getLong(index);
      }
      /**
       * <pre>
       * This is used to replace "tuple_offsets"
       * </pre>
       *
       * <code>repeated int64 new_tuple_offsets = 6;</code>
       * @param index The index to set the value at.
       * @param value The newTupleOffsets to set.
       * @return This builder for chaining.
       */
      public Builder setNewTupleOffsets(
          int index, long value) {

        ensureNewTupleOffsetsIsMutable();
        newTupleOffsets_.setLong(index, value);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * This is used to replace "tuple_offsets"
       * </pre>
       *
       * <code>repeated int64 new_tuple_offsets = 6;</code>
       * @param value The newTupleOffsets to add.
       * @return This builder for chaining.
       */
      public Builder addNewTupleOffsets(long value) {

        ensureNewTupleOffsetsIsMutable();
        newTupleOffsets_.addLong(value);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * This is used to replace "tuple_offsets"
       * </pre>
       *
       * <code>repeated int64 new_tuple_offsets = 6;</code>
       * @param values The newTupleOffsets to add.
       * @return This builder for chaining.
       */
      public Builder addAllNewTupleOffsets(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureNewTupleOffsetsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, newTupleOffsets_);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * This is used to replace "tuple_offsets"
       * </pre>
       *
       * <code>repeated int64 new_tuple_offsets = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewTupleOffsets() {
        newTupleOffsets_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static org.apache.doris.proto.Data.PRowBatch getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

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

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

    /**
     * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
     * @return The type.
     */
    org.apache.doris.proto.Types.PGenericType.TypeId getType();

    /**
     * <code>optional bool is_nullable = 3 [default = false];</code>
     * @return Whether the isNullable field is set.
     */
    boolean hasIsNullable();
    /**
     * <code>optional bool is_nullable = 3 [default = false];</code>
     * @return The isNullable.
     */
    boolean getIsNullable();

    /**
     * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
     * @return Whether the decimalParam field is set.
     */
    boolean hasDecimalParam();
    /**
     * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
     * @return The decimalParam.
     */
    org.apache.doris.proto.Data.PColumnMeta.Decimal getDecimalParam();
    /**
     * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
     */
    org.apache.doris.proto.Data.PColumnMeta.DecimalOrBuilder getDecimalParamOrBuilder();

    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    java.util.List<org.apache.doris.proto.Data.PColumnMeta> 
        getChildrenList();
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    org.apache.doris.proto.Data.PColumnMeta getChildren(int index);
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    int getChildrenCount();
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    java.util.List<? extends org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
        getChildrenOrBuilderList();
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    org.apache.doris.proto.Data.PColumnMetaOrBuilder getChildrenOrBuilder(
        int index);

    /**
     * <code>optional bool result_is_nullable = 6;</code>
     * @return Whether the resultIsNullable field is set.
     */
    boolean hasResultIsNullable();
    /**
     * <code>optional bool result_is_nullable = 6;</code>
     * @return The resultIsNullable.
     */
    boolean getResultIsNullable();

    /**
     * <code>optional string function_name = 7;</code>
     * @return Whether the functionName field is set.
     */
    boolean hasFunctionName();
    /**
     * <code>optional string function_name = 7;</code>
     * @return The functionName.
     */
    java.lang.String getFunctionName();
    /**
     * <code>optional string function_name = 7;</code>
     * @return The bytes for functionName.
     */
    com.google.protobuf.ByteString
        getFunctionNameBytes();

    /**
     * <code>optional int32 be_exec_version = 8;</code>
     * @return Whether the beExecVersion field is set.
     */
    boolean hasBeExecVersion();
    /**
     * <code>optional int32 be_exec_version = 8;</code>
     * @return The beExecVersion.
     */
    int getBeExecVersion();
  }
  /**
   * Protobuf type {@code doris.PColumnMeta}
   */
  public static final class PColumnMeta extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PColumnMeta)
      PColumnMetaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PColumnMeta.newBuilder() to construct.
    private PColumnMeta(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PColumnMeta() {
      name_ = "";
      type_ = 999;
      children_ = java.util.Collections.emptyList();
      functionName_ = "";
    }

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

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

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

    public interface DecimalOrBuilder extends
        // @@protoc_insertion_point(interface_extends:doris.PColumnMeta.Decimal)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional uint32 precision = 1;</code>
       * @return Whether the precision field is set.
       */
      boolean hasPrecision();
      /**
       * <code>optional uint32 precision = 1;</code>
       * @return The precision.
       */
      int getPrecision();

      /**
       * <code>optional uint32 scale = 2;</code>
       * @return Whether the scale field is set.
       */
      boolean hasScale();
      /**
       * <code>optional uint32 scale = 2;</code>
       * @return The scale.
       */
      int getScale();
    }
    /**
     * Protobuf type {@code doris.PColumnMeta.Decimal}
     */
    public static final class Decimal extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:doris.PColumnMeta.Decimal)
        DecimalOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Decimal.newBuilder() to construct.
      private Decimal(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Decimal() {
      }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.doris.proto.Data.internal_static_doris_PColumnMeta_Decimal_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.doris.proto.Data.PColumnMeta.Decimal.class, org.apache.doris.proto.Data.PColumnMeta.Decimal.Builder.class);
      }

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

      public static final int SCALE_FIELD_NUMBER = 2;
      private int scale_ = 0;
      /**
       * <code>optional uint32 scale = 2;</code>
       * @return Whether the scale field is set.
       */
      @java.lang.Override
      public boolean hasScale() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional uint32 scale = 2;</code>
       * @return The scale.
       */
      @java.lang.Override
      public int getScale() {
        return scale_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, precision_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, scale_);
        }
        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.Data.PColumnMeta.Decimal)) {
          return super.equals(obj);
        }
        org.apache.doris.proto.Data.PColumnMeta.Decimal other = (org.apache.doris.proto.Data.PColumnMeta.Decimal) obj;

        if (hasPrecision() != other.hasPrecision()) return false;
        if (hasPrecision()) {
          if (getPrecision()
              != other.getPrecision()) return false;
        }
        if (hasScale() != other.hasScale()) return false;
        if (hasScale()) {
          if (getScale()
              != other.getScale()) 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 (hasPrecision()) {
          hash = (37 * hash) + PRECISION_FIELD_NUMBER;
          hash = (53 * hash) + getPrecision();
        }
        if (hasScale()) {
          hash = (37 * hash) + SCALE_FIELD_NUMBER;
          hash = (53 * hash) + getScale();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

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

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.apache.doris.proto.Data.internal_static_doris_PColumnMeta_Decimal_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.apache.doris.proto.Data.PColumnMeta.Decimal.class, org.apache.doris.proto.Data.PColumnMeta.Decimal.Builder.class);
        }

        // Construct using org.apache.doris.proto.Data.PColumnMeta.Decimal.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          precision_ = 0;
          scale_ = 0;
          return this;
        }

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

        @java.lang.Override
        public org.apache.doris.proto.Data.PColumnMeta.Decimal getDefaultInstanceForType() {
          return org.apache.doris.proto.Data.PColumnMeta.Decimal.getDefaultInstance();
        }

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

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

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

        public Builder mergeFrom(org.apache.doris.proto.Data.PColumnMeta.Decimal other) {
          if (other == org.apache.doris.proto.Data.PColumnMeta.Decimal.getDefaultInstance()) return this;
          if (other.hasPrecision()) {
            setPrecision(other.getPrecision());
          }
          if (other.hasScale()) {
            setScale(other.getScale());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

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

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

          precision_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>optional uint32 precision = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPrecision() {
          bitField0_ = (bitField0_ & ~0x00000001);
          precision_ = 0;
          onChanged();
          return this;
        }

        private int scale_ ;
        /**
         * <code>optional uint32 scale = 2;</code>
         * @return Whether the scale field is set.
         */
        @java.lang.Override
        public boolean hasScale() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional uint32 scale = 2;</code>
         * @return The scale.
         */
        @java.lang.Override
        public int getScale() {
          return scale_;
        }
        /**
         * <code>optional uint32 scale = 2;</code>
         * @param value The scale to set.
         * @return This builder for chaining.
         */
        public Builder setScale(int value) {

          scale_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>optional uint32 scale = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearScale() {
          bitField0_ = (bitField0_ & ~0x00000002);
          scale_ = 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.PColumnMeta.Decimal)
      }

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

      public static org.apache.doris.proto.Data.PColumnMeta.Decimal getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public org.apache.doris.proto.Data.PColumnMeta.Decimal getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

    public static final int TYPE_FIELD_NUMBER = 2;
    private int type_ = 999;
    /**
     * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
     * @return Whether the type field is set.
     */
    @java.lang.Override public boolean hasType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
     * @return The type.
     */
    @java.lang.Override public org.apache.doris.proto.Types.PGenericType.TypeId getType() {
      org.apache.doris.proto.Types.PGenericType.TypeId result = org.apache.doris.proto.Types.PGenericType.TypeId.forNumber(type_);
      return result == null ? org.apache.doris.proto.Types.PGenericType.TypeId.UNKNOWN : result;
    }

    public static final int IS_NULLABLE_FIELD_NUMBER = 3;
    private boolean isNullable_ = false;
    /**
     * <code>optional bool is_nullable = 3 [default = false];</code>
     * @return Whether the isNullable field is set.
     */
    @java.lang.Override
    public boolean hasIsNullable() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool is_nullable = 3 [default = false];</code>
     * @return The isNullable.
     */
    @java.lang.Override
    public boolean getIsNullable() {
      return isNullable_;
    }

    public static final int DECIMAL_PARAM_FIELD_NUMBER = 4;
    private org.apache.doris.proto.Data.PColumnMeta.Decimal decimalParam_;
    /**
     * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
     * @return Whether the decimalParam field is set.
     */
    @java.lang.Override
    public boolean hasDecimalParam() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
     * @return The decimalParam.
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PColumnMeta.Decimal getDecimalParam() {
      return decimalParam_ == null ? org.apache.doris.proto.Data.PColumnMeta.Decimal.getDefaultInstance() : decimalParam_;
    }
    /**
     * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PColumnMeta.DecimalOrBuilder getDecimalParamOrBuilder() {
      return decimalParam_ == null ? org.apache.doris.proto.Data.PColumnMeta.Decimal.getDefaultInstance() : decimalParam_;
    }

    public static final int CHILDREN_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.Data.PColumnMeta> children_;
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.Data.PColumnMeta> getChildrenList() {
      return children_;
    }
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
        getChildrenOrBuilderList() {
      return children_;
    }
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    @java.lang.Override
    public int getChildrenCount() {
      return children_.size();
    }
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PColumnMeta getChildren(int index) {
      return children_.get(index);
    }
    /**
     * <code>repeated .doris.PColumnMeta children = 5;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PColumnMetaOrBuilder getChildrenOrBuilder(
        int index) {
      return children_.get(index);
    }

    public static final int RESULT_IS_NULLABLE_FIELD_NUMBER = 6;
    private boolean resultIsNullable_ = false;
    /**
     * <code>optional bool result_is_nullable = 6;</code>
     * @return Whether the resultIsNullable field is set.
     */
    @java.lang.Override
    public boolean hasResultIsNullable() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional bool result_is_nullable = 6;</code>
     * @return The resultIsNullable.
     */
    @java.lang.Override
    public boolean getResultIsNullable() {
      return resultIsNullable_;
    }

    public static final int FUNCTION_NAME_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object functionName_ = "";
    /**
     * <code>optional string function_name = 7;</code>
     * @return Whether the functionName field is set.
     */
    @java.lang.Override
    public boolean hasFunctionName() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string function_name = 7;</code>
     * @return The functionName.
     */
    @java.lang.Override
    public java.lang.String getFunctionName() {
      java.lang.Object ref = functionName_;
      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()) {
          functionName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string function_name = 7;</code>
     * @return The bytes for functionName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFunctionNameBytes() {
      java.lang.Object ref = functionName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        functionName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BE_EXEC_VERSION_FIELD_NUMBER = 8;
    private int beExecVersion_ = 0;
    /**
     * <code>optional int32 be_exec_version = 8;</code>
     * @return Whether the beExecVersion field is set.
     */
    @java.lang.Override
    public boolean hasBeExecVersion() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int32 be_exec_version = 8;</code>
     * @return The beExecVersion.
     */
    @java.lang.Override
    public int getBeExecVersion() {
      return beExecVersion_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, type_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, isNullable_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(4, getDecimalParam());
      }
      for (int i = 0; i < children_.size(); i++) {
        output.writeMessage(5, children_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeBool(6, resultIsNullable_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, functionName_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(8, beExecVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, type_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isNullable_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getDecimalParam());
      }
      for (int i = 0; i < children_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, children_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, resultIsNullable_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, functionName_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, beExecVersion_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (type_ != other.type_) return false;
      }
      if (hasIsNullable() != other.hasIsNullable()) return false;
      if (hasIsNullable()) {
        if (getIsNullable()
            != other.getIsNullable()) return false;
      }
      if (hasDecimalParam() != other.hasDecimalParam()) return false;
      if (hasDecimalParam()) {
        if (!getDecimalParam()
            .equals(other.getDecimalParam())) return false;
      }
      if (!getChildrenList()
          .equals(other.getChildrenList())) return false;
      if (hasResultIsNullable() != other.hasResultIsNullable()) return false;
      if (hasResultIsNullable()) {
        if (getResultIsNullable()
            != other.getResultIsNullable()) return false;
      }
      if (hasFunctionName() != other.hasFunctionName()) return false;
      if (hasFunctionName()) {
        if (!getFunctionName()
            .equals(other.getFunctionName())) return false;
      }
      if (hasBeExecVersion() != other.hasBeExecVersion()) return false;
      if (hasBeExecVersion()) {
        if (getBeExecVersion()
            != other.getBeExecVersion()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
      }
      if (hasIsNullable()) {
        hash = (37 * hash) + IS_NULLABLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsNullable());
      }
      if (hasDecimalParam()) {
        hash = (37 * hash) + DECIMAL_PARAM_FIELD_NUMBER;
        hash = (53 * hash) + getDecimalParam().hashCode();
      }
      if (getChildrenCount() > 0) {
        hash = (37 * hash) + CHILDREN_FIELD_NUMBER;
        hash = (53 * hash) + getChildrenList().hashCode();
      }
      if (hasResultIsNullable()) {
        hash = (37 * hash) + RESULT_IS_NULLABLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getResultIsNullable());
      }
      if (hasFunctionName()) {
        hash = (37 * hash) + FUNCTION_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getFunctionName().hashCode();
      }
      if (hasBeExecVersion()) {
        hash = (37 * hash) + BE_EXEC_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getBeExecVersion();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDecimalParamFieldBuilder();
          getChildrenFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        name_ = "";
        type_ = 999;
        isNullable_ = false;
        decimalParam_ = null;
        if (decimalParamBuilder_ != null) {
          decimalParamBuilder_.dispose();
          decimalParamBuilder_ = null;
        }
        if (childrenBuilder_ == null) {
          children_ = java.util.Collections.emptyList();
        } else {
          children_ = null;
          childrenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        resultIsNullable_ = false;
        functionName_ = "";
        beExecVersion_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.Data.PColumnMeta result) {
        if (childrenBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            children_ = java.util.Collections.unmodifiableList(children_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.children_ = children_;
        } else {
          result.children_ = childrenBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.Data.PColumnMeta result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.name_ = name_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.type_ = type_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.isNullable_ = isNullable_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.decimalParam_ = decimalParamBuilder_ == null
              ? decimalParam_
              : decimalParamBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.resultIsNullable_ = resultIsNullable_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.functionName_ = functionName_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.beExecVersion_ = beExecVersion_;
          to_bitField0_ |= 0x00000040;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(org.apache.doris.proto.Data.PColumnMeta other) {
        if (other == org.apache.doris.proto.Data.PColumnMeta.getDefaultInstance()) return this;
        if (other.hasName()) {
          name_ = other.name_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasIsNullable()) {
          setIsNullable(other.getIsNullable());
        }
        if (other.hasDecimalParam()) {
          mergeDecimalParam(other.getDecimalParam());
        }
        if (childrenBuilder_ == null) {
          if (!other.children_.isEmpty()) {
            if (children_.isEmpty()) {
              children_ = other.children_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureChildrenIsMutable();
              children_.addAll(other.children_);
            }
            onChanged();
          }
        } else {
          if (!other.children_.isEmpty()) {
            if (childrenBuilder_.isEmpty()) {
              childrenBuilder_.dispose();
              childrenBuilder_ = null;
              children_ = other.children_;
              bitField0_ = (bitField0_ & ~0x00000010);
              childrenBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getChildrenFieldBuilder() : null;
            } else {
              childrenBuilder_.addAllMessages(other.children_);
            }
          }
        }
        if (other.hasResultIsNullable()) {
          setResultIsNullable(other.getResultIsNullable());
        }
        if (other.hasFunctionName()) {
          functionName_ = other.functionName_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (other.hasBeExecVersion()) {
          setBeExecVersion(other.getBeExecVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                name_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                int tmpRaw = input.readEnum();
                org.apache.doris.proto.Types.PGenericType.TypeId tmpValue =
                    org.apache.doris.proto.Types.PGenericType.TypeId.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  type_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              case 24: {
                isNullable_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                input.readMessage(
                    getDecimalParamFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                org.apache.doris.proto.Data.PColumnMeta m =
                    input.readMessage(
                        org.apache.doris.proto.Data.PColumnMeta.PARSER,
                        extensionRegistry);
                if (childrenBuilder_ == null) {
                  ensureChildrenIsMutable();
                  children_.add(m);
                } else {
                  childrenBuilder_.addMessage(m);
                }
                break;
              } // case 42
              case 48: {
                resultIsNullable_ = input.readBool();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                functionName_ = input.readBytes();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 64: {
                beExecVersion_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

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

      private int type_ = 999;
      /**
       * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
       * @return Whether the type field is set.
       */
      @java.lang.Override public boolean hasType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
       * @return The type.
       */
      @java.lang.Override
      public org.apache.doris.proto.Types.PGenericType.TypeId getType() {
        org.apache.doris.proto.Types.PGenericType.TypeId result = org.apache.doris.proto.Types.PGenericType.TypeId.forNumber(type_);
        return result == null ? org.apache.doris.proto.Types.PGenericType.TypeId.UNKNOWN : result;
      }
      /**
       * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(org.apache.doris.proto.Types.PGenericType.TypeId value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PGenericType.TypeId type = 2 [default = UNKNOWN];</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = 999;
        onChanged();
        return this;
      }

      private boolean isNullable_ ;
      /**
       * <code>optional bool is_nullable = 3 [default = false];</code>
       * @return Whether the isNullable field is set.
       */
      @java.lang.Override
      public boolean hasIsNullable() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool is_nullable = 3 [default = false];</code>
       * @return The isNullable.
       */
      @java.lang.Override
      public boolean getIsNullable() {
        return isNullable_;
      }
      /**
       * <code>optional bool is_nullable = 3 [default = false];</code>
       * @param value The isNullable to set.
       * @return This builder for chaining.
       */
      public Builder setIsNullable(boolean value) {

        isNullable_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_nullable = 3 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsNullable() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isNullable_ = false;
        onChanged();
        return this;
      }

      private org.apache.doris.proto.Data.PColumnMeta.Decimal decimalParam_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Data.PColumnMeta.Decimal, org.apache.doris.proto.Data.PColumnMeta.Decimal.Builder, org.apache.doris.proto.Data.PColumnMeta.DecimalOrBuilder> decimalParamBuilder_;
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       * @return Whether the decimalParam field is set.
       */
      public boolean hasDecimalParam() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       * @return The decimalParam.
       */
      public org.apache.doris.proto.Data.PColumnMeta.Decimal getDecimalParam() {
        if (decimalParamBuilder_ == null) {
          return decimalParam_ == null ? org.apache.doris.proto.Data.PColumnMeta.Decimal.getDefaultInstance() : decimalParam_;
        } else {
          return decimalParamBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       */
      public Builder setDecimalParam(org.apache.doris.proto.Data.PColumnMeta.Decimal value) {
        if (decimalParamBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          decimalParam_ = value;
        } else {
          decimalParamBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       */
      public Builder setDecimalParam(
          org.apache.doris.proto.Data.PColumnMeta.Decimal.Builder builderForValue) {
        if (decimalParamBuilder_ == null) {
          decimalParam_ = builderForValue.build();
        } else {
          decimalParamBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       */
      public Builder mergeDecimalParam(org.apache.doris.proto.Data.PColumnMeta.Decimal value) {
        if (decimalParamBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            decimalParam_ != null &&
            decimalParam_ != org.apache.doris.proto.Data.PColumnMeta.Decimal.getDefaultInstance()) {
            getDecimalParamBuilder().mergeFrom(value);
          } else {
            decimalParam_ = value;
          }
        } else {
          decimalParamBuilder_.mergeFrom(value);
        }
        if (decimalParam_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       */
      public Builder clearDecimalParam() {
        bitField0_ = (bitField0_ & ~0x00000008);
        decimalParam_ = null;
        if (decimalParamBuilder_ != null) {
          decimalParamBuilder_.dispose();
          decimalParamBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.Decimal.Builder getDecimalParamBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getDecimalParamFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.DecimalOrBuilder getDecimalParamOrBuilder() {
        if (decimalParamBuilder_ != null) {
          return decimalParamBuilder_.getMessageOrBuilder();
        } else {
          return decimalParam_ == null ?
              org.apache.doris.proto.Data.PColumnMeta.Decimal.getDefaultInstance() : decimalParam_;
        }
      }
      /**
       * <code>optional .doris.PColumnMeta.Decimal decimal_param = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.apache.doris.proto.Data.PColumnMeta.Decimal, org.apache.doris.proto.Data.PColumnMeta.Decimal.Builder, org.apache.doris.proto.Data.PColumnMeta.DecimalOrBuilder> 
          getDecimalParamFieldBuilder() {
        if (decimalParamBuilder_ == null) {
          decimalParamBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.apache.doris.proto.Data.PColumnMeta.Decimal, org.apache.doris.proto.Data.PColumnMeta.Decimal.Builder, org.apache.doris.proto.Data.PColumnMeta.DecimalOrBuilder>(
                  getDecimalParam(),
                  getParentForChildren(),
                  isClean());
          decimalParam_ = null;
        }
        return decimalParamBuilder_;
      }

      private java.util.List<org.apache.doris.proto.Data.PColumnMeta> children_ =
        java.util.Collections.emptyList();
      private void ensureChildrenIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          children_ = new java.util.ArrayList<org.apache.doris.proto.Data.PColumnMeta>(children_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Data.PColumnMeta, org.apache.doris.proto.Data.PColumnMeta.Builder, org.apache.doris.proto.Data.PColumnMetaOrBuilder> childrenBuilder_;

      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public java.util.List<org.apache.doris.proto.Data.PColumnMeta> getChildrenList() {
        if (childrenBuilder_ == null) {
          return java.util.Collections.unmodifiableList(children_);
        } else {
          return childrenBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public int getChildrenCount() {
        if (childrenBuilder_ == null) {
          return children_.size();
        } else {
          return childrenBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta getChildren(int index) {
        if (childrenBuilder_ == null) {
          return children_.get(index);
        } else {
          return childrenBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder setChildren(
          int index, org.apache.doris.proto.Data.PColumnMeta value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.set(index, value);
          onChanged();
        } else {
          childrenBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder setChildren(
          int index, org.apache.doris.proto.Data.PColumnMeta.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.set(index, builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder addChildren(org.apache.doris.proto.Data.PColumnMeta value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.add(value);
          onChanged();
        } else {
          childrenBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder addChildren(
          int index, org.apache.doris.proto.Data.PColumnMeta value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.add(index, value);
          onChanged();
        } else {
          childrenBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder addChildren(
          org.apache.doris.proto.Data.PColumnMeta.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.add(builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder addChildren(
          int index, org.apache.doris.proto.Data.PColumnMeta.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.add(index, builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder addAllChildren(
          java.lang.Iterable<? extends org.apache.doris.proto.Data.PColumnMeta> values) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, children_);
          onChanged();
        } else {
          childrenBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder clearChildren() {
        if (childrenBuilder_ == null) {
          children_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          childrenBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public Builder removeChildren(int index) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.remove(index);
          onChanged();
        } else {
          childrenBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.Builder getChildrenBuilder(
          int index) {
        return getChildrenFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public org.apache.doris.proto.Data.PColumnMetaOrBuilder getChildrenOrBuilder(
          int index) {
        if (childrenBuilder_ == null) {
          return children_.get(index);  } else {
          return childrenBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
           getChildrenOrBuilderList() {
        if (childrenBuilder_ != null) {
          return childrenBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(children_);
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.Builder addChildrenBuilder() {
        return getChildrenFieldBuilder().addBuilder(
            org.apache.doris.proto.Data.PColumnMeta.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.Builder addChildrenBuilder(
          int index) {
        return getChildrenFieldBuilder().addBuilder(
            index, org.apache.doris.proto.Data.PColumnMeta.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PColumnMeta children = 5;</code>
       */
      public java.util.List<org.apache.doris.proto.Data.PColumnMeta.Builder> 
           getChildrenBuilderList() {
        return getChildrenFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Data.PColumnMeta, org.apache.doris.proto.Data.PColumnMeta.Builder, org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
          getChildrenFieldBuilder() {
        if (childrenBuilder_ == null) {
          childrenBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.Data.PColumnMeta, org.apache.doris.proto.Data.PColumnMeta.Builder, org.apache.doris.proto.Data.PColumnMetaOrBuilder>(
                  children_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          children_ = null;
        }
        return childrenBuilder_;
      }

      private boolean resultIsNullable_ ;
      /**
       * <code>optional bool result_is_nullable = 6;</code>
       * @return Whether the resultIsNullable field is set.
       */
      @java.lang.Override
      public boolean hasResultIsNullable() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional bool result_is_nullable = 6;</code>
       * @return The resultIsNullable.
       */
      @java.lang.Override
      public boolean getResultIsNullable() {
        return resultIsNullable_;
      }
      /**
       * <code>optional bool result_is_nullable = 6;</code>
       * @param value The resultIsNullable to set.
       * @return This builder for chaining.
       */
      public Builder setResultIsNullable(boolean value) {

        resultIsNullable_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool result_is_nullable = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearResultIsNullable() {
        bitField0_ = (bitField0_ & ~0x00000020);
        resultIsNullable_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object functionName_ = "";
      /**
       * <code>optional string function_name = 7;</code>
       * @return Whether the functionName field is set.
       */
      public boolean hasFunctionName() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional string function_name = 7;</code>
       * @return The functionName.
       */
      public java.lang.String getFunctionName() {
        java.lang.Object ref = functionName_;
        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()) {
            functionName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string function_name = 7;</code>
       * @return The bytes for functionName.
       */
      public com.google.protobuf.ByteString
          getFunctionNameBytes() {
        java.lang.Object ref = functionName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          functionName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string function_name = 7;</code>
       * @param value The functionName to set.
       * @return This builder for chaining.
       */
      public Builder setFunctionName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        functionName_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional string function_name = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearFunctionName() {
        functionName_ = getDefaultInstance().getFunctionName();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>optional string function_name = 7;</code>
       * @param value The bytes for functionName to set.
       * @return This builder for chaining.
       */
      public Builder setFunctionNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        functionName_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private int beExecVersion_ ;
      /**
       * <code>optional int32 be_exec_version = 8;</code>
       * @return Whether the beExecVersion field is set.
       */
      @java.lang.Override
      public boolean hasBeExecVersion() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int32 be_exec_version = 8;</code>
       * @return The beExecVersion.
       */
      @java.lang.Override
      public int getBeExecVersion() {
        return beExecVersion_;
      }
      /**
       * <code>optional int32 be_exec_version = 8;</code>
       * @param value The beExecVersion to set.
       * @return This builder for chaining.
       */
      public Builder setBeExecVersion(int value) {

        beExecVersion_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 be_exec_version = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearBeExecVersion() {
        bitField0_ = (bitField0_ & ~0x00000080);
        beExecVersion_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static org.apache.doris.proto.Data.PColumnMeta getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

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

    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    java.util.List<org.apache.doris.proto.Data.PColumnMeta> 
        getColumnMetasList();
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    org.apache.doris.proto.Data.PColumnMeta getColumnMetas(int index);
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    int getColumnMetasCount();
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    java.util.List<? extends org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
        getColumnMetasOrBuilderList();
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    org.apache.doris.proto.Data.PColumnMetaOrBuilder getColumnMetasOrBuilder(
        int index);

    /**
     * <code>optional bytes column_values = 2;</code>
     * @return Whether the columnValues field is set.
     */
    boolean hasColumnValues();
    /**
     * <code>optional bytes column_values = 2;</code>
     * @return The columnValues.
     */
    com.google.protobuf.ByteString getColumnValues();

    /**
     * <code>optional bool compressed = 3 [default = false];</code>
     * @return Whether the compressed field is set.
     */
    boolean hasCompressed();
    /**
     * <code>optional bool compressed = 3 [default = false];</code>
     * @return The compressed.
     */
    boolean getCompressed();

    /**
     * <code>optional int64 uncompressed_size = 4;</code>
     * @return Whether the uncompressedSize field is set.
     */
    boolean hasUncompressedSize();
    /**
     * <code>optional int64 uncompressed_size = 4;</code>
     * @return The uncompressedSize.
     */
    long getUncompressedSize();

    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
     * @return Whether the compressionType field is set.
     */
    boolean hasCompressionType();
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
     * @return The compressionType.
     */
    doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType();

    /**
     * <code>optional int32 be_exec_version = 6 [default = 0];</code>
     * @return Whether the beExecVersion field is set.
     */
    boolean hasBeExecVersion();
    /**
     * <code>optional int32 be_exec_version = 6 [default = 0];</code>
     * @return The beExecVersion.
     */
    int getBeExecVersion();
  }
  /**
   * Protobuf type {@code doris.PBlock}
   */
  public static final class PBlock extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:doris.PBlock)
      PBlockOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PBlock.newBuilder() to construct.
    private PBlock(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PBlock() {
      columnMetas_ = java.util.Collections.emptyList();
      columnValues_ = com.google.protobuf.ByteString.EMPTY;
      compressionType_ = 3;
    }

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

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

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

    private int bitField0_;
    public static final int COLUMN_METAS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<org.apache.doris.proto.Data.PColumnMeta> columnMetas_;
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    @java.lang.Override
    public java.util.List<org.apache.doris.proto.Data.PColumnMeta> getColumnMetasList() {
      return columnMetas_;
    }
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
        getColumnMetasOrBuilderList() {
      return columnMetas_;
    }
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    @java.lang.Override
    public int getColumnMetasCount() {
      return columnMetas_.size();
    }
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PColumnMeta getColumnMetas(int index) {
      return columnMetas_.get(index);
    }
    /**
     * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
     */
    @java.lang.Override
    public org.apache.doris.proto.Data.PColumnMetaOrBuilder getColumnMetasOrBuilder(
        int index) {
      return columnMetas_.get(index);
    }

    public static final int COLUMN_VALUES_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString columnValues_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>optional bytes column_values = 2;</code>
     * @return Whether the columnValues field is set.
     */
    @java.lang.Override
    public boolean hasColumnValues() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bytes column_values = 2;</code>
     * @return The columnValues.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getColumnValues() {
      return columnValues_;
    }

    public static final int COMPRESSED_FIELD_NUMBER = 3;
    private boolean compressed_ = false;
    /**
     * <code>optional bool compressed = 3 [default = false];</code>
     * @return Whether the compressed field is set.
     */
    @java.lang.Override
    public boolean hasCompressed() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bool compressed = 3 [default = false];</code>
     * @return The compressed.
     */
    @java.lang.Override
    public boolean getCompressed() {
      return compressed_;
    }

    public static final int UNCOMPRESSED_SIZE_FIELD_NUMBER = 4;
    private long uncompressedSize_ = 0L;
    /**
     * <code>optional int64 uncompressed_size = 4;</code>
     * @return Whether the uncompressedSize field is set.
     */
    @java.lang.Override
    public boolean hasUncompressedSize() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int64 uncompressed_size = 4;</code>
     * @return The uncompressedSize.
     */
    @java.lang.Override
    public long getUncompressedSize() {
      return uncompressedSize_;
    }

    public static final int COMPRESSION_TYPE_FIELD_NUMBER = 5;
    private int compressionType_ = 3;
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
     * @return Whether the compressionType field is set.
     */
    @java.lang.Override public boolean hasCompressionType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
     * @return The compressionType.
     */
    @java.lang.Override public doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType() {
      doris.segment_v2.SegmentV2.CompressionTypePB result = doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(compressionType_);
      return result == null ? doris.segment_v2.SegmentV2.CompressionTypePB.SNAPPY : result;
    }

    public static final int BE_EXEC_VERSION_FIELD_NUMBER = 6;
    private int beExecVersion_ = 0;
    /**
     * <code>optional int32 be_exec_version = 6 [default = 0];</code>
     * @return Whether the beExecVersion field is set.
     */
    @java.lang.Override
    public boolean hasBeExecVersion() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int32 be_exec_version = 6 [default = 0];</code>
     * @return The beExecVersion.
     */
    @java.lang.Override
    public int getBeExecVersion() {
      return beExecVersion_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < columnMetas_.size(); i++) {
        output.writeMessage(1, columnMetas_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(2, columnValues_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(3, compressed_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(4, uncompressedSize_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(5, compressionType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(6, beExecVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < columnMetas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, columnMetas_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, columnValues_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, compressed_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, uncompressedSize_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, compressionType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, beExecVersion_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getColumnMetasList()
          .equals(other.getColumnMetasList())) return false;
      if (hasColumnValues() != other.hasColumnValues()) return false;
      if (hasColumnValues()) {
        if (!getColumnValues()
            .equals(other.getColumnValues())) return false;
      }
      if (hasCompressed() != other.hasCompressed()) return false;
      if (hasCompressed()) {
        if (getCompressed()
            != other.getCompressed()) return false;
      }
      if (hasUncompressedSize() != other.hasUncompressedSize()) return false;
      if (hasUncompressedSize()) {
        if (getUncompressedSize()
            != other.getUncompressedSize()) return false;
      }
      if (hasCompressionType() != other.hasCompressionType()) return false;
      if (hasCompressionType()) {
        if (compressionType_ != other.compressionType_) return false;
      }
      if (hasBeExecVersion() != other.hasBeExecVersion()) return false;
      if (hasBeExecVersion()) {
        if (getBeExecVersion()
            != other.getBeExecVersion()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getColumnMetasCount() > 0) {
        hash = (37 * hash) + COLUMN_METAS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnMetasList().hashCode();
      }
      if (hasColumnValues()) {
        hash = (37 * hash) + COLUMN_VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getColumnValues().hashCode();
      }
      if (hasCompressed()) {
        hash = (37 * hash) + COMPRESSED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getCompressed());
      }
      if (hasUncompressedSize()) {
        hash = (37 * hash) + UNCOMPRESSED_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getUncompressedSize());
      }
      if (hasCompressionType()) {
        hash = (37 * hash) + COMPRESSION_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + compressionType_;
      }
      if (hasBeExecVersion()) {
        hash = (37 * hash) + BE_EXEC_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getBeExecVersion();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

      // Construct using org.apache.doris.proto.Data.PBlock.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (columnMetasBuilder_ == null) {
          columnMetas_ = java.util.Collections.emptyList();
        } else {
          columnMetas_ = null;
          columnMetasBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        columnValues_ = com.google.protobuf.ByteString.EMPTY;
        compressed_ = false;
        uncompressedSize_ = 0L;
        compressionType_ = 3;
        beExecVersion_ = 0;
        return this;
      }

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

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

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

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

      private void buildPartialRepeatedFields(org.apache.doris.proto.Data.PBlock result) {
        if (columnMetasBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            columnMetas_ = java.util.Collections.unmodifiableList(columnMetas_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.columnMetas_ = columnMetas_;
        } else {
          result.columnMetas_ = columnMetasBuilder_.build();
        }
      }

      private void buildPartial0(org.apache.doris.proto.Data.PBlock result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.columnValues_ = columnValues_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.compressed_ = compressed_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.uncompressedSize_ = uncompressedSize_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.compressionType_ = compressionType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.beExecVersion_ = beExecVersion_;
          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.Data.PBlock) {
          return mergeFrom((org.apache.doris.proto.Data.PBlock)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.doris.proto.Data.PBlock other) {
        if (other == org.apache.doris.proto.Data.PBlock.getDefaultInstance()) return this;
        if (columnMetasBuilder_ == null) {
          if (!other.columnMetas_.isEmpty()) {
            if (columnMetas_.isEmpty()) {
              columnMetas_ = other.columnMetas_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureColumnMetasIsMutable();
              columnMetas_.addAll(other.columnMetas_);
            }
            onChanged();
          }
        } else {
          if (!other.columnMetas_.isEmpty()) {
            if (columnMetasBuilder_.isEmpty()) {
              columnMetasBuilder_.dispose();
              columnMetasBuilder_ = null;
              columnMetas_ = other.columnMetas_;
              bitField0_ = (bitField0_ & ~0x00000001);
              columnMetasBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnMetasFieldBuilder() : null;
            } else {
              columnMetasBuilder_.addAllMessages(other.columnMetas_);
            }
          }
        }
        if (other.hasColumnValues()) {
          setColumnValues(other.getColumnValues());
        }
        if (other.hasCompressed()) {
          setCompressed(other.getCompressed());
        }
        if (other.hasUncompressedSize()) {
          setUncompressedSize(other.getUncompressedSize());
        }
        if (other.hasCompressionType()) {
          setCompressionType(other.getCompressionType());
        }
        if (other.hasBeExecVersion()) {
          setBeExecVersion(other.getBeExecVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.apache.doris.proto.Data.PColumnMeta m =
                    input.readMessage(
                        org.apache.doris.proto.Data.PColumnMeta.PARSER,
                        extensionRegistry);
                if (columnMetasBuilder_ == null) {
                  ensureColumnMetasIsMutable();
                  columnMetas_.add(m);
                } else {
                  columnMetasBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 18: {
                columnValues_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                compressed_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                uncompressedSize_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                int tmpRaw = input.readEnum();
                doris.segment_v2.SegmentV2.CompressionTypePB tmpValue =
                    doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(5, tmpRaw);
                } else {
                  compressionType_ = tmpRaw;
                  bitField0_ |= 0x00000010;
                }
                break;
              } // case 40
              case 48: {
                beExecVersion_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<org.apache.doris.proto.Data.PColumnMeta> columnMetas_ =
        java.util.Collections.emptyList();
      private void ensureColumnMetasIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          columnMetas_ = new java.util.ArrayList<org.apache.doris.proto.Data.PColumnMeta>(columnMetas_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Data.PColumnMeta, org.apache.doris.proto.Data.PColumnMeta.Builder, org.apache.doris.proto.Data.PColumnMetaOrBuilder> columnMetasBuilder_;

      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public java.util.List<org.apache.doris.proto.Data.PColumnMeta> getColumnMetasList() {
        if (columnMetasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(columnMetas_);
        } else {
          return columnMetasBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public int getColumnMetasCount() {
        if (columnMetasBuilder_ == null) {
          return columnMetas_.size();
        } else {
          return columnMetasBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta getColumnMetas(int index) {
        if (columnMetasBuilder_ == null) {
          return columnMetas_.get(index);
        } else {
          return columnMetasBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder setColumnMetas(
          int index, org.apache.doris.proto.Data.PColumnMeta value) {
        if (columnMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnMetasIsMutable();
          columnMetas_.set(index, value);
          onChanged();
        } else {
          columnMetasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder setColumnMetas(
          int index, org.apache.doris.proto.Data.PColumnMeta.Builder builderForValue) {
        if (columnMetasBuilder_ == null) {
          ensureColumnMetasIsMutable();
          columnMetas_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnMetasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder addColumnMetas(org.apache.doris.proto.Data.PColumnMeta value) {
        if (columnMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnMetasIsMutable();
          columnMetas_.add(value);
          onChanged();
        } else {
          columnMetasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder addColumnMetas(
          int index, org.apache.doris.proto.Data.PColumnMeta value) {
        if (columnMetasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnMetasIsMutable();
          columnMetas_.add(index, value);
          onChanged();
        } else {
          columnMetasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder addColumnMetas(
          org.apache.doris.proto.Data.PColumnMeta.Builder builderForValue) {
        if (columnMetasBuilder_ == null) {
          ensureColumnMetasIsMutable();
          columnMetas_.add(builderForValue.build());
          onChanged();
        } else {
          columnMetasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder addColumnMetas(
          int index, org.apache.doris.proto.Data.PColumnMeta.Builder builderForValue) {
        if (columnMetasBuilder_ == null) {
          ensureColumnMetasIsMutable();
          columnMetas_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnMetasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder addAllColumnMetas(
          java.lang.Iterable<? extends org.apache.doris.proto.Data.PColumnMeta> values) {
        if (columnMetasBuilder_ == null) {
          ensureColumnMetasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, columnMetas_);
          onChanged();
        } else {
          columnMetasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder clearColumnMetas() {
        if (columnMetasBuilder_ == null) {
          columnMetas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          columnMetasBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public Builder removeColumnMetas(int index) {
        if (columnMetasBuilder_ == null) {
          ensureColumnMetasIsMutable();
          columnMetas_.remove(index);
          onChanged();
        } else {
          columnMetasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.Builder getColumnMetasBuilder(
          int index) {
        return getColumnMetasFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public org.apache.doris.proto.Data.PColumnMetaOrBuilder getColumnMetasOrBuilder(
          int index) {
        if (columnMetasBuilder_ == null) {
          return columnMetas_.get(index);  } else {
          return columnMetasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public java.util.List<? extends org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
           getColumnMetasOrBuilderList() {
        if (columnMetasBuilder_ != null) {
          return columnMetasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(columnMetas_);
        }
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.Builder addColumnMetasBuilder() {
        return getColumnMetasFieldBuilder().addBuilder(
            org.apache.doris.proto.Data.PColumnMeta.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public org.apache.doris.proto.Data.PColumnMeta.Builder addColumnMetasBuilder(
          int index) {
        return getColumnMetasFieldBuilder().addBuilder(
            index, org.apache.doris.proto.Data.PColumnMeta.getDefaultInstance());
      }
      /**
       * <code>repeated .doris.PColumnMeta column_metas = 1;</code>
       */
      public java.util.List<org.apache.doris.proto.Data.PColumnMeta.Builder> 
           getColumnMetasBuilderList() {
        return getColumnMetasFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.apache.doris.proto.Data.PColumnMeta, org.apache.doris.proto.Data.PColumnMeta.Builder, org.apache.doris.proto.Data.PColumnMetaOrBuilder> 
          getColumnMetasFieldBuilder() {
        if (columnMetasBuilder_ == null) {
          columnMetasBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.apache.doris.proto.Data.PColumnMeta, org.apache.doris.proto.Data.PColumnMeta.Builder, org.apache.doris.proto.Data.PColumnMetaOrBuilder>(
                  columnMetas_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          columnMetas_ = null;
        }
        return columnMetasBuilder_;
      }

      private com.google.protobuf.ByteString columnValues_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes column_values = 2;</code>
       * @return Whether the columnValues field is set.
       */
      @java.lang.Override
      public boolean hasColumnValues() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional bytes column_values = 2;</code>
       * @return The columnValues.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getColumnValues() {
        return columnValues_;
      }
      /**
       * <code>optional bytes column_values = 2;</code>
       * @param value The columnValues to set.
       * @return This builder for chaining.
       */
      public Builder setColumnValues(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        columnValues_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes column_values = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnValues() {
        bitField0_ = (bitField0_ & ~0x00000002);
        columnValues_ = getDefaultInstance().getColumnValues();
        onChanged();
        return this;
      }

      private boolean compressed_ ;
      /**
       * <code>optional bool compressed = 3 [default = false];</code>
       * @return Whether the compressed field is set.
       */
      @java.lang.Override
      public boolean hasCompressed() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool compressed = 3 [default = false];</code>
       * @return The compressed.
       */
      @java.lang.Override
      public boolean getCompressed() {
        return compressed_;
      }
      /**
       * <code>optional bool compressed = 3 [default = false];</code>
       * @param value The compressed to set.
       * @return This builder for chaining.
       */
      public Builder setCompressed(boolean value) {

        compressed_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool compressed = 3 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressed() {
        bitField0_ = (bitField0_ & ~0x00000004);
        compressed_ = false;
        onChanged();
        return this;
      }

      private long uncompressedSize_ ;
      /**
       * <code>optional int64 uncompressed_size = 4;</code>
       * @return Whether the uncompressedSize field is set.
       */
      @java.lang.Override
      public boolean hasUncompressedSize() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int64 uncompressed_size = 4;</code>
       * @return The uncompressedSize.
       */
      @java.lang.Override
      public long getUncompressedSize() {
        return uncompressedSize_;
      }
      /**
       * <code>optional int64 uncompressed_size = 4;</code>
       * @param value The uncompressedSize to set.
       * @return This builder for chaining.
       */
      public Builder setUncompressedSize(long value) {

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

      private int compressionType_ = 3;
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
       * @return Whether the compressionType field is set.
       */
      @java.lang.Override public boolean hasCompressionType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
       * @return The compressionType.
       */
      @java.lang.Override
      public doris.segment_v2.SegmentV2.CompressionTypePB getCompressionType() {
        doris.segment_v2.SegmentV2.CompressionTypePB result = doris.segment_v2.SegmentV2.CompressionTypePB.forNumber(compressionType_);
        return result == null ? doris.segment_v2.SegmentV2.CompressionTypePB.SNAPPY : result;
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
       * @param value The compressionType to set.
       * @return This builder for chaining.
       */
      public Builder setCompressionType(doris.segment_v2.SegmentV2.CompressionTypePB value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        compressionType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .doris.segment_v2.CompressionTypePB compression_type = 5 [default = SNAPPY];</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressionType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        compressionType_ = 3;
        onChanged();
        return this;
      }

      private int beExecVersion_ ;
      /**
       * <code>optional int32 be_exec_version = 6 [default = 0];</code>
       * @return Whether the beExecVersion field is set.
       */
      @java.lang.Override
      public boolean hasBeExecVersion() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional int32 be_exec_version = 6 [default = 0];</code>
       * @return The beExecVersion.
       */
      @java.lang.Override
      public int getBeExecVersion() {
        return beExecVersion_;
      }
      /**
       * <code>optional int32 be_exec_version = 6 [default = 0];</code>
       * @param value The beExecVersion to set.
       * @return This builder for chaining.
       */
      public Builder setBeExecVersion(int value) {

        beExecVersion_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 be_exec_version = 6 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearBeExecVersion() {
        bitField0_ = (bitField0_ & ~0x00000020);
        beExecVersion_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static org.apache.doris.proto.Data.PBlock getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PNodeStatistics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PNodeStatistics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PQueryStatistics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PQueryStatistics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PRowBatch_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PRowBatch_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PColumnMeta_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PColumnMeta_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PColumnMeta_Decimal_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PColumnMeta_Decimal_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_doris_PBlock_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_doris_PBlock_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\ndata.proto\022\005doris\032\013types.proto\032\020segmen" +
      "t_v2.proto\"=\n\017PNodeStatistics\022\017\n\007node_id" +
      "\030\001 \002(\003\022\031\n\021peak_memory_bytes\030\002 \001(\003\"\331\002\n\020PQ" +
      "ueryStatistics\022\021\n\tscan_rows\030\001 \001(\003\022\022\n\nsca" +
      "n_bytes\030\002 \001(\003\022\025\n\rreturned_rows\030\003 \001(\003\022\016\n\006" +
      "cpu_ms\030\004 \001(\003\022\035\n\025max_peak_memory_bytes\030\005 " +
      "\001(\003\0220\n\020nodes_statistics\030\006 \003(\0132\026.doris.PN" +
      "odeStatistics\022%\n\035scan_bytes_from_local_s" +
      "torage\030\007 \001(\003\022&\n\036scan_bytes_from_remote_s" +
      "torage\030\010 \001(\003\022*\n\"spill_write_bytes_to_loc" +
      "al_storage\030\t \001(\003\022+\n#spill_read_bytes_fro" +
      "m_local_storage\030\n \001(\003\"\216\001\n\tPRowBatch\022\020\n\010n" +
      "um_rows\030\001 \002(\005\022\022\n\nrow_tuples\030\002 \003(\005\022\025\n\rtup" +
      "le_offsets\030\003 \003(\005\022\022\n\ntuple_data\030\004 \002(\014\022\025\n\r" +
      "is_compressed\030\005 \002(\010\022\031\n\021new_tuple_offsets" +
      "\030\006 \003(\003\"\276\002\n\013PColumnMeta\022\016\n\004name\030\001 \001(\t:\000\0221" +
      "\n\004type\030\002 \001(\0162\032.doris.PGenericType.TypeId" +
      ":\007UNKNOWN\022\032\n\013is_nullable\030\003 \001(\010:\005false\0221\n" +
      "\rdecimal_param\030\004 \001(\0132\032.doris.PColumnMeta" +
      ".Decimal\022$\n\010children\030\005 \003(\0132\022.doris.PColu" +
      "mnMeta\022\032\n\022result_is_nullable\030\006 \001(\010\022\025\n\rfu" +
      "nction_name\030\007 \001(\t\022\027\n\017be_exec_version\030\010 \001" +
      "(\005\032+\n\007Decimal\022\021\n\tprecision\030\001 \001(\r\022\r\n\005scal" +
      "e\030\002 \001(\r\"\342\001\n\006PBlock\022(\n\014column_metas\030\001 \003(\013" +
      "2\022.doris.PColumnMeta\022\025\n\rcolumn_values\030\002 " +
      "\001(\014\022\031\n\ncompressed\030\003 \001(\010:\005false\022\031\n\021uncomp" +
      "ressed_size\030\004 \001(\003\022E\n\020compression_type\030\005 " +
      "\001(\0162#.doris.segment_v2.CompressionTypePB" +
      ":\006SNAPPY\022\032\n\017be_exec_version\030\006 \001(\005:\0010B\030\n\026" +
      "org.apache.doris.proto"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          org.apache.doris.proto.Types.getDescriptor(),
          doris.segment_v2.SegmentV2.getDescriptor(),
        });
    internal_static_doris_PNodeStatistics_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_doris_PNodeStatistics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PNodeStatistics_descriptor,
        new java.lang.String[] { "NodeId", "PeakMemoryBytes", });
    internal_static_doris_PQueryStatistics_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_doris_PQueryStatistics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PQueryStatistics_descriptor,
        new java.lang.String[] { "ScanRows", "ScanBytes", "ReturnedRows", "CpuMs", "MaxPeakMemoryBytes", "NodesStatistics", "ScanBytesFromLocalStorage", "ScanBytesFromRemoteStorage", "SpillWriteBytesToLocalStorage", "SpillReadBytesFromLocalStorage", });
    internal_static_doris_PRowBatch_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_doris_PRowBatch_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PRowBatch_descriptor,
        new java.lang.String[] { "NumRows", "RowTuples", "TupleOffsets", "TupleData", "IsCompressed", "NewTupleOffsets", });
    internal_static_doris_PColumnMeta_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_doris_PColumnMeta_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PColumnMeta_descriptor,
        new java.lang.String[] { "Name", "Type", "IsNullable", "DecimalParam", "Children", "ResultIsNullable", "FunctionName", "BeExecVersion", });
    internal_static_doris_PColumnMeta_Decimal_descriptor =
      internal_static_doris_PColumnMeta_descriptor.getNestedTypes().get(0);
    internal_static_doris_PColumnMeta_Decimal_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PColumnMeta_Decimal_descriptor,
        new java.lang.String[] { "Precision", "Scale", });
    internal_static_doris_PBlock_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_doris_PBlock_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_doris_PBlock_descriptor,
        new java.lang.String[] { "ColumnMetas", "ColumnValues", "Compressed", "UncompressedSize", "CompressionType", "BeExecVersion", });
    org.apache.doris.proto.Types.getDescriptor();
    doris.segment_v2.SegmentV2.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}