// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: greptime/v1/row.proto

package io.greptime.v1;

public final class RowData {
  private RowData() {}
  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 RowsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.Rows)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    java.util.List<io.greptime.v1.RowData.ColumnSchema> 
        getSchemaList();
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    io.greptime.v1.RowData.ColumnSchema getSchema(int index);
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    int getSchemaCount();
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.RowData.ColumnSchemaOrBuilder> 
        getSchemaOrBuilderList();
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    io.greptime.v1.RowData.ColumnSchemaOrBuilder getSchemaOrBuilder(
        int index);

    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    java.util.List<io.greptime.v1.RowData.Row> 
        getRowsList();
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    io.greptime.v1.RowData.Row getRows(int index);
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    int getRowsCount();
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    java.util.List<? extends io.greptime.v1.RowData.RowOrBuilder> 
        getRowsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    io.greptime.v1.RowData.RowOrBuilder getRowsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.Rows}
   */
  public static final class Rows extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Rows)
      RowsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Rows.newBuilder() to construct.
    private Rows(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Rows() {
      schema_ = java.util.Collections.emptyList();
      rows_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Rows(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                schema_ = new java.util.ArrayList<io.greptime.v1.RowData.ColumnSchema>();
                mutable_bitField0_ |= 0x00000001;
              }
              schema_.add(
                  input.readMessage(io.greptime.v1.RowData.ColumnSchema.parser(), extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                rows_ = new java.util.ArrayList<io.greptime.v1.RowData.Row>();
                mutable_bitField0_ |= 0x00000002;
              }
              rows_.add(
                  input.readMessage(io.greptime.v1.RowData.Row.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          schema_ = java.util.Collections.unmodifiableList(schema_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          rows_ = java.util.Collections.unmodifiableList(rows_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_Rows_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_Rows_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.RowData.Rows.class, io.greptime.v1.RowData.Rows.Builder.class);
    }

    public static final int SCHEMA_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.RowData.ColumnSchema> schema_;
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.RowData.ColumnSchema> getSchemaList() {
      return schema_;
    }
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.RowData.ColumnSchemaOrBuilder> 
        getSchemaOrBuilderList() {
      return schema_;
    }
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    @java.lang.Override
    public int getSchemaCount() {
      return schema_.size();
    }
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.ColumnSchema getSchema(int index) {
      return schema_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.ColumnSchemaOrBuilder getSchemaOrBuilder(
        int index) {
      return schema_.get(index);
    }

    public static final int ROWS_FIELD_NUMBER = 2;
    private java.util.List<io.greptime.v1.RowData.Row> rows_;
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.RowData.Row> getRowsList() {
      return rows_;
    }
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.RowData.RowOrBuilder> 
        getRowsOrBuilderList() {
      return rows_;
    }
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    @java.lang.Override
    public int getRowsCount() {
      return rows_.size();
    }
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.Row getRows(int index) {
      return rows_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.Row rows = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.RowOrBuilder getRowsOrBuilder(
        int index) {
      return rows_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < schema_.size(); i++) {
        output.writeMessage(1, schema_.get(i));
      }
      for (int i = 0; i < rows_.size(); i++) {
        output.writeMessage(2, rows_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < schema_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, schema_.get(i));
      }
      for (int i = 0; i < rows_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, rows_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.greptime.v1.RowData.Rows)) {
        return super.equals(obj);
      }
      io.greptime.v1.RowData.Rows other = (io.greptime.v1.RowData.Rows) obj;

      if (!getSchemaList()
          .equals(other.getSchemaList())) return false;
      if (!getRowsList()
          .equals(other.getRowsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getSchemaCount() > 0) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchemaList().hashCode();
      }
      if (getRowsCount() > 0) {
        hash = (37 * hash) + ROWS_FIELD_NUMBER;
        hash = (53 * hash) + getRowsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.RowData.Rows parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Rows parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Rows parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Rows parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Rows parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Rows parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Rows parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Rows 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 io.greptime.v1.RowData.Rows parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Rows 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 io.greptime.v1.RowData.Rows parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Rows 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(io.greptime.v1.RowData.Rows 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 greptime.v1.Rows}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.Rows)
        io.greptime.v1.RowData.RowsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Rows_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Rows_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.RowData.Rows.class, io.greptime.v1.RowData.Rows.Builder.class);
      }

      // Construct using io.greptime.v1.RowData.Rows.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSchemaFieldBuilder();
          getRowsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (schemaBuilder_ == null) {
          schema_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          schemaBuilder_.clear();
        }
        if (rowsBuilder_ == null) {
          rows_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          rowsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Rows_descriptor;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Rows getDefaultInstanceForType() {
        return io.greptime.v1.RowData.Rows.getDefaultInstance();
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Rows build() {
        io.greptime.v1.RowData.Rows result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Rows buildPartial() {
        io.greptime.v1.RowData.Rows result = new io.greptime.v1.RowData.Rows(this);
        int from_bitField0_ = bitField0_;
        if (schemaBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            schema_ = java.util.Collections.unmodifiableList(schema_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.schema_ = schema_;
        } else {
          result.schema_ = schemaBuilder_.build();
        }
        if (rowsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            rows_ = java.util.Collections.unmodifiableList(rows_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.rows_ = rows_;
        } else {
          result.rows_ = rowsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @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 io.greptime.v1.RowData.Rows) {
          return mergeFrom((io.greptime.v1.RowData.Rows)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.RowData.Rows other) {
        if (other == io.greptime.v1.RowData.Rows.getDefaultInstance()) return this;
        if (schemaBuilder_ == null) {
          if (!other.schema_.isEmpty()) {
            if (schema_.isEmpty()) {
              schema_ = other.schema_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSchemaIsMutable();
              schema_.addAll(other.schema_);
            }
            onChanged();
          }
        } else {
          if (!other.schema_.isEmpty()) {
            if (schemaBuilder_.isEmpty()) {
              schemaBuilder_.dispose();
              schemaBuilder_ = null;
              schema_ = other.schema_;
              bitField0_ = (bitField0_ & ~0x00000001);
              schemaBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSchemaFieldBuilder() : null;
            } else {
              schemaBuilder_.addAllMessages(other.schema_);
            }
          }
        }
        if (rowsBuilder_ == null) {
          if (!other.rows_.isEmpty()) {
            if (rows_.isEmpty()) {
              rows_ = other.rows_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureRowsIsMutable();
              rows_.addAll(other.rows_);
            }
            onChanged();
          }
        } else {
          if (!other.rows_.isEmpty()) {
            if (rowsBuilder_.isEmpty()) {
              rowsBuilder_.dispose();
              rowsBuilder_ = null;
              rows_ = other.rows_;
              bitField0_ = (bitField0_ & ~0x00000002);
              rowsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRowsFieldBuilder() : null;
            } else {
              rowsBuilder_.addAllMessages(other.rows_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        io.greptime.v1.RowData.Rows parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.RowData.Rows) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<io.greptime.v1.RowData.ColumnSchema> schema_ =
        java.util.Collections.emptyList();
      private void ensureSchemaIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          schema_ = new java.util.ArrayList<io.greptime.v1.RowData.ColumnSchema>(schema_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.RowData.ColumnSchema, io.greptime.v1.RowData.ColumnSchema.Builder, io.greptime.v1.RowData.ColumnSchemaOrBuilder> schemaBuilder_;

      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public java.util.List<io.greptime.v1.RowData.ColumnSchema> getSchemaList() {
        if (schemaBuilder_ == null) {
          return java.util.Collections.unmodifiableList(schema_);
        } else {
          return schemaBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public int getSchemaCount() {
        if (schemaBuilder_ == null) {
          return schema_.size();
        } else {
          return schemaBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public io.greptime.v1.RowData.ColumnSchema getSchema(int index) {
        if (schemaBuilder_ == null) {
          return schema_.get(index);
        } else {
          return schemaBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder setSchema(
          int index, io.greptime.v1.RowData.ColumnSchema value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSchemaIsMutable();
          schema_.set(index, value);
          onChanged();
        } else {
          schemaBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder setSchema(
          int index, io.greptime.v1.RowData.ColumnSchema.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          ensureSchemaIsMutable();
          schema_.set(index, builderForValue.build());
          onChanged();
        } else {
          schemaBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder addSchema(io.greptime.v1.RowData.ColumnSchema value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSchemaIsMutable();
          schema_.add(value);
          onChanged();
        } else {
          schemaBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder addSchema(
          int index, io.greptime.v1.RowData.ColumnSchema value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSchemaIsMutable();
          schema_.add(index, value);
          onChanged();
        } else {
          schemaBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder addSchema(
          io.greptime.v1.RowData.ColumnSchema.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          ensureSchemaIsMutable();
          schema_.add(builderForValue.build());
          onChanged();
        } else {
          schemaBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder addSchema(
          int index, io.greptime.v1.RowData.ColumnSchema.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          ensureSchemaIsMutable();
          schema_.add(index, builderForValue.build());
          onChanged();
        } else {
          schemaBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder addAllSchema(
          java.lang.Iterable<? extends io.greptime.v1.RowData.ColumnSchema> values) {
        if (schemaBuilder_ == null) {
          ensureSchemaIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, schema_);
          onChanged();
        } else {
          schemaBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder clearSchema() {
        if (schemaBuilder_ == null) {
          schema_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          schemaBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public Builder removeSchema(int index) {
        if (schemaBuilder_ == null) {
          ensureSchemaIsMutable();
          schema_.remove(index);
          onChanged();
        } else {
          schemaBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public io.greptime.v1.RowData.ColumnSchema.Builder getSchemaBuilder(
          int index) {
        return getSchemaFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public io.greptime.v1.RowData.ColumnSchemaOrBuilder getSchemaOrBuilder(
          int index) {
        if (schemaBuilder_ == null) {
          return schema_.get(index);  } else {
          return schemaBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.RowData.ColumnSchemaOrBuilder> 
           getSchemaOrBuilderList() {
        if (schemaBuilder_ != null) {
          return schemaBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(schema_);
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public io.greptime.v1.RowData.ColumnSchema.Builder addSchemaBuilder() {
        return getSchemaFieldBuilder().addBuilder(
            io.greptime.v1.RowData.ColumnSchema.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public io.greptime.v1.RowData.ColumnSchema.Builder addSchemaBuilder(
          int index) {
        return getSchemaFieldBuilder().addBuilder(
            index, io.greptime.v1.RowData.ColumnSchema.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ColumnSchema schema = 1;</code>
       */
      public java.util.List<io.greptime.v1.RowData.ColumnSchema.Builder> 
           getSchemaBuilderList() {
        return getSchemaFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.RowData.ColumnSchema, io.greptime.v1.RowData.ColumnSchema.Builder, io.greptime.v1.RowData.ColumnSchemaOrBuilder> 
          getSchemaFieldBuilder() {
        if (schemaBuilder_ == null) {
          schemaBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.RowData.ColumnSchema, io.greptime.v1.RowData.ColumnSchema.Builder, io.greptime.v1.RowData.ColumnSchemaOrBuilder>(
                  schema_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          schema_ = null;
        }
        return schemaBuilder_;
      }

      private java.util.List<io.greptime.v1.RowData.Row> rows_ =
        java.util.Collections.emptyList();
      private void ensureRowsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          rows_ = new java.util.ArrayList<io.greptime.v1.RowData.Row>(rows_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.RowData.Row, io.greptime.v1.RowData.Row.Builder, io.greptime.v1.RowData.RowOrBuilder> rowsBuilder_;

      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public java.util.List<io.greptime.v1.RowData.Row> getRowsList() {
        if (rowsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rows_);
        } else {
          return rowsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public int getRowsCount() {
        if (rowsBuilder_ == null) {
          return rows_.size();
        } else {
          return rowsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public io.greptime.v1.RowData.Row getRows(int index) {
        if (rowsBuilder_ == null) {
          return rows_.get(index);
        } else {
          return rowsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder setRows(
          int index, io.greptime.v1.RowData.Row value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsIsMutable();
          rows_.set(index, value);
          onChanged();
        } else {
          rowsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder setRows(
          int index, io.greptime.v1.RowData.Row.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.set(index, builderForValue.build());
          onChanged();
        } else {
          rowsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder addRows(io.greptime.v1.RowData.Row value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsIsMutable();
          rows_.add(value);
          onChanged();
        } else {
          rowsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder addRows(
          int index, io.greptime.v1.RowData.Row value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsIsMutable();
          rows_.add(index, value);
          onChanged();
        } else {
          rowsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder addRows(
          io.greptime.v1.RowData.Row.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.add(builderForValue.build());
          onChanged();
        } else {
          rowsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder addRows(
          int index, io.greptime.v1.RowData.Row.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.add(index, builderForValue.build());
          onChanged();
        } else {
          rowsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder addAllRows(
          java.lang.Iterable<? extends io.greptime.v1.RowData.Row> values) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rows_);
          onChanged();
        } else {
          rowsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder clearRows() {
        if (rowsBuilder_ == null) {
          rows_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          rowsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public Builder removeRows(int index) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.remove(index);
          onChanged();
        } else {
          rowsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public io.greptime.v1.RowData.Row.Builder getRowsBuilder(
          int index) {
        return getRowsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public io.greptime.v1.RowData.RowOrBuilder getRowsOrBuilder(
          int index) {
        if (rowsBuilder_ == null) {
          return rows_.get(index);  } else {
          return rowsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public java.util.List<? extends io.greptime.v1.RowData.RowOrBuilder> 
           getRowsOrBuilderList() {
        if (rowsBuilder_ != null) {
          return rowsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rows_);
        }
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public io.greptime.v1.RowData.Row.Builder addRowsBuilder() {
        return getRowsFieldBuilder().addBuilder(
            io.greptime.v1.RowData.Row.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public io.greptime.v1.RowData.Row.Builder addRowsBuilder(
          int index) {
        return getRowsFieldBuilder().addBuilder(
            index, io.greptime.v1.RowData.Row.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Row rows = 2;</code>
       */
      public java.util.List<io.greptime.v1.RowData.Row.Builder> 
           getRowsBuilderList() {
        return getRowsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.RowData.Row, io.greptime.v1.RowData.Row.Builder, io.greptime.v1.RowData.RowOrBuilder> 
          getRowsFieldBuilder() {
        if (rowsBuilder_ == null) {
          rowsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.RowData.Row, io.greptime.v1.RowData.Row.Builder, io.greptime.v1.RowData.RowOrBuilder>(
                  rows_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          rows_ = null;
        }
        return rowsBuilder_;
      }
      @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:greptime.v1.Rows)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.Rows)
    private static final io.greptime.v1.RowData.Rows DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.greptime.v1.RowData.Rows();
    }

    public static io.greptime.v1.RowData.Rows getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Rows>
        PARSER = new com.google.protobuf.AbstractParser<Rows>() {
      @java.lang.Override
      public Rows parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Rows(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public io.greptime.v1.RowData.Rows getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ColumnSchemaOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.ColumnSchema)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string column_name = 1;</code>
     * @return The columnName.
     */
    java.lang.String getColumnName();
    /**
     * <code>string column_name = 1;</code>
     * @return The bytes for columnName.
     */
    com.google.protobuf.ByteString
        getColumnNameBytes();

    /**
     * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
     * @return The enum numeric value on the wire for datatype.
     */
    int getDatatypeValue();
    /**
     * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
     * @return The datatype.
     */
    io.greptime.v1.Common.ColumnDataType getDatatype();

    /**
     * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
     * @return The enum numeric value on the wire for semanticType.
     */
    int getSemanticTypeValue();
    /**
     * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
     * @return The semanticType.
     */
    io.greptime.v1.Common.SemanticType getSemanticType();

    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
     * @return Whether the datatypeExtension field is set.
     */
    boolean hasDatatypeExtension();
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
     * @return The datatypeExtension.
     */
    io.greptime.v1.Common.ColumnDataTypeExtension getDatatypeExtension();
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
     */
    io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getDatatypeExtensionOrBuilder();

    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 5;</code>
     * @return Whether the options field is set.
     */
    boolean hasOptions();
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 5;</code>
     * @return The options.
     */
    io.greptime.v1.Common.ColumnOptions getOptions();
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 5;</code>
     */
    io.greptime.v1.Common.ColumnOptionsOrBuilder getOptionsOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.ColumnSchema}
   */
  public static final class ColumnSchema extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ColumnSchema)
      ColumnSchemaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ColumnSchema.newBuilder() to construct.
    private ColumnSchema(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ColumnSchema() {
      columnName_ = "";
      datatype_ = 0;
      semanticType_ = 0;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ColumnSchema(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              columnName_ = s;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();

              datatype_ = rawValue;
              break;
            }
            case 24: {
              int rawValue = input.readEnum();

              semanticType_ = rawValue;
              break;
            }
            case 34: {
              io.greptime.v1.Common.ColumnDataTypeExtension.Builder subBuilder = null;
              if (datatypeExtension_ != null) {
                subBuilder = datatypeExtension_.toBuilder();
              }
              datatypeExtension_ = input.readMessage(io.greptime.v1.Common.ColumnDataTypeExtension.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(datatypeExtension_);
                datatypeExtension_ = subBuilder.buildPartial();
              }

              break;
            }
            case 42: {
              io.greptime.v1.Common.ColumnOptions.Builder subBuilder = null;
              if (options_ != null) {
                subBuilder = options_.toBuilder();
              }
              options_ = input.readMessage(io.greptime.v1.Common.ColumnOptions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(options_);
                options_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_ColumnSchema_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_ColumnSchema_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.RowData.ColumnSchema.class, io.greptime.v1.RowData.ColumnSchema.Builder.class);
    }

    public static final int COLUMN_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object columnName_;
    /**
     * <code>string column_name = 1;</code>
     * @return The columnName.
     */
    @java.lang.Override
    public java.lang.String getColumnName() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        columnName_ = s;
        return s;
      }
    }
    /**
     * <code>string column_name = 1;</code>
     * @return The bytes for columnName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColumnNameBytes() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        columnName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATATYPE_FIELD_NUMBER = 2;
    private int datatype_;
    /**
     * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
     * @return The enum numeric value on the wire for datatype.
     */
    @java.lang.Override public int getDatatypeValue() {
      return datatype_;
    }
    /**
     * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
     * @return The datatype.
     */
    @java.lang.Override public io.greptime.v1.Common.ColumnDataType getDatatype() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Common.ColumnDataType result = io.greptime.v1.Common.ColumnDataType.valueOf(datatype_);
      return result == null ? io.greptime.v1.Common.ColumnDataType.UNRECOGNIZED : result;
    }

    public static final int SEMANTIC_TYPE_FIELD_NUMBER = 3;
    private int semanticType_;
    /**
     * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
     * @return The enum numeric value on the wire for semanticType.
     */
    @java.lang.Override public int getSemanticTypeValue() {
      return semanticType_;
    }
    /**
     * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
     * @return The semanticType.
     */
    @java.lang.Override public io.greptime.v1.Common.SemanticType getSemanticType() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Common.SemanticType result = io.greptime.v1.Common.SemanticType.valueOf(semanticType_);
      return result == null ? io.greptime.v1.Common.SemanticType.UNRECOGNIZED : result;
    }

    public static final int DATATYPE_EXTENSION_FIELD_NUMBER = 4;
    private io.greptime.v1.Common.ColumnDataTypeExtension datatypeExtension_;
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
     * @return Whether the datatypeExtension field is set.
     */
    @java.lang.Override
    public boolean hasDatatypeExtension() {
      return datatypeExtension_ != null;
    }
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
     * @return The datatypeExtension.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnDataTypeExtension getDatatypeExtension() {
      return datatypeExtension_ == null ? io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : datatypeExtension_;
    }
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getDatatypeExtensionOrBuilder() {
      return getDatatypeExtension();
    }

    public static final int OPTIONS_FIELD_NUMBER = 5;
    private io.greptime.v1.Common.ColumnOptions options_;
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 5;</code>
     * @return Whether the options field is set.
     */
    @java.lang.Override
    public boolean hasOptions() {
      return options_ != null;
    }
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 5;</code>
     * @return The options.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnOptions getOptions() {
      return options_ == null ? io.greptime.v1.Common.ColumnOptions.getDefaultInstance() : options_;
    }
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 5;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnOptionsOrBuilder getOptionsOrBuilder() {
      return getOptions();
    }

    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, columnName_);
      }
      if (datatype_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        output.writeEnum(2, datatype_);
      }
      if (semanticType_ != io.greptime.v1.Common.SemanticType.TAG.getNumber()) {
        output.writeEnum(3, semanticType_);
      }
      if (datatypeExtension_ != null) {
        output.writeMessage(4, getDatatypeExtension());
      }
      if (options_ != null) {
        output.writeMessage(5, getOptions());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      if (datatype_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, datatype_);
      }
      if (semanticType_ != io.greptime.v1.Common.SemanticType.TAG.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, semanticType_);
      }
      if (datatypeExtension_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getDatatypeExtension());
      }
      if (options_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getOptions());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.greptime.v1.RowData.ColumnSchema)) {
        return super.equals(obj);
      }
      io.greptime.v1.RowData.ColumnSchema other = (io.greptime.v1.RowData.ColumnSchema) obj;

      if (!getColumnName()
          .equals(other.getColumnName())) return false;
      if (datatype_ != other.datatype_) return false;
      if (semanticType_ != other.semanticType_) return false;
      if (hasDatatypeExtension() != other.hasDatatypeExtension()) return false;
      if (hasDatatypeExtension()) {
        if (!getDatatypeExtension()
            .equals(other.getDatatypeExtension())) return false;
      }
      if (hasOptions() != other.hasOptions()) return false;
      if (hasOptions()) {
        if (!getOptions()
            .equals(other.getOptions())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getColumnName().hashCode();
      hash = (37 * hash) + DATATYPE_FIELD_NUMBER;
      hash = (53 * hash) + datatype_;
      hash = (37 * hash) + SEMANTIC_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + semanticType_;
      if (hasDatatypeExtension()) {
        hash = (37 * hash) + DATATYPE_EXTENSION_FIELD_NUMBER;
        hash = (53 * hash) + getDatatypeExtension().hashCode();
      }
      if (hasOptions()) {
        hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.RowData.ColumnSchema parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.ColumnSchema parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.ColumnSchema parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.ColumnSchema parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.ColumnSchema parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.ColumnSchema parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.ColumnSchema parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.ColumnSchema 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 io.greptime.v1.RowData.ColumnSchema parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.ColumnSchema 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 io.greptime.v1.RowData.ColumnSchema parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.ColumnSchema 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(io.greptime.v1.RowData.ColumnSchema 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 greptime.v1.ColumnSchema}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.ColumnSchema)
        io.greptime.v1.RowData.ColumnSchemaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_ColumnSchema_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_ColumnSchema_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.RowData.ColumnSchema.class, io.greptime.v1.RowData.ColumnSchema.Builder.class);
      }

      // Construct using io.greptime.v1.RowData.ColumnSchema.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        columnName_ = "";

        datatype_ = 0;

        semanticType_ = 0;

        if (datatypeExtensionBuilder_ == null) {
          datatypeExtension_ = null;
        } else {
          datatypeExtension_ = null;
          datatypeExtensionBuilder_ = null;
        }
        if (optionsBuilder_ == null) {
          options_ = null;
        } else {
          options_ = null;
          optionsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_ColumnSchema_descriptor;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.ColumnSchema getDefaultInstanceForType() {
        return io.greptime.v1.RowData.ColumnSchema.getDefaultInstance();
      }

      @java.lang.Override
      public io.greptime.v1.RowData.ColumnSchema build() {
        io.greptime.v1.RowData.ColumnSchema result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.ColumnSchema buildPartial() {
        io.greptime.v1.RowData.ColumnSchema result = new io.greptime.v1.RowData.ColumnSchema(this);
        result.columnName_ = columnName_;
        result.datatype_ = datatype_;
        result.semanticType_ = semanticType_;
        if (datatypeExtensionBuilder_ == null) {
          result.datatypeExtension_ = datatypeExtension_;
        } else {
          result.datatypeExtension_ = datatypeExtensionBuilder_.build();
        }
        if (optionsBuilder_ == null) {
          result.options_ = options_;
        } else {
          result.options_ = optionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @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 io.greptime.v1.RowData.ColumnSchema) {
          return mergeFrom((io.greptime.v1.RowData.ColumnSchema)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.RowData.ColumnSchema other) {
        if (other == io.greptime.v1.RowData.ColumnSchema.getDefaultInstance()) return this;
        if (!other.getColumnName().isEmpty()) {
          columnName_ = other.columnName_;
          onChanged();
        }
        if (other.datatype_ != 0) {
          setDatatypeValue(other.getDatatypeValue());
        }
        if (other.semanticType_ != 0) {
          setSemanticTypeValue(other.getSemanticTypeValue());
        }
        if (other.hasDatatypeExtension()) {
          mergeDatatypeExtension(other.getDatatypeExtension());
        }
        if (other.hasOptions()) {
          mergeOptions(other.getOptions());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        io.greptime.v1.RowData.ColumnSchema parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.RowData.ColumnSchema) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object columnName_ = "";
      /**
       * <code>string column_name = 1;</code>
       * @return The columnName.
       */
      public java.lang.String getColumnName() {
        java.lang.Object ref = columnName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          columnName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string column_name = 1;</code>
       * @return The bytes for columnName.
       */
      public com.google.protobuf.ByteString
          getColumnNameBytes() {
        java.lang.Object ref = columnName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string column_name = 1;</code>
       * @param value The columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        columnName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string column_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnName() {
        
        columnName_ = getDefaultInstance().getColumnName();
        onChanged();
        return this;
      }
      /**
       * <code>string column_name = 1;</code>
       * @param value The bytes for columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        columnName_ = value;
        onChanged();
        return this;
      }

      private int datatype_ = 0;
      /**
       * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
       * @return The enum numeric value on the wire for datatype.
       */
      @java.lang.Override public int getDatatypeValue() {
        return datatype_;
      }
      /**
       * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
       * @param value The enum numeric value on the wire for datatype to set.
       * @return This builder for chaining.
       */
      public Builder setDatatypeValue(int value) {
        
        datatype_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
       * @return The datatype.
       */
      @java.lang.Override
      public io.greptime.v1.Common.ColumnDataType getDatatype() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Common.ColumnDataType result = io.greptime.v1.Common.ColumnDataType.valueOf(datatype_);
        return result == null ? io.greptime.v1.Common.ColumnDataType.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
       * @param value The datatype to set.
       * @return This builder for chaining.
       */
      public Builder setDatatype(io.greptime.v1.Common.ColumnDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        datatype_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataType datatype = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDatatype() {
        
        datatype_ = 0;
        onChanged();
        return this;
      }

      private int semanticType_ = 0;
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
       * @return The enum numeric value on the wire for semanticType.
       */
      @java.lang.Override public int getSemanticTypeValue() {
        return semanticType_;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
       * @param value The enum numeric value on the wire for semanticType to set.
       * @return This builder for chaining.
       */
      public Builder setSemanticTypeValue(int value) {
        
        semanticType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
       * @return The semanticType.
       */
      @java.lang.Override
      public io.greptime.v1.Common.SemanticType getSemanticType() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Common.SemanticType result = io.greptime.v1.Common.SemanticType.valueOf(semanticType_);
        return result == null ? io.greptime.v1.Common.SemanticType.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
       * @param value The semanticType to set.
       * @return This builder for chaining.
       */
      public Builder setSemanticType(io.greptime.v1.Common.SemanticType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        semanticType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSemanticType() {
        
        semanticType_ = 0;
        onChanged();
        return this;
      }

      private io.greptime.v1.Common.ColumnDataTypeExtension datatypeExtension_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder> datatypeExtensionBuilder_;
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       * @return Whether the datatypeExtension field is set.
       */
      public boolean hasDatatypeExtension() {
        return datatypeExtensionBuilder_ != null || datatypeExtension_ != null;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       * @return The datatypeExtension.
       */
      public io.greptime.v1.Common.ColumnDataTypeExtension getDatatypeExtension() {
        if (datatypeExtensionBuilder_ == null) {
          return datatypeExtension_ == null ? io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : datatypeExtension_;
        } else {
          return datatypeExtensionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       */
      public Builder setDatatypeExtension(io.greptime.v1.Common.ColumnDataTypeExtension value) {
        if (datatypeExtensionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          datatypeExtension_ = value;
          onChanged();
        } else {
          datatypeExtensionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       */
      public Builder setDatatypeExtension(
          io.greptime.v1.Common.ColumnDataTypeExtension.Builder builderForValue) {
        if (datatypeExtensionBuilder_ == null) {
          datatypeExtension_ = builderForValue.build();
          onChanged();
        } else {
          datatypeExtensionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       */
      public Builder mergeDatatypeExtension(io.greptime.v1.Common.ColumnDataTypeExtension value) {
        if (datatypeExtensionBuilder_ == null) {
          if (datatypeExtension_ != null) {
            datatypeExtension_ =
              io.greptime.v1.Common.ColumnDataTypeExtension.newBuilder(datatypeExtension_).mergeFrom(value).buildPartial();
          } else {
            datatypeExtension_ = value;
          }
          onChanged();
        } else {
          datatypeExtensionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       */
      public Builder clearDatatypeExtension() {
        if (datatypeExtensionBuilder_ == null) {
          datatypeExtension_ = null;
          onChanged();
        } else {
          datatypeExtension_ = null;
          datatypeExtensionBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       */
      public io.greptime.v1.Common.ColumnDataTypeExtension.Builder getDatatypeExtensionBuilder() {
        
        onChanged();
        return getDatatypeExtensionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       */
      public io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getDatatypeExtensionOrBuilder() {
        if (datatypeExtensionBuilder_ != null) {
          return datatypeExtensionBuilder_.getMessageOrBuilder();
        } else {
          return datatypeExtension_ == null ?
              io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : datatypeExtension_;
        }
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder> 
          getDatatypeExtensionFieldBuilder() {
        if (datatypeExtensionBuilder_ == null) {
          datatypeExtensionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder>(
                  getDatatypeExtension(),
                  getParentForChildren(),
                  isClean());
          datatypeExtension_ = null;
        }
        return datatypeExtensionBuilder_;
      }

      private io.greptime.v1.Common.ColumnOptions options_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder> optionsBuilder_;
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       * @return Whether the options field is set.
       */
      public boolean hasOptions() {
        return optionsBuilder_ != null || options_ != null;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       * @return The options.
       */
      public io.greptime.v1.Common.ColumnOptions getOptions() {
        if (optionsBuilder_ == null) {
          return options_ == null ? io.greptime.v1.Common.ColumnOptions.getDefaultInstance() : options_;
        } else {
          return optionsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       */
      public Builder setOptions(io.greptime.v1.Common.ColumnOptions value) {
        if (optionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          optionsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       */
      public Builder setOptions(
          io.greptime.v1.Common.ColumnOptions.Builder builderForValue) {
        if (optionsBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          optionsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       */
      public Builder mergeOptions(io.greptime.v1.Common.ColumnOptions value) {
        if (optionsBuilder_ == null) {
          if (options_ != null) {
            options_ =
              io.greptime.v1.Common.ColumnOptions.newBuilder(options_).mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          optionsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       */
      public Builder clearOptions() {
        if (optionsBuilder_ == null) {
          options_ = null;
          onChanged();
        } else {
          options_ = null;
          optionsBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       */
      public io.greptime.v1.Common.ColumnOptions.Builder getOptionsBuilder() {
        
        onChanged();
        return getOptionsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       */
      public io.greptime.v1.Common.ColumnOptionsOrBuilder getOptionsOrBuilder() {
        if (optionsBuilder_ != null) {
          return optionsBuilder_.getMessageOrBuilder();
        } else {
          return options_ == null ?
              io.greptime.v1.Common.ColumnOptions.getDefaultInstance() : options_;
        }
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder> 
          getOptionsFieldBuilder() {
        if (optionsBuilder_ == null) {
          optionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder>(
                  getOptions(),
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        return optionsBuilder_;
      }
      @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:greptime.v1.ColumnSchema)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.ColumnSchema)
    private static final io.greptime.v1.RowData.ColumnSchema DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.greptime.v1.RowData.ColumnSchema();
    }

    public static io.greptime.v1.RowData.ColumnSchema getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ColumnSchema>
        PARSER = new com.google.protobuf.AbstractParser<ColumnSchema>() {
      @java.lang.Override
      public ColumnSchema parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ColumnSchema(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public io.greptime.v1.RowData.ColumnSchema getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RowOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.Row)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    java.util.List<io.greptime.v1.RowData.Value> 
        getValuesList();
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    io.greptime.v1.RowData.Value getValues(int index);
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    int getValuesCount();
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.RowData.ValueOrBuilder> 
        getValuesOrBuilderList();
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    io.greptime.v1.RowData.ValueOrBuilder getValuesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.Row}
   */
  public static final class Row extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Row)
      RowOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Row.newBuilder() to construct.
    private Row(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Row() {
      values_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Row(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                values_ = new java.util.ArrayList<io.greptime.v1.RowData.Value>();
                mutable_bitField0_ |= 0x00000001;
              }
              values_.add(
                  input.readMessage(io.greptime.v1.RowData.Value.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          values_ = java.util.Collections.unmodifiableList(values_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_Row_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_Row_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.RowData.Row.class, io.greptime.v1.RowData.Row.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.RowData.Value> values_;
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.RowData.Value> getValuesList() {
      return values_;
    }
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.RowData.ValueOrBuilder> 
        getValuesOrBuilderList() {
      return values_;
    }
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    @java.lang.Override
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.Value getValues(int index) {
      return values_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.Value values = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.ValueOrBuilder getValuesOrBuilder(
        int index) {
      return values_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < values_.size(); i++) {
        output.writeMessage(1, values_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < values_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, values_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.greptime.v1.RowData.Row)) {
        return super.equals(obj);
      }
      io.greptime.v1.RowData.Row other = (io.greptime.v1.RowData.Row) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.RowData.Row parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Row parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Row parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Row parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Row parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Row parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Row parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Row 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 io.greptime.v1.RowData.Row parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Row 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 io.greptime.v1.RowData.Row parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Row 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(io.greptime.v1.RowData.Row 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 greptime.v1.Row}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.Row)
        io.greptime.v1.RowData.RowOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Row_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Row_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.RowData.Row.class, io.greptime.v1.RowData.Row.Builder.class);
      }

      // Construct using io.greptime.v1.RowData.Row.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getValuesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (valuesBuilder_ == null) {
          values_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          valuesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Row_descriptor;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Row getDefaultInstanceForType() {
        return io.greptime.v1.RowData.Row.getDefaultInstance();
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Row build() {
        io.greptime.v1.RowData.Row result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Row buildPartial() {
        io.greptime.v1.RowData.Row result = new io.greptime.v1.RowData.Row(this);
        int from_bitField0_ = bitField0_;
        if (valuesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            values_ = java.util.Collections.unmodifiableList(values_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.values_ = values_;
        } else {
          result.values_ = valuesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @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 io.greptime.v1.RowData.Row) {
          return mergeFrom((io.greptime.v1.RowData.Row)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.RowData.Row other) {
        if (other == io.greptime.v1.RowData.Row.getDefaultInstance()) return this;
        if (valuesBuilder_ == null) {
          if (!other.values_.isEmpty()) {
            if (values_.isEmpty()) {
              values_ = other.values_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureValuesIsMutable();
              values_.addAll(other.values_);
            }
            onChanged();
          }
        } else {
          if (!other.values_.isEmpty()) {
            if (valuesBuilder_.isEmpty()) {
              valuesBuilder_.dispose();
              valuesBuilder_ = null;
              values_ = other.values_;
              bitField0_ = (bitField0_ & ~0x00000001);
              valuesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getValuesFieldBuilder() : null;
            } else {
              valuesBuilder_.addAllMessages(other.values_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        io.greptime.v1.RowData.Row parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.RowData.Row) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<io.greptime.v1.RowData.Value> values_ =
        java.util.Collections.emptyList();
      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          values_ = new java.util.ArrayList<io.greptime.v1.RowData.Value>(values_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.RowData.Value, io.greptime.v1.RowData.Value.Builder, io.greptime.v1.RowData.ValueOrBuilder> valuesBuilder_;

      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public java.util.List<io.greptime.v1.RowData.Value> getValuesList() {
        if (valuesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(values_);
        } else {
          return valuesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public int getValuesCount() {
        if (valuesBuilder_ == null) {
          return values_.size();
        } else {
          return valuesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public io.greptime.v1.RowData.Value getValues(int index) {
        if (valuesBuilder_ == null) {
          return values_.get(index);
        } else {
          return valuesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder setValues(
          int index, io.greptime.v1.RowData.Value value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.set(index, value);
          onChanged();
        } else {
          valuesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder setValues(
          int index, io.greptime.v1.RowData.Value.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.set(index, builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder addValues(io.greptime.v1.RowData.Value value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.add(value);
          onChanged();
        } else {
          valuesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder addValues(
          int index, io.greptime.v1.RowData.Value value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.add(index, value);
          onChanged();
        } else {
          valuesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder addValues(
          io.greptime.v1.RowData.Value.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.add(builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder addValues(
          int index, io.greptime.v1.RowData.Value.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.add(index, builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends io.greptime.v1.RowData.Value> values) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, values_);
          onChanged();
        } else {
          valuesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder clearValues() {
        if (valuesBuilder_ == null) {
          values_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          valuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public Builder removeValues(int index) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.remove(index);
          onChanged();
        } else {
          valuesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public io.greptime.v1.RowData.Value.Builder getValuesBuilder(
          int index) {
        return getValuesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public io.greptime.v1.RowData.ValueOrBuilder getValuesOrBuilder(
          int index) {
        if (valuesBuilder_ == null) {
          return values_.get(index);  } else {
          return valuesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.RowData.ValueOrBuilder> 
           getValuesOrBuilderList() {
        if (valuesBuilder_ != null) {
          return valuesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(values_);
        }
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public io.greptime.v1.RowData.Value.Builder addValuesBuilder() {
        return getValuesFieldBuilder().addBuilder(
            io.greptime.v1.RowData.Value.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public io.greptime.v1.RowData.Value.Builder addValuesBuilder(
          int index) {
        return getValuesFieldBuilder().addBuilder(
            index, io.greptime.v1.RowData.Value.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Value values = 1;</code>
       */
      public java.util.List<io.greptime.v1.RowData.Value.Builder> 
           getValuesBuilderList() {
        return getValuesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.RowData.Value, io.greptime.v1.RowData.Value.Builder, io.greptime.v1.RowData.ValueOrBuilder> 
          getValuesFieldBuilder() {
        if (valuesBuilder_ == null) {
          valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.RowData.Value, io.greptime.v1.RowData.Value.Builder, io.greptime.v1.RowData.ValueOrBuilder>(
                  values_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        return valuesBuilder_;
      }
      @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:greptime.v1.Row)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.Row)
    private static final io.greptime.v1.RowData.Row DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.greptime.v1.RowData.Row();
    }

    public static io.greptime.v1.RowData.Row getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Row>
        PARSER = new com.google.protobuf.AbstractParser<Row>() {
      @java.lang.Override
      public Row parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Row(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public io.greptime.v1.RowData.Row getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.Value)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 i8_value = 1;</code>
     * @return Whether the i8Value field is set.
     */
    boolean hasI8Value();
    /**
     * <code>int32 i8_value = 1;</code>
     * @return The i8Value.
     */
    int getI8Value();

    /**
     * <code>int32 i16_value = 2;</code>
     * @return Whether the i16Value field is set.
     */
    boolean hasI16Value();
    /**
     * <code>int32 i16_value = 2;</code>
     * @return The i16Value.
     */
    int getI16Value();

    /**
     * <code>int32 i32_value = 3;</code>
     * @return Whether the i32Value field is set.
     */
    boolean hasI32Value();
    /**
     * <code>int32 i32_value = 3;</code>
     * @return The i32Value.
     */
    int getI32Value();

    /**
     * <code>int64 i64_value = 4;</code>
     * @return Whether the i64Value field is set.
     */
    boolean hasI64Value();
    /**
     * <code>int64 i64_value = 4;</code>
     * @return The i64Value.
     */
    long getI64Value();

    /**
     * <code>uint32 u8_value = 5;</code>
     * @return Whether the u8Value field is set.
     */
    boolean hasU8Value();
    /**
     * <code>uint32 u8_value = 5;</code>
     * @return The u8Value.
     */
    int getU8Value();

    /**
     * <code>uint32 u16_value = 6;</code>
     * @return Whether the u16Value field is set.
     */
    boolean hasU16Value();
    /**
     * <code>uint32 u16_value = 6;</code>
     * @return The u16Value.
     */
    int getU16Value();

    /**
     * <code>uint32 u32_value = 7;</code>
     * @return Whether the u32Value field is set.
     */
    boolean hasU32Value();
    /**
     * <code>uint32 u32_value = 7;</code>
     * @return The u32Value.
     */
    int getU32Value();

    /**
     * <code>uint64 u64_value = 8;</code>
     * @return Whether the u64Value field is set.
     */
    boolean hasU64Value();
    /**
     * <code>uint64 u64_value = 8;</code>
     * @return The u64Value.
     */
    long getU64Value();

    /**
     * <code>float f32_value = 9;</code>
     * @return Whether the f32Value field is set.
     */
    boolean hasF32Value();
    /**
     * <code>float f32_value = 9;</code>
     * @return The f32Value.
     */
    float getF32Value();

    /**
     * <code>double f64_value = 10;</code>
     * @return Whether the f64Value field is set.
     */
    boolean hasF64Value();
    /**
     * <code>double f64_value = 10;</code>
     * @return The f64Value.
     */
    double getF64Value();

    /**
     * <code>bool bool_value = 11;</code>
     * @return Whether the boolValue field is set.
     */
    boolean hasBoolValue();
    /**
     * <code>bool bool_value = 11;</code>
     * @return The boolValue.
     */
    boolean getBoolValue();

    /**
     * <code>bytes binary_value = 12;</code>
     * @return Whether the binaryValue field is set.
     */
    boolean hasBinaryValue();
    /**
     * <code>bytes binary_value = 12;</code>
     * @return The binaryValue.
     */
    com.google.protobuf.ByteString getBinaryValue();

    /**
     * <code>string string_value = 13;</code>
     * @return Whether the stringValue field is set.
     */
    boolean hasStringValue();
    /**
     * <code>string string_value = 13;</code>
     * @return The stringValue.
     */
    java.lang.String getStringValue();
    /**
     * <code>string string_value = 13;</code>
     * @return The bytes for stringValue.
     */
    com.google.protobuf.ByteString
        getStringValueBytes();

    /**
     * <code>int32 date_value = 14;</code>
     * @return Whether the dateValue field is set.
     */
    boolean hasDateValue();
    /**
     * <code>int32 date_value = 14;</code>
     * @return The dateValue.
     */
    int getDateValue();

    /**
     * <code>int64 datetime_value = 15;</code>
     * @return Whether the datetimeValue field is set.
     */
    boolean hasDatetimeValue();
    /**
     * <code>int64 datetime_value = 15;</code>
     * @return The datetimeValue.
     */
    long getDatetimeValue();

    /**
     * <code>int64 timestamp_second_value = 16;</code>
     * @return Whether the timestampSecondValue field is set.
     */
    boolean hasTimestampSecondValue();
    /**
     * <code>int64 timestamp_second_value = 16;</code>
     * @return The timestampSecondValue.
     */
    long getTimestampSecondValue();

    /**
     * <code>int64 timestamp_millisecond_value = 17;</code>
     * @return Whether the timestampMillisecondValue field is set.
     */
    boolean hasTimestampMillisecondValue();
    /**
     * <code>int64 timestamp_millisecond_value = 17;</code>
     * @return The timestampMillisecondValue.
     */
    long getTimestampMillisecondValue();

    /**
     * <code>int64 timestamp_microsecond_value = 18;</code>
     * @return Whether the timestampMicrosecondValue field is set.
     */
    boolean hasTimestampMicrosecondValue();
    /**
     * <code>int64 timestamp_microsecond_value = 18;</code>
     * @return The timestampMicrosecondValue.
     */
    long getTimestampMicrosecondValue();

    /**
     * <code>int64 timestamp_nanosecond_value = 19;</code>
     * @return Whether the timestampNanosecondValue field is set.
     */
    boolean hasTimestampNanosecondValue();
    /**
     * <code>int64 timestamp_nanosecond_value = 19;</code>
     * @return The timestampNanosecondValue.
     */
    long getTimestampNanosecondValue();

    /**
     * <code>int64 time_second_value = 20;</code>
     * @return Whether the timeSecondValue field is set.
     */
    boolean hasTimeSecondValue();
    /**
     * <code>int64 time_second_value = 20;</code>
     * @return The timeSecondValue.
     */
    long getTimeSecondValue();

    /**
     * <code>int64 time_millisecond_value = 21;</code>
     * @return Whether the timeMillisecondValue field is set.
     */
    boolean hasTimeMillisecondValue();
    /**
     * <code>int64 time_millisecond_value = 21;</code>
     * @return The timeMillisecondValue.
     */
    long getTimeMillisecondValue();

    /**
     * <code>int64 time_microsecond_value = 22;</code>
     * @return Whether the timeMicrosecondValue field is set.
     */
    boolean hasTimeMicrosecondValue();
    /**
     * <code>int64 time_microsecond_value = 22;</code>
     * @return The timeMicrosecondValue.
     */
    long getTimeMicrosecondValue();

    /**
     * <code>int64 time_nanosecond_value = 23;</code>
     * @return Whether the timeNanosecondValue field is set.
     */
    boolean hasTimeNanosecondValue();
    /**
     * <code>int64 time_nanosecond_value = 23;</code>
     * @return The timeNanosecondValue.
     */
    long getTimeNanosecondValue();

    /**
     * <code>int32 interval_year_month_value = 24;</code>
     * @return Whether the intervalYearMonthValue field is set.
     */
    boolean hasIntervalYearMonthValue();
    /**
     * <code>int32 interval_year_month_value = 24;</code>
     * @return The intervalYearMonthValue.
     */
    int getIntervalYearMonthValue();

    /**
     * <code>int64 interval_day_time_value = 25;</code>
     * @return Whether the intervalDayTimeValue field is set.
     */
    boolean hasIntervalDayTimeValue();
    /**
     * <code>int64 interval_day_time_value = 25;</code>
     * @return The intervalDayTimeValue.
     */
    long getIntervalDayTimeValue();

    /**
     * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
     * @return Whether the intervalMonthDayNanoValue field is set.
     */
    boolean hasIntervalMonthDayNanoValue();
    /**
     * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
     * @return The intervalMonthDayNanoValue.
     */
    io.greptime.v1.Common.IntervalMonthDayNano getIntervalMonthDayNanoValue();
    /**
     * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
     */
    io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder getIntervalMonthDayNanoValueOrBuilder();

    /**
     * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
     * @return Whether the decimal128Value field is set.
     */
    boolean hasDecimal128Value();
    /**
     * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
     * @return The decimal128Value.
     */
    io.greptime.v1.Common.Decimal128 getDecimal128Value();
    /**
     * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
     */
    io.greptime.v1.Common.Decimal128OrBuilder getDecimal128ValueOrBuilder();

    public io.greptime.v1.RowData.Value.ValueDataCase getValueDataCase();
  }
  /**
   * Protobuf type {@code greptime.v1.Value}
   */
  public static final class Value extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Value)
      ValueOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Value.newBuilder() to construct.
    private Value(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Value() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Value(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              valueData_ = input.readInt32();
              valueDataCase_ = 1;
              break;
            }
            case 16: {
              valueData_ = input.readInt32();
              valueDataCase_ = 2;
              break;
            }
            case 24: {
              valueData_ = input.readInt32();
              valueDataCase_ = 3;
              break;
            }
            case 32: {
              valueData_ = input.readInt64();
              valueDataCase_ = 4;
              break;
            }
            case 40: {
              valueData_ = input.readUInt32();
              valueDataCase_ = 5;
              break;
            }
            case 48: {
              valueData_ = input.readUInt32();
              valueDataCase_ = 6;
              break;
            }
            case 56: {
              valueData_ = input.readUInt32();
              valueDataCase_ = 7;
              break;
            }
            case 64: {
              valueData_ = input.readUInt64();
              valueDataCase_ = 8;
              break;
            }
            case 77: {
              valueData_ = input.readFloat();
              valueDataCase_ = 9;
              break;
            }
            case 81: {
              valueData_ = input.readDouble();
              valueDataCase_ = 10;
              break;
            }
            case 88: {
              valueData_ = input.readBool();
              valueDataCase_ = 11;
              break;
            }
            case 98: {
              valueData_ = input.readBytes();
              valueDataCase_ = 12;
              break;
            }
            case 106: {
              java.lang.String s = input.readStringRequireUtf8();
              valueDataCase_ = 13;
              valueData_ = s;
              break;
            }
            case 112: {
              valueData_ = input.readInt32();
              valueDataCase_ = 14;
              break;
            }
            case 120: {
              valueData_ = input.readInt64();
              valueDataCase_ = 15;
              break;
            }
            case 128: {
              valueData_ = input.readInt64();
              valueDataCase_ = 16;
              break;
            }
            case 136: {
              valueData_ = input.readInt64();
              valueDataCase_ = 17;
              break;
            }
            case 144: {
              valueData_ = input.readInt64();
              valueDataCase_ = 18;
              break;
            }
            case 152: {
              valueData_ = input.readInt64();
              valueDataCase_ = 19;
              break;
            }
            case 160: {
              valueData_ = input.readInt64();
              valueDataCase_ = 20;
              break;
            }
            case 168: {
              valueData_ = input.readInt64();
              valueDataCase_ = 21;
              break;
            }
            case 176: {
              valueData_ = input.readInt64();
              valueDataCase_ = 22;
              break;
            }
            case 184: {
              valueData_ = input.readInt64();
              valueDataCase_ = 23;
              break;
            }
            case 192: {
              valueData_ = input.readInt32();
              valueDataCase_ = 24;
              break;
            }
            case 200: {
              valueData_ = input.readInt64();
              valueDataCase_ = 25;
              break;
            }
            case 210: {
              io.greptime.v1.Common.IntervalMonthDayNano.Builder subBuilder = null;
              if (valueDataCase_ == 26) {
                subBuilder = ((io.greptime.v1.Common.IntervalMonthDayNano) valueData_).toBuilder();
              }
              valueData_ =
                  input.readMessage(io.greptime.v1.Common.IntervalMonthDayNano.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Common.IntervalMonthDayNano) valueData_);
                valueData_ = subBuilder.buildPartial();
              }
              valueDataCase_ = 26;
              break;
            }
            case 250: {
              io.greptime.v1.Common.Decimal128.Builder subBuilder = null;
              if (valueDataCase_ == 31) {
                subBuilder = ((io.greptime.v1.Common.Decimal128) valueData_).toBuilder();
              }
              valueData_ =
                  input.readMessage(io.greptime.v1.Common.Decimal128.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Common.Decimal128) valueData_);
                valueData_ = subBuilder.buildPartial();
              }
              valueDataCase_ = 31;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_Value_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.RowData.internal_static_greptime_v1_Value_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.RowData.Value.class, io.greptime.v1.RowData.Value.Builder.class);
    }

    private int valueDataCase_ = 0;
    private java.lang.Object valueData_;
    public enum ValueDataCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      I8_VALUE(1),
      I16_VALUE(2),
      I32_VALUE(3),
      I64_VALUE(4),
      U8_VALUE(5),
      U16_VALUE(6),
      U32_VALUE(7),
      U64_VALUE(8),
      F32_VALUE(9),
      F64_VALUE(10),
      BOOL_VALUE(11),
      BINARY_VALUE(12),
      STRING_VALUE(13),
      DATE_VALUE(14),
      DATETIME_VALUE(15),
      TIMESTAMP_SECOND_VALUE(16),
      TIMESTAMP_MILLISECOND_VALUE(17),
      TIMESTAMP_MICROSECOND_VALUE(18),
      TIMESTAMP_NANOSECOND_VALUE(19),
      TIME_SECOND_VALUE(20),
      TIME_MILLISECOND_VALUE(21),
      TIME_MICROSECOND_VALUE(22),
      TIME_NANOSECOND_VALUE(23),
      INTERVAL_YEAR_MONTH_VALUE(24),
      INTERVAL_DAY_TIME_VALUE(25),
      INTERVAL_MONTH_DAY_NANO_VALUE(26),
      DECIMAL128_VALUE(31),
      VALUEDATA_NOT_SET(0);
      private final int value;
      private ValueDataCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueDataCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueDataCase forNumber(int value) {
        switch (value) {
          case 1: return I8_VALUE;
          case 2: return I16_VALUE;
          case 3: return I32_VALUE;
          case 4: return I64_VALUE;
          case 5: return U8_VALUE;
          case 6: return U16_VALUE;
          case 7: return U32_VALUE;
          case 8: return U64_VALUE;
          case 9: return F32_VALUE;
          case 10: return F64_VALUE;
          case 11: return BOOL_VALUE;
          case 12: return BINARY_VALUE;
          case 13: return STRING_VALUE;
          case 14: return DATE_VALUE;
          case 15: return DATETIME_VALUE;
          case 16: return TIMESTAMP_SECOND_VALUE;
          case 17: return TIMESTAMP_MILLISECOND_VALUE;
          case 18: return TIMESTAMP_MICROSECOND_VALUE;
          case 19: return TIMESTAMP_NANOSECOND_VALUE;
          case 20: return TIME_SECOND_VALUE;
          case 21: return TIME_MILLISECOND_VALUE;
          case 22: return TIME_MICROSECOND_VALUE;
          case 23: return TIME_NANOSECOND_VALUE;
          case 24: return INTERVAL_YEAR_MONTH_VALUE;
          case 25: return INTERVAL_DAY_TIME_VALUE;
          case 26: return INTERVAL_MONTH_DAY_NANO_VALUE;
          case 31: return DECIMAL128_VALUE;
          case 0: return VALUEDATA_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueDataCase
    getValueDataCase() {
      return ValueDataCase.forNumber(
          valueDataCase_);
    }

    public static final int I8_VALUE_FIELD_NUMBER = 1;
    /**
     * <code>int32 i8_value = 1;</code>
     * @return Whether the i8Value field is set.
     */
    @java.lang.Override
    public boolean hasI8Value() {
      return valueDataCase_ == 1;
    }
    /**
     * <code>int32 i8_value = 1;</code>
     * @return The i8Value.
     */
    @java.lang.Override
    public int getI8Value() {
      if (valueDataCase_ == 1) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int I16_VALUE_FIELD_NUMBER = 2;
    /**
     * <code>int32 i16_value = 2;</code>
     * @return Whether the i16Value field is set.
     */
    @java.lang.Override
    public boolean hasI16Value() {
      return valueDataCase_ == 2;
    }
    /**
     * <code>int32 i16_value = 2;</code>
     * @return The i16Value.
     */
    @java.lang.Override
    public int getI16Value() {
      if (valueDataCase_ == 2) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int I32_VALUE_FIELD_NUMBER = 3;
    /**
     * <code>int32 i32_value = 3;</code>
     * @return Whether the i32Value field is set.
     */
    @java.lang.Override
    public boolean hasI32Value() {
      return valueDataCase_ == 3;
    }
    /**
     * <code>int32 i32_value = 3;</code>
     * @return The i32Value.
     */
    @java.lang.Override
    public int getI32Value() {
      if (valueDataCase_ == 3) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int I64_VALUE_FIELD_NUMBER = 4;
    /**
     * <code>int64 i64_value = 4;</code>
     * @return Whether the i64Value field is set.
     */
    @java.lang.Override
    public boolean hasI64Value() {
      return valueDataCase_ == 4;
    }
    /**
     * <code>int64 i64_value = 4;</code>
     * @return The i64Value.
     */
    @java.lang.Override
    public long getI64Value() {
      if (valueDataCase_ == 4) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int U8_VALUE_FIELD_NUMBER = 5;
    /**
     * <code>uint32 u8_value = 5;</code>
     * @return Whether the u8Value field is set.
     */
    @java.lang.Override
    public boolean hasU8Value() {
      return valueDataCase_ == 5;
    }
    /**
     * <code>uint32 u8_value = 5;</code>
     * @return The u8Value.
     */
    @java.lang.Override
    public int getU8Value() {
      if (valueDataCase_ == 5) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int U16_VALUE_FIELD_NUMBER = 6;
    /**
     * <code>uint32 u16_value = 6;</code>
     * @return Whether the u16Value field is set.
     */
    @java.lang.Override
    public boolean hasU16Value() {
      return valueDataCase_ == 6;
    }
    /**
     * <code>uint32 u16_value = 6;</code>
     * @return The u16Value.
     */
    @java.lang.Override
    public int getU16Value() {
      if (valueDataCase_ == 6) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int U32_VALUE_FIELD_NUMBER = 7;
    /**
     * <code>uint32 u32_value = 7;</code>
     * @return Whether the u32Value field is set.
     */
    @java.lang.Override
    public boolean hasU32Value() {
      return valueDataCase_ == 7;
    }
    /**
     * <code>uint32 u32_value = 7;</code>
     * @return The u32Value.
     */
    @java.lang.Override
    public int getU32Value() {
      if (valueDataCase_ == 7) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int U64_VALUE_FIELD_NUMBER = 8;
    /**
     * <code>uint64 u64_value = 8;</code>
     * @return Whether the u64Value field is set.
     */
    @java.lang.Override
    public boolean hasU64Value() {
      return valueDataCase_ == 8;
    }
    /**
     * <code>uint64 u64_value = 8;</code>
     * @return The u64Value.
     */
    @java.lang.Override
    public long getU64Value() {
      if (valueDataCase_ == 8) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int F32_VALUE_FIELD_NUMBER = 9;
    /**
     * <code>float f32_value = 9;</code>
     * @return Whether the f32Value field is set.
     */
    @java.lang.Override
    public boolean hasF32Value() {
      return valueDataCase_ == 9;
    }
    /**
     * <code>float f32_value = 9;</code>
     * @return The f32Value.
     */
    @java.lang.Override
    public float getF32Value() {
      if (valueDataCase_ == 9) {
        return (java.lang.Float) valueData_;
      }
      return 0F;
    }

    public static final int F64_VALUE_FIELD_NUMBER = 10;
    /**
     * <code>double f64_value = 10;</code>
     * @return Whether the f64Value field is set.
     */
    @java.lang.Override
    public boolean hasF64Value() {
      return valueDataCase_ == 10;
    }
    /**
     * <code>double f64_value = 10;</code>
     * @return The f64Value.
     */
    @java.lang.Override
    public double getF64Value() {
      if (valueDataCase_ == 10) {
        return (java.lang.Double) valueData_;
      }
      return 0D;
    }

    public static final int BOOL_VALUE_FIELD_NUMBER = 11;
    /**
     * <code>bool bool_value = 11;</code>
     * @return Whether the boolValue field is set.
     */
    @java.lang.Override
    public boolean hasBoolValue() {
      return valueDataCase_ == 11;
    }
    /**
     * <code>bool bool_value = 11;</code>
     * @return The boolValue.
     */
    @java.lang.Override
    public boolean getBoolValue() {
      if (valueDataCase_ == 11) {
        return (java.lang.Boolean) valueData_;
      }
      return false;
    }

    public static final int BINARY_VALUE_FIELD_NUMBER = 12;
    /**
     * <code>bytes binary_value = 12;</code>
     * @return Whether the binaryValue field is set.
     */
    @java.lang.Override
    public boolean hasBinaryValue() {
      return valueDataCase_ == 12;
    }
    /**
     * <code>bytes binary_value = 12;</code>
     * @return The binaryValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getBinaryValue() {
      if (valueDataCase_ == 12) {
        return (com.google.protobuf.ByteString) valueData_;
      }
      return com.google.protobuf.ByteString.EMPTY;
    }

    public static final int STRING_VALUE_FIELD_NUMBER = 13;
    /**
     * <code>string string_value = 13;</code>
     * @return Whether the stringValue field is set.
     */
    public boolean hasStringValue() {
      return valueDataCase_ == 13;
    }
    /**
     * <code>string string_value = 13;</code>
     * @return The stringValue.
     */
    public java.lang.String getStringValue() {
      java.lang.Object ref = "";
      if (valueDataCase_ == 13) {
        ref = valueData_;
      }
      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 (valueDataCase_ == 13) {
          valueData_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string string_value = 13;</code>
     * @return The bytes for stringValue.
     */
    public com.google.protobuf.ByteString
        getStringValueBytes() {
      java.lang.Object ref = "";
      if (valueDataCase_ == 13) {
        ref = valueData_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (valueDataCase_ == 13) {
          valueData_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATE_VALUE_FIELD_NUMBER = 14;
    /**
     * <code>int32 date_value = 14;</code>
     * @return Whether the dateValue field is set.
     */
    @java.lang.Override
    public boolean hasDateValue() {
      return valueDataCase_ == 14;
    }
    /**
     * <code>int32 date_value = 14;</code>
     * @return The dateValue.
     */
    @java.lang.Override
    public int getDateValue() {
      if (valueDataCase_ == 14) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int DATETIME_VALUE_FIELD_NUMBER = 15;
    /**
     * <code>int64 datetime_value = 15;</code>
     * @return Whether the datetimeValue field is set.
     */
    @java.lang.Override
    public boolean hasDatetimeValue() {
      return valueDataCase_ == 15;
    }
    /**
     * <code>int64 datetime_value = 15;</code>
     * @return The datetimeValue.
     */
    @java.lang.Override
    public long getDatetimeValue() {
      if (valueDataCase_ == 15) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIMESTAMP_SECOND_VALUE_FIELD_NUMBER = 16;
    /**
     * <code>int64 timestamp_second_value = 16;</code>
     * @return Whether the timestampSecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampSecondValue() {
      return valueDataCase_ == 16;
    }
    /**
     * <code>int64 timestamp_second_value = 16;</code>
     * @return The timestampSecondValue.
     */
    @java.lang.Override
    public long getTimestampSecondValue() {
      if (valueDataCase_ == 16) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIMESTAMP_MILLISECOND_VALUE_FIELD_NUMBER = 17;
    /**
     * <code>int64 timestamp_millisecond_value = 17;</code>
     * @return Whether the timestampMillisecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampMillisecondValue() {
      return valueDataCase_ == 17;
    }
    /**
     * <code>int64 timestamp_millisecond_value = 17;</code>
     * @return The timestampMillisecondValue.
     */
    @java.lang.Override
    public long getTimestampMillisecondValue() {
      if (valueDataCase_ == 17) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIMESTAMP_MICROSECOND_VALUE_FIELD_NUMBER = 18;
    /**
     * <code>int64 timestamp_microsecond_value = 18;</code>
     * @return Whether the timestampMicrosecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampMicrosecondValue() {
      return valueDataCase_ == 18;
    }
    /**
     * <code>int64 timestamp_microsecond_value = 18;</code>
     * @return The timestampMicrosecondValue.
     */
    @java.lang.Override
    public long getTimestampMicrosecondValue() {
      if (valueDataCase_ == 18) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIMESTAMP_NANOSECOND_VALUE_FIELD_NUMBER = 19;
    /**
     * <code>int64 timestamp_nanosecond_value = 19;</code>
     * @return Whether the timestampNanosecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampNanosecondValue() {
      return valueDataCase_ == 19;
    }
    /**
     * <code>int64 timestamp_nanosecond_value = 19;</code>
     * @return The timestampNanosecondValue.
     */
    @java.lang.Override
    public long getTimestampNanosecondValue() {
      if (valueDataCase_ == 19) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIME_SECOND_VALUE_FIELD_NUMBER = 20;
    /**
     * <code>int64 time_second_value = 20;</code>
     * @return Whether the timeSecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimeSecondValue() {
      return valueDataCase_ == 20;
    }
    /**
     * <code>int64 time_second_value = 20;</code>
     * @return The timeSecondValue.
     */
    @java.lang.Override
    public long getTimeSecondValue() {
      if (valueDataCase_ == 20) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIME_MILLISECOND_VALUE_FIELD_NUMBER = 21;
    /**
     * <code>int64 time_millisecond_value = 21;</code>
     * @return Whether the timeMillisecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimeMillisecondValue() {
      return valueDataCase_ == 21;
    }
    /**
     * <code>int64 time_millisecond_value = 21;</code>
     * @return The timeMillisecondValue.
     */
    @java.lang.Override
    public long getTimeMillisecondValue() {
      if (valueDataCase_ == 21) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIME_MICROSECOND_VALUE_FIELD_NUMBER = 22;
    /**
     * <code>int64 time_microsecond_value = 22;</code>
     * @return Whether the timeMicrosecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimeMicrosecondValue() {
      return valueDataCase_ == 22;
    }
    /**
     * <code>int64 time_microsecond_value = 22;</code>
     * @return The timeMicrosecondValue.
     */
    @java.lang.Override
    public long getTimeMicrosecondValue() {
      if (valueDataCase_ == 22) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int TIME_NANOSECOND_VALUE_FIELD_NUMBER = 23;
    /**
     * <code>int64 time_nanosecond_value = 23;</code>
     * @return Whether the timeNanosecondValue field is set.
     */
    @java.lang.Override
    public boolean hasTimeNanosecondValue() {
      return valueDataCase_ == 23;
    }
    /**
     * <code>int64 time_nanosecond_value = 23;</code>
     * @return The timeNanosecondValue.
     */
    @java.lang.Override
    public long getTimeNanosecondValue() {
      if (valueDataCase_ == 23) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int INTERVAL_YEAR_MONTH_VALUE_FIELD_NUMBER = 24;
    /**
     * <code>int32 interval_year_month_value = 24;</code>
     * @return Whether the intervalYearMonthValue field is set.
     */
    @java.lang.Override
    public boolean hasIntervalYearMonthValue() {
      return valueDataCase_ == 24;
    }
    /**
     * <code>int32 interval_year_month_value = 24;</code>
     * @return The intervalYearMonthValue.
     */
    @java.lang.Override
    public int getIntervalYearMonthValue() {
      if (valueDataCase_ == 24) {
        return (java.lang.Integer) valueData_;
      }
      return 0;
    }

    public static final int INTERVAL_DAY_TIME_VALUE_FIELD_NUMBER = 25;
    /**
     * <code>int64 interval_day_time_value = 25;</code>
     * @return Whether the intervalDayTimeValue field is set.
     */
    @java.lang.Override
    public boolean hasIntervalDayTimeValue() {
      return valueDataCase_ == 25;
    }
    /**
     * <code>int64 interval_day_time_value = 25;</code>
     * @return The intervalDayTimeValue.
     */
    @java.lang.Override
    public long getIntervalDayTimeValue() {
      if (valueDataCase_ == 25) {
        return (java.lang.Long) valueData_;
      }
      return 0L;
    }

    public static final int INTERVAL_MONTH_DAY_NANO_VALUE_FIELD_NUMBER = 26;
    /**
     * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
     * @return Whether the intervalMonthDayNanoValue field is set.
     */
    @java.lang.Override
    public boolean hasIntervalMonthDayNanoValue() {
      return valueDataCase_ == 26;
    }
    /**
     * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
     * @return The intervalMonthDayNanoValue.
     */
    @java.lang.Override
    public io.greptime.v1.Common.IntervalMonthDayNano getIntervalMonthDayNanoValue() {
      if (valueDataCase_ == 26) {
         return (io.greptime.v1.Common.IntervalMonthDayNano) valueData_;
      }
      return io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder getIntervalMonthDayNanoValueOrBuilder() {
      if (valueDataCase_ == 26) {
         return (io.greptime.v1.Common.IntervalMonthDayNano) valueData_;
      }
      return io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance();
    }

    public static final int DECIMAL128_VALUE_FIELD_NUMBER = 31;
    /**
     * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
     * @return Whether the decimal128Value field is set.
     */
    @java.lang.Override
    public boolean hasDecimal128Value() {
      return valueDataCase_ == 31;
    }
    /**
     * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
     * @return The decimal128Value.
     */
    @java.lang.Override
    public io.greptime.v1.Common.Decimal128 getDecimal128Value() {
      if (valueDataCase_ == 31) {
         return (io.greptime.v1.Common.Decimal128) valueData_;
      }
      return io.greptime.v1.Common.Decimal128.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.Decimal128OrBuilder getDecimal128ValueOrBuilder() {
      if (valueDataCase_ == 31) {
         return (io.greptime.v1.Common.Decimal128) valueData_;
      }
      return io.greptime.v1.Common.Decimal128.getDefaultInstance();
    }

    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 (valueDataCase_ == 1) {
        output.writeInt32(
            1, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 2) {
        output.writeInt32(
            2, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 3) {
        output.writeInt32(
            3, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 4) {
        output.writeInt64(
            4, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 5) {
        output.writeUInt32(
            5, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 6) {
        output.writeUInt32(
            6, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 7) {
        output.writeUInt32(
            7, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 8) {
        output.writeUInt64(
            8, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 9) {
        output.writeFloat(
            9, (float)((java.lang.Float) valueData_));
      }
      if (valueDataCase_ == 10) {
        output.writeDouble(
            10, (double)((java.lang.Double) valueData_));
      }
      if (valueDataCase_ == 11) {
        output.writeBool(
            11, (boolean)((java.lang.Boolean) valueData_));
      }
      if (valueDataCase_ == 12) {
        output.writeBytes(
            12, (com.google.protobuf.ByteString) valueData_);
      }
      if (valueDataCase_ == 13) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, valueData_);
      }
      if (valueDataCase_ == 14) {
        output.writeInt32(
            14, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 15) {
        output.writeInt64(
            15, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 16) {
        output.writeInt64(
            16, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 17) {
        output.writeInt64(
            17, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 18) {
        output.writeInt64(
            18, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 19) {
        output.writeInt64(
            19, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 20) {
        output.writeInt64(
            20, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 21) {
        output.writeInt64(
            21, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 22) {
        output.writeInt64(
            22, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 23) {
        output.writeInt64(
            23, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 24) {
        output.writeInt32(
            24, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 25) {
        output.writeInt64(
            25, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 26) {
        output.writeMessage(26, (io.greptime.v1.Common.IntervalMonthDayNano) valueData_);
      }
      if (valueDataCase_ == 31) {
        output.writeMessage(31, (io.greptime.v1.Common.Decimal128) valueData_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (valueDataCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              1, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              2, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              3, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              4, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(
              5, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(
              6, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(
              7, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(
              8, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              9, (float)((java.lang.Float) valueData_));
      }
      if (valueDataCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(
              10, (double)((java.lang.Double) valueData_));
      }
      if (valueDataCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              11, (boolean)((java.lang.Boolean) valueData_));
      }
      if (valueDataCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(
              12, (com.google.protobuf.ByteString) valueData_);
      }
      if (valueDataCase_ == 13) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, valueData_);
      }
      if (valueDataCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              14, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              15, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              16, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              17, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              18, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              19, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              20, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              21, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 22) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              22, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 23) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              23, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 24) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              24, (int)((java.lang.Integer) valueData_));
      }
      if (valueDataCase_ == 25) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              25, (long)((java.lang.Long) valueData_));
      }
      if (valueDataCase_ == 26) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(26, (io.greptime.v1.Common.IntervalMonthDayNano) valueData_);
      }
      if (valueDataCase_ == 31) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, (io.greptime.v1.Common.Decimal128) valueData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.greptime.v1.RowData.Value)) {
        return super.equals(obj);
      }
      io.greptime.v1.RowData.Value other = (io.greptime.v1.RowData.Value) obj;

      if (!getValueDataCase().equals(other.getValueDataCase())) return false;
      switch (valueDataCase_) {
        case 1:
          if (getI8Value()
              != other.getI8Value()) return false;
          break;
        case 2:
          if (getI16Value()
              != other.getI16Value()) return false;
          break;
        case 3:
          if (getI32Value()
              != other.getI32Value()) return false;
          break;
        case 4:
          if (getI64Value()
              != other.getI64Value()) return false;
          break;
        case 5:
          if (getU8Value()
              != other.getU8Value()) return false;
          break;
        case 6:
          if (getU16Value()
              != other.getU16Value()) return false;
          break;
        case 7:
          if (getU32Value()
              != other.getU32Value()) return false;
          break;
        case 8:
          if (getU64Value()
              != other.getU64Value()) return false;
          break;
        case 9:
          if (java.lang.Float.floatToIntBits(getF32Value())
              != java.lang.Float.floatToIntBits(
                  other.getF32Value())) return false;
          break;
        case 10:
          if (java.lang.Double.doubleToLongBits(getF64Value())
              != java.lang.Double.doubleToLongBits(
                  other.getF64Value())) return false;
          break;
        case 11:
          if (getBoolValue()
              != other.getBoolValue()) return false;
          break;
        case 12:
          if (!getBinaryValue()
              .equals(other.getBinaryValue())) return false;
          break;
        case 13:
          if (!getStringValue()
              .equals(other.getStringValue())) return false;
          break;
        case 14:
          if (getDateValue()
              != other.getDateValue()) return false;
          break;
        case 15:
          if (getDatetimeValue()
              != other.getDatetimeValue()) return false;
          break;
        case 16:
          if (getTimestampSecondValue()
              != other.getTimestampSecondValue()) return false;
          break;
        case 17:
          if (getTimestampMillisecondValue()
              != other.getTimestampMillisecondValue()) return false;
          break;
        case 18:
          if (getTimestampMicrosecondValue()
              != other.getTimestampMicrosecondValue()) return false;
          break;
        case 19:
          if (getTimestampNanosecondValue()
              != other.getTimestampNanosecondValue()) return false;
          break;
        case 20:
          if (getTimeSecondValue()
              != other.getTimeSecondValue()) return false;
          break;
        case 21:
          if (getTimeMillisecondValue()
              != other.getTimeMillisecondValue()) return false;
          break;
        case 22:
          if (getTimeMicrosecondValue()
              != other.getTimeMicrosecondValue()) return false;
          break;
        case 23:
          if (getTimeNanosecondValue()
              != other.getTimeNanosecondValue()) return false;
          break;
        case 24:
          if (getIntervalYearMonthValue()
              != other.getIntervalYearMonthValue()) return false;
          break;
        case 25:
          if (getIntervalDayTimeValue()
              != other.getIntervalDayTimeValue()) return false;
          break;
        case 26:
          if (!getIntervalMonthDayNanoValue()
              .equals(other.getIntervalMonthDayNanoValue())) return false;
          break;
        case 31:
          if (!getDecimal128Value()
              .equals(other.getDecimal128Value())) return false;
          break;
        case 0:
        default:
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (valueDataCase_) {
        case 1:
          hash = (37 * hash) + I8_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getI8Value();
          break;
        case 2:
          hash = (37 * hash) + I16_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getI16Value();
          break;
        case 3:
          hash = (37 * hash) + I32_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getI32Value();
          break;
        case 4:
          hash = (37 * hash) + I64_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getI64Value());
          break;
        case 5:
          hash = (37 * hash) + U8_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getU8Value();
          break;
        case 6:
          hash = (37 * hash) + U16_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getU16Value();
          break;
        case 7:
          hash = (37 * hash) + U32_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getU32Value();
          break;
        case 8:
          hash = (37 * hash) + U64_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getU64Value());
          break;
        case 9:
          hash = (37 * hash) + F32_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getF32Value());
          break;
        case 10:
          hash = (37 * hash) + F64_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              java.lang.Double.doubleToLongBits(getF64Value()));
          break;
        case 11:
          hash = (37 * hash) + BOOL_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getBoolValue());
          break;
        case 12:
          hash = (37 * hash) + BINARY_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getBinaryValue().hashCode();
          break;
        case 13:
          hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStringValue().hashCode();
          break;
        case 14:
          hash = (37 * hash) + DATE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getDateValue();
          break;
        case 15:
          hash = (37 * hash) + DATETIME_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getDatetimeValue());
          break;
        case 16:
          hash = (37 * hash) + TIMESTAMP_SECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimestampSecondValue());
          break;
        case 17:
          hash = (37 * hash) + TIMESTAMP_MILLISECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimestampMillisecondValue());
          break;
        case 18:
          hash = (37 * hash) + TIMESTAMP_MICROSECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimestampMicrosecondValue());
          break;
        case 19:
          hash = (37 * hash) + TIMESTAMP_NANOSECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimestampNanosecondValue());
          break;
        case 20:
          hash = (37 * hash) + TIME_SECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimeSecondValue());
          break;
        case 21:
          hash = (37 * hash) + TIME_MILLISECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimeMillisecondValue());
          break;
        case 22:
          hash = (37 * hash) + TIME_MICROSECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimeMicrosecondValue());
          break;
        case 23:
          hash = (37 * hash) + TIME_NANOSECOND_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimeNanosecondValue());
          break;
        case 24:
          hash = (37 * hash) + INTERVAL_YEAR_MONTH_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getIntervalYearMonthValue();
          break;
        case 25:
          hash = (37 * hash) + INTERVAL_DAY_TIME_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntervalDayTimeValue());
          break;
        case 26:
          hash = (37 * hash) + INTERVAL_MONTH_DAY_NANO_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getIntervalMonthDayNanoValue().hashCode();
          break;
        case 31:
          hash = (37 * hash) + DECIMAL128_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getDecimal128Value().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.RowData.Value parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Value parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Value parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Value parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Value parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.RowData.Value parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.RowData.Value parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Value 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 io.greptime.v1.RowData.Value parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Value 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 io.greptime.v1.RowData.Value parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.RowData.Value 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(io.greptime.v1.RowData.Value 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 greptime.v1.Value}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.Value)
        io.greptime.v1.RowData.ValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Value_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Value_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.RowData.Value.class, io.greptime.v1.RowData.Value.Builder.class);
      }

      // Construct using io.greptime.v1.RowData.Value.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        valueDataCase_ = 0;
        valueData_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.greptime.v1.RowData.internal_static_greptime_v1_Value_descriptor;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Value getDefaultInstanceForType() {
        return io.greptime.v1.RowData.Value.getDefaultInstance();
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Value build() {
        io.greptime.v1.RowData.Value result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.greptime.v1.RowData.Value buildPartial() {
        io.greptime.v1.RowData.Value result = new io.greptime.v1.RowData.Value(this);
        if (valueDataCase_ == 1) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 2) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 3) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 4) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 5) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 6) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 7) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 8) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 9) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 10) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 11) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 12) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 13) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 14) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 15) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 16) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 17) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 18) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 19) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 20) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 21) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 22) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 23) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 24) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 25) {
          result.valueData_ = valueData_;
        }
        if (valueDataCase_ == 26) {
          if (intervalMonthDayNanoValueBuilder_ == null) {
            result.valueData_ = valueData_;
          } else {
            result.valueData_ = intervalMonthDayNanoValueBuilder_.build();
          }
        }
        if (valueDataCase_ == 31) {
          if (decimal128ValueBuilder_ == null) {
            result.valueData_ = valueData_;
          } else {
            result.valueData_ = decimal128ValueBuilder_.build();
          }
        }
        result.valueDataCase_ = valueDataCase_;
        onBuilt();
        return result;
      }

      @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 io.greptime.v1.RowData.Value) {
          return mergeFrom((io.greptime.v1.RowData.Value)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.RowData.Value other) {
        if (other == io.greptime.v1.RowData.Value.getDefaultInstance()) return this;
        switch (other.getValueDataCase()) {
          case I8_VALUE: {
            setI8Value(other.getI8Value());
            break;
          }
          case I16_VALUE: {
            setI16Value(other.getI16Value());
            break;
          }
          case I32_VALUE: {
            setI32Value(other.getI32Value());
            break;
          }
          case I64_VALUE: {
            setI64Value(other.getI64Value());
            break;
          }
          case U8_VALUE: {
            setU8Value(other.getU8Value());
            break;
          }
          case U16_VALUE: {
            setU16Value(other.getU16Value());
            break;
          }
          case U32_VALUE: {
            setU32Value(other.getU32Value());
            break;
          }
          case U64_VALUE: {
            setU64Value(other.getU64Value());
            break;
          }
          case F32_VALUE: {
            setF32Value(other.getF32Value());
            break;
          }
          case F64_VALUE: {
            setF64Value(other.getF64Value());
            break;
          }
          case BOOL_VALUE: {
            setBoolValue(other.getBoolValue());
            break;
          }
          case BINARY_VALUE: {
            setBinaryValue(other.getBinaryValue());
            break;
          }
          case STRING_VALUE: {
            valueDataCase_ = 13;
            valueData_ = other.valueData_;
            onChanged();
            break;
          }
          case DATE_VALUE: {
            setDateValue(other.getDateValue());
            break;
          }
          case DATETIME_VALUE: {
            setDatetimeValue(other.getDatetimeValue());
            break;
          }
          case TIMESTAMP_SECOND_VALUE: {
            setTimestampSecondValue(other.getTimestampSecondValue());
            break;
          }
          case TIMESTAMP_MILLISECOND_VALUE: {
            setTimestampMillisecondValue(other.getTimestampMillisecondValue());
            break;
          }
          case TIMESTAMP_MICROSECOND_VALUE: {
            setTimestampMicrosecondValue(other.getTimestampMicrosecondValue());
            break;
          }
          case TIMESTAMP_NANOSECOND_VALUE: {
            setTimestampNanosecondValue(other.getTimestampNanosecondValue());
            break;
          }
          case TIME_SECOND_VALUE: {
            setTimeSecondValue(other.getTimeSecondValue());
            break;
          }
          case TIME_MILLISECOND_VALUE: {
            setTimeMillisecondValue(other.getTimeMillisecondValue());
            break;
          }
          case TIME_MICROSECOND_VALUE: {
            setTimeMicrosecondValue(other.getTimeMicrosecondValue());
            break;
          }
          case TIME_NANOSECOND_VALUE: {
            setTimeNanosecondValue(other.getTimeNanosecondValue());
            break;
          }
          case INTERVAL_YEAR_MONTH_VALUE: {
            setIntervalYearMonthValue(other.getIntervalYearMonthValue());
            break;
          }
          case INTERVAL_DAY_TIME_VALUE: {
            setIntervalDayTimeValue(other.getIntervalDayTimeValue());
            break;
          }
          case INTERVAL_MONTH_DAY_NANO_VALUE: {
            mergeIntervalMonthDayNanoValue(other.getIntervalMonthDayNanoValue());
            break;
          }
          case DECIMAL128_VALUE: {
            mergeDecimal128Value(other.getDecimal128Value());
            break;
          }
          case VALUEDATA_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        io.greptime.v1.RowData.Value parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.RowData.Value) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int valueDataCase_ = 0;
      private java.lang.Object valueData_;
      public ValueDataCase
          getValueDataCase() {
        return ValueDataCase.forNumber(
            valueDataCase_);
      }

      public Builder clearValueData() {
        valueDataCase_ = 0;
        valueData_ = null;
        onChanged();
        return this;
      }


      /**
       * <code>int32 i8_value = 1;</code>
       * @return Whether the i8Value field is set.
       */
      public boolean hasI8Value() {
        return valueDataCase_ == 1;
      }
      /**
       * <code>int32 i8_value = 1;</code>
       * @return The i8Value.
       */
      public int getI8Value() {
        if (valueDataCase_ == 1) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>int32 i8_value = 1;</code>
       * @param value The i8Value to set.
       * @return This builder for chaining.
       */
      public Builder setI8Value(int value) {
        valueDataCase_ = 1;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 i8_value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearI8Value() {
        if (valueDataCase_ == 1) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int32 i16_value = 2;</code>
       * @return Whether the i16Value field is set.
       */
      public boolean hasI16Value() {
        return valueDataCase_ == 2;
      }
      /**
       * <code>int32 i16_value = 2;</code>
       * @return The i16Value.
       */
      public int getI16Value() {
        if (valueDataCase_ == 2) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>int32 i16_value = 2;</code>
       * @param value The i16Value to set.
       * @return This builder for chaining.
       */
      public Builder setI16Value(int value) {
        valueDataCase_ = 2;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 i16_value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearI16Value() {
        if (valueDataCase_ == 2) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int32 i32_value = 3;</code>
       * @return Whether the i32Value field is set.
       */
      public boolean hasI32Value() {
        return valueDataCase_ == 3;
      }
      /**
       * <code>int32 i32_value = 3;</code>
       * @return The i32Value.
       */
      public int getI32Value() {
        if (valueDataCase_ == 3) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>int32 i32_value = 3;</code>
       * @param value The i32Value to set.
       * @return This builder for chaining.
       */
      public Builder setI32Value(int value) {
        valueDataCase_ = 3;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 i32_value = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearI32Value() {
        if (valueDataCase_ == 3) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 i64_value = 4;</code>
       * @return Whether the i64Value field is set.
       */
      public boolean hasI64Value() {
        return valueDataCase_ == 4;
      }
      /**
       * <code>int64 i64_value = 4;</code>
       * @return The i64Value.
       */
      public long getI64Value() {
        if (valueDataCase_ == 4) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 i64_value = 4;</code>
       * @param value The i64Value to set.
       * @return This builder for chaining.
       */
      public Builder setI64Value(long value) {
        valueDataCase_ = 4;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 i64_value = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearI64Value() {
        if (valueDataCase_ == 4) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>uint32 u8_value = 5;</code>
       * @return Whether the u8Value field is set.
       */
      public boolean hasU8Value() {
        return valueDataCase_ == 5;
      }
      /**
       * <code>uint32 u8_value = 5;</code>
       * @return The u8Value.
       */
      public int getU8Value() {
        if (valueDataCase_ == 5) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>uint32 u8_value = 5;</code>
       * @param value The u8Value to set.
       * @return This builder for chaining.
       */
      public Builder setU8Value(int value) {
        valueDataCase_ = 5;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 u8_value = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearU8Value() {
        if (valueDataCase_ == 5) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>uint32 u16_value = 6;</code>
       * @return Whether the u16Value field is set.
       */
      public boolean hasU16Value() {
        return valueDataCase_ == 6;
      }
      /**
       * <code>uint32 u16_value = 6;</code>
       * @return The u16Value.
       */
      public int getU16Value() {
        if (valueDataCase_ == 6) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>uint32 u16_value = 6;</code>
       * @param value The u16Value to set.
       * @return This builder for chaining.
       */
      public Builder setU16Value(int value) {
        valueDataCase_ = 6;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 u16_value = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearU16Value() {
        if (valueDataCase_ == 6) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>uint32 u32_value = 7;</code>
       * @return Whether the u32Value field is set.
       */
      public boolean hasU32Value() {
        return valueDataCase_ == 7;
      }
      /**
       * <code>uint32 u32_value = 7;</code>
       * @return The u32Value.
       */
      public int getU32Value() {
        if (valueDataCase_ == 7) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>uint32 u32_value = 7;</code>
       * @param value The u32Value to set.
       * @return This builder for chaining.
       */
      public Builder setU32Value(int value) {
        valueDataCase_ = 7;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 u32_value = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearU32Value() {
        if (valueDataCase_ == 7) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>uint64 u64_value = 8;</code>
       * @return Whether the u64Value field is set.
       */
      public boolean hasU64Value() {
        return valueDataCase_ == 8;
      }
      /**
       * <code>uint64 u64_value = 8;</code>
       * @return The u64Value.
       */
      public long getU64Value() {
        if (valueDataCase_ == 8) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>uint64 u64_value = 8;</code>
       * @param value The u64Value to set.
       * @return This builder for chaining.
       */
      public Builder setU64Value(long value) {
        valueDataCase_ = 8;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 u64_value = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearU64Value() {
        if (valueDataCase_ == 8) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>float f32_value = 9;</code>
       * @return Whether the f32Value field is set.
       */
      public boolean hasF32Value() {
        return valueDataCase_ == 9;
      }
      /**
       * <code>float f32_value = 9;</code>
       * @return The f32Value.
       */
      public float getF32Value() {
        if (valueDataCase_ == 9) {
          return (java.lang.Float) valueData_;
        }
        return 0F;
      }
      /**
       * <code>float f32_value = 9;</code>
       * @param value The f32Value to set.
       * @return This builder for chaining.
       */
      public Builder setF32Value(float value) {
        valueDataCase_ = 9;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>float f32_value = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearF32Value() {
        if (valueDataCase_ == 9) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>double f64_value = 10;</code>
       * @return Whether the f64Value field is set.
       */
      public boolean hasF64Value() {
        return valueDataCase_ == 10;
      }
      /**
       * <code>double f64_value = 10;</code>
       * @return The f64Value.
       */
      public double getF64Value() {
        if (valueDataCase_ == 10) {
          return (java.lang.Double) valueData_;
        }
        return 0D;
      }
      /**
       * <code>double f64_value = 10;</code>
       * @param value The f64Value to set.
       * @return This builder for chaining.
       */
      public Builder setF64Value(double value) {
        valueDataCase_ = 10;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double f64_value = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearF64Value() {
        if (valueDataCase_ == 10) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>bool bool_value = 11;</code>
       * @return Whether the boolValue field is set.
       */
      public boolean hasBoolValue() {
        return valueDataCase_ == 11;
      }
      /**
       * <code>bool bool_value = 11;</code>
       * @return The boolValue.
       */
      public boolean getBoolValue() {
        if (valueDataCase_ == 11) {
          return (java.lang.Boolean) valueData_;
        }
        return false;
      }
      /**
       * <code>bool bool_value = 11;</code>
       * @param value The boolValue to set.
       * @return This builder for chaining.
       */
      public Builder setBoolValue(boolean value) {
        valueDataCase_ = 11;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool bool_value = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearBoolValue() {
        if (valueDataCase_ == 11) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>bytes binary_value = 12;</code>
       * @return Whether the binaryValue field is set.
       */
      public boolean hasBinaryValue() {
        return valueDataCase_ == 12;
      }
      /**
       * <code>bytes binary_value = 12;</code>
       * @return The binaryValue.
       */
      public com.google.protobuf.ByteString getBinaryValue() {
        if (valueDataCase_ == 12) {
          return (com.google.protobuf.ByteString) valueData_;
        }
        return com.google.protobuf.ByteString.EMPTY;
      }
      /**
       * <code>bytes binary_value = 12;</code>
       * @param value The binaryValue to set.
       * @return This builder for chaining.
       */
      public Builder setBinaryValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  valueDataCase_ = 12;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes binary_value = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearBinaryValue() {
        if (valueDataCase_ == 12) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>string string_value = 13;</code>
       * @return Whether the stringValue field is set.
       */
      @java.lang.Override
      public boolean hasStringValue() {
        return valueDataCase_ == 13;
      }
      /**
       * <code>string string_value = 13;</code>
       * @return The stringValue.
       */
      @java.lang.Override
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (valueDataCase_ == 13) {
          ref = valueData_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (valueDataCase_ == 13) {
            valueData_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string string_value = 13;</code>
       * @return The bytes for stringValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (valueDataCase_ == 13) {
          ref = valueData_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueDataCase_ == 13) {
            valueData_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string string_value = 13;</code>
       * @param value The stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  valueDataCase_ = 13;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string string_value = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearStringValue() {
        if (valueDataCase_ == 13) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string string_value = 13;</code>
       * @param value The bytes for stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        valueDataCase_ = 13;
        valueData_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>int32 date_value = 14;</code>
       * @return Whether the dateValue field is set.
       */
      public boolean hasDateValue() {
        return valueDataCase_ == 14;
      }
      /**
       * <code>int32 date_value = 14;</code>
       * @return The dateValue.
       */
      public int getDateValue() {
        if (valueDataCase_ == 14) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>int32 date_value = 14;</code>
       * @param value The dateValue to set.
       * @return This builder for chaining.
       */
      public Builder setDateValue(int value) {
        valueDataCase_ = 14;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 date_value = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearDateValue() {
        if (valueDataCase_ == 14) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 datetime_value = 15;</code>
       * @return Whether the datetimeValue field is set.
       */
      public boolean hasDatetimeValue() {
        return valueDataCase_ == 15;
      }
      /**
       * <code>int64 datetime_value = 15;</code>
       * @return The datetimeValue.
       */
      public long getDatetimeValue() {
        if (valueDataCase_ == 15) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 datetime_value = 15;</code>
       * @param value The datetimeValue to set.
       * @return This builder for chaining.
       */
      public Builder setDatetimeValue(long value) {
        valueDataCase_ = 15;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 datetime_value = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearDatetimeValue() {
        if (valueDataCase_ == 15) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 timestamp_second_value = 16;</code>
       * @return Whether the timestampSecondValue field is set.
       */
      public boolean hasTimestampSecondValue() {
        return valueDataCase_ == 16;
      }
      /**
       * <code>int64 timestamp_second_value = 16;</code>
       * @return The timestampSecondValue.
       */
      public long getTimestampSecondValue() {
        if (valueDataCase_ == 16) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 timestamp_second_value = 16;</code>
       * @param value The timestampSecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampSecondValue(long value) {
        valueDataCase_ = 16;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 timestamp_second_value = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampSecondValue() {
        if (valueDataCase_ == 16) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 timestamp_millisecond_value = 17;</code>
       * @return Whether the timestampMillisecondValue field is set.
       */
      public boolean hasTimestampMillisecondValue() {
        return valueDataCase_ == 17;
      }
      /**
       * <code>int64 timestamp_millisecond_value = 17;</code>
       * @return The timestampMillisecondValue.
       */
      public long getTimestampMillisecondValue() {
        if (valueDataCase_ == 17) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 timestamp_millisecond_value = 17;</code>
       * @param value The timestampMillisecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampMillisecondValue(long value) {
        valueDataCase_ = 17;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 timestamp_millisecond_value = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampMillisecondValue() {
        if (valueDataCase_ == 17) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 timestamp_microsecond_value = 18;</code>
       * @return Whether the timestampMicrosecondValue field is set.
       */
      public boolean hasTimestampMicrosecondValue() {
        return valueDataCase_ == 18;
      }
      /**
       * <code>int64 timestamp_microsecond_value = 18;</code>
       * @return The timestampMicrosecondValue.
       */
      public long getTimestampMicrosecondValue() {
        if (valueDataCase_ == 18) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 timestamp_microsecond_value = 18;</code>
       * @param value The timestampMicrosecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampMicrosecondValue(long value) {
        valueDataCase_ = 18;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 timestamp_microsecond_value = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampMicrosecondValue() {
        if (valueDataCase_ == 18) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 timestamp_nanosecond_value = 19;</code>
       * @return Whether the timestampNanosecondValue field is set.
       */
      public boolean hasTimestampNanosecondValue() {
        return valueDataCase_ == 19;
      }
      /**
       * <code>int64 timestamp_nanosecond_value = 19;</code>
       * @return The timestampNanosecondValue.
       */
      public long getTimestampNanosecondValue() {
        if (valueDataCase_ == 19) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 timestamp_nanosecond_value = 19;</code>
       * @param value The timestampNanosecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampNanosecondValue(long value) {
        valueDataCase_ = 19;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 timestamp_nanosecond_value = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampNanosecondValue() {
        if (valueDataCase_ == 19) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 time_second_value = 20;</code>
       * @return Whether the timeSecondValue field is set.
       */
      public boolean hasTimeSecondValue() {
        return valueDataCase_ == 20;
      }
      /**
       * <code>int64 time_second_value = 20;</code>
       * @return The timeSecondValue.
       */
      public long getTimeSecondValue() {
        if (valueDataCase_ == 20) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 time_second_value = 20;</code>
       * @param value The timeSecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimeSecondValue(long value) {
        valueDataCase_ = 20;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 time_second_value = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeSecondValue() {
        if (valueDataCase_ == 20) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 time_millisecond_value = 21;</code>
       * @return Whether the timeMillisecondValue field is set.
       */
      public boolean hasTimeMillisecondValue() {
        return valueDataCase_ == 21;
      }
      /**
       * <code>int64 time_millisecond_value = 21;</code>
       * @return The timeMillisecondValue.
       */
      public long getTimeMillisecondValue() {
        if (valueDataCase_ == 21) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 time_millisecond_value = 21;</code>
       * @param value The timeMillisecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimeMillisecondValue(long value) {
        valueDataCase_ = 21;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 time_millisecond_value = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeMillisecondValue() {
        if (valueDataCase_ == 21) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 time_microsecond_value = 22;</code>
       * @return Whether the timeMicrosecondValue field is set.
       */
      public boolean hasTimeMicrosecondValue() {
        return valueDataCase_ == 22;
      }
      /**
       * <code>int64 time_microsecond_value = 22;</code>
       * @return The timeMicrosecondValue.
       */
      public long getTimeMicrosecondValue() {
        if (valueDataCase_ == 22) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 time_microsecond_value = 22;</code>
       * @param value The timeMicrosecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimeMicrosecondValue(long value) {
        valueDataCase_ = 22;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 time_microsecond_value = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeMicrosecondValue() {
        if (valueDataCase_ == 22) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 time_nanosecond_value = 23;</code>
       * @return Whether the timeNanosecondValue field is set.
       */
      public boolean hasTimeNanosecondValue() {
        return valueDataCase_ == 23;
      }
      /**
       * <code>int64 time_nanosecond_value = 23;</code>
       * @return The timeNanosecondValue.
       */
      public long getTimeNanosecondValue() {
        if (valueDataCase_ == 23) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 time_nanosecond_value = 23;</code>
       * @param value The timeNanosecondValue to set.
       * @return This builder for chaining.
       */
      public Builder setTimeNanosecondValue(long value) {
        valueDataCase_ = 23;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 time_nanosecond_value = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeNanosecondValue() {
        if (valueDataCase_ == 23) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int32 interval_year_month_value = 24;</code>
       * @return Whether the intervalYearMonthValue field is set.
       */
      public boolean hasIntervalYearMonthValue() {
        return valueDataCase_ == 24;
      }
      /**
       * <code>int32 interval_year_month_value = 24;</code>
       * @return The intervalYearMonthValue.
       */
      public int getIntervalYearMonthValue() {
        if (valueDataCase_ == 24) {
          return (java.lang.Integer) valueData_;
        }
        return 0;
      }
      /**
       * <code>int32 interval_year_month_value = 24;</code>
       * @param value The intervalYearMonthValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntervalYearMonthValue(int value) {
        valueDataCase_ = 24;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 interval_year_month_value = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearIntervalYearMonthValue() {
        if (valueDataCase_ == 24) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 interval_day_time_value = 25;</code>
       * @return Whether the intervalDayTimeValue field is set.
       */
      public boolean hasIntervalDayTimeValue() {
        return valueDataCase_ == 25;
      }
      /**
       * <code>int64 interval_day_time_value = 25;</code>
       * @return The intervalDayTimeValue.
       */
      public long getIntervalDayTimeValue() {
        if (valueDataCase_ == 25) {
          return (java.lang.Long) valueData_;
        }
        return 0L;
      }
      /**
       * <code>int64 interval_day_time_value = 25;</code>
       * @param value The intervalDayTimeValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntervalDayTimeValue(long value) {
        valueDataCase_ = 25;
        valueData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 interval_day_time_value = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearIntervalDayTimeValue() {
        if (valueDataCase_ == 25) {
          valueDataCase_ = 0;
          valueData_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.IntervalMonthDayNano, io.greptime.v1.Common.IntervalMonthDayNano.Builder, io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder> intervalMonthDayNanoValueBuilder_;
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       * @return Whether the intervalMonthDayNanoValue field is set.
       */
      @java.lang.Override
      public boolean hasIntervalMonthDayNanoValue() {
        return valueDataCase_ == 26;
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       * @return The intervalMonthDayNanoValue.
       */
      @java.lang.Override
      public io.greptime.v1.Common.IntervalMonthDayNano getIntervalMonthDayNanoValue() {
        if (intervalMonthDayNanoValueBuilder_ == null) {
          if (valueDataCase_ == 26) {
            return (io.greptime.v1.Common.IntervalMonthDayNano) valueData_;
          }
          return io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance();
        } else {
          if (valueDataCase_ == 26) {
            return intervalMonthDayNanoValueBuilder_.getMessage();
          }
          return io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       */
      public Builder setIntervalMonthDayNanoValue(io.greptime.v1.Common.IntervalMonthDayNano value) {
        if (intervalMonthDayNanoValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          valueData_ = value;
          onChanged();
        } else {
          intervalMonthDayNanoValueBuilder_.setMessage(value);
        }
        valueDataCase_ = 26;
        return this;
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       */
      public Builder setIntervalMonthDayNanoValue(
          io.greptime.v1.Common.IntervalMonthDayNano.Builder builderForValue) {
        if (intervalMonthDayNanoValueBuilder_ == null) {
          valueData_ = builderForValue.build();
          onChanged();
        } else {
          intervalMonthDayNanoValueBuilder_.setMessage(builderForValue.build());
        }
        valueDataCase_ = 26;
        return this;
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       */
      public Builder mergeIntervalMonthDayNanoValue(io.greptime.v1.Common.IntervalMonthDayNano value) {
        if (intervalMonthDayNanoValueBuilder_ == null) {
          if (valueDataCase_ == 26 &&
              valueData_ != io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance()) {
            valueData_ = io.greptime.v1.Common.IntervalMonthDayNano.newBuilder((io.greptime.v1.Common.IntervalMonthDayNano) valueData_)
                .mergeFrom(value).buildPartial();
          } else {
            valueData_ = value;
          }
          onChanged();
        } else {
          if (valueDataCase_ == 26) {
            intervalMonthDayNanoValueBuilder_.mergeFrom(value);
          } else {
            intervalMonthDayNanoValueBuilder_.setMessage(value);
          }
        }
        valueDataCase_ = 26;
        return this;
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       */
      public Builder clearIntervalMonthDayNanoValue() {
        if (intervalMonthDayNanoValueBuilder_ == null) {
          if (valueDataCase_ == 26) {
            valueDataCase_ = 0;
            valueData_ = null;
            onChanged();
          }
        } else {
          if (valueDataCase_ == 26) {
            valueDataCase_ = 0;
            valueData_ = null;
          }
          intervalMonthDayNanoValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       */
      public io.greptime.v1.Common.IntervalMonthDayNano.Builder getIntervalMonthDayNanoValueBuilder() {
        return getIntervalMonthDayNanoValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder getIntervalMonthDayNanoValueOrBuilder() {
        if ((valueDataCase_ == 26) && (intervalMonthDayNanoValueBuilder_ != null)) {
          return intervalMonthDayNanoValueBuilder_.getMessageOrBuilder();
        } else {
          if (valueDataCase_ == 26) {
            return (io.greptime.v1.Common.IntervalMonthDayNano) valueData_;
          }
          return io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.IntervalMonthDayNano interval_month_day_nano_value = 26;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.IntervalMonthDayNano, io.greptime.v1.Common.IntervalMonthDayNano.Builder, io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder> 
          getIntervalMonthDayNanoValueFieldBuilder() {
        if (intervalMonthDayNanoValueBuilder_ == null) {
          if (!(valueDataCase_ == 26)) {
            valueData_ = io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance();
          }
          intervalMonthDayNanoValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.IntervalMonthDayNano, io.greptime.v1.Common.IntervalMonthDayNano.Builder, io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder>(
                  (io.greptime.v1.Common.IntervalMonthDayNano) valueData_,
                  getParentForChildren(),
                  isClean());
          valueData_ = null;
        }
        valueDataCase_ = 26;
        onChanged();;
        return intervalMonthDayNanoValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Decimal128, io.greptime.v1.Common.Decimal128.Builder, io.greptime.v1.Common.Decimal128OrBuilder> decimal128ValueBuilder_;
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       * @return Whether the decimal128Value field is set.
       */
      @java.lang.Override
      public boolean hasDecimal128Value() {
        return valueDataCase_ == 31;
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       * @return The decimal128Value.
       */
      @java.lang.Override
      public io.greptime.v1.Common.Decimal128 getDecimal128Value() {
        if (decimal128ValueBuilder_ == null) {
          if (valueDataCase_ == 31) {
            return (io.greptime.v1.Common.Decimal128) valueData_;
          }
          return io.greptime.v1.Common.Decimal128.getDefaultInstance();
        } else {
          if (valueDataCase_ == 31) {
            return decimal128ValueBuilder_.getMessage();
          }
          return io.greptime.v1.Common.Decimal128.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       */
      public Builder setDecimal128Value(io.greptime.v1.Common.Decimal128 value) {
        if (decimal128ValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          valueData_ = value;
          onChanged();
        } else {
          decimal128ValueBuilder_.setMessage(value);
        }
        valueDataCase_ = 31;
        return this;
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       */
      public Builder setDecimal128Value(
          io.greptime.v1.Common.Decimal128.Builder builderForValue) {
        if (decimal128ValueBuilder_ == null) {
          valueData_ = builderForValue.build();
          onChanged();
        } else {
          decimal128ValueBuilder_.setMessage(builderForValue.build());
        }
        valueDataCase_ = 31;
        return this;
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       */
      public Builder mergeDecimal128Value(io.greptime.v1.Common.Decimal128 value) {
        if (decimal128ValueBuilder_ == null) {
          if (valueDataCase_ == 31 &&
              valueData_ != io.greptime.v1.Common.Decimal128.getDefaultInstance()) {
            valueData_ = io.greptime.v1.Common.Decimal128.newBuilder((io.greptime.v1.Common.Decimal128) valueData_)
                .mergeFrom(value).buildPartial();
          } else {
            valueData_ = value;
          }
          onChanged();
        } else {
          if (valueDataCase_ == 31) {
            decimal128ValueBuilder_.mergeFrom(value);
          } else {
            decimal128ValueBuilder_.setMessage(value);
          }
        }
        valueDataCase_ = 31;
        return this;
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       */
      public Builder clearDecimal128Value() {
        if (decimal128ValueBuilder_ == null) {
          if (valueDataCase_ == 31) {
            valueDataCase_ = 0;
            valueData_ = null;
            onChanged();
          }
        } else {
          if (valueDataCase_ == 31) {
            valueDataCase_ = 0;
            valueData_ = null;
          }
          decimal128ValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       */
      public io.greptime.v1.Common.Decimal128.Builder getDecimal128ValueBuilder() {
        return getDecimal128ValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.Decimal128OrBuilder getDecimal128ValueOrBuilder() {
        if ((valueDataCase_ == 31) && (decimal128ValueBuilder_ != null)) {
          return decimal128ValueBuilder_.getMessageOrBuilder();
        } else {
          if (valueDataCase_ == 31) {
            return (io.greptime.v1.Common.Decimal128) valueData_;
          }
          return io.greptime.v1.Common.Decimal128.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.Decimal128 decimal128_value = 31;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Decimal128, io.greptime.v1.Common.Decimal128.Builder, io.greptime.v1.Common.Decimal128OrBuilder> 
          getDecimal128ValueFieldBuilder() {
        if (decimal128ValueBuilder_ == null) {
          if (!(valueDataCase_ == 31)) {
            valueData_ = io.greptime.v1.Common.Decimal128.getDefaultInstance();
          }
          decimal128ValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.Decimal128, io.greptime.v1.Common.Decimal128.Builder, io.greptime.v1.Common.Decimal128OrBuilder>(
                  (io.greptime.v1.Common.Decimal128) valueData_,
                  getParentForChildren(),
                  isClean());
          valueData_ = null;
        }
        valueDataCase_ = 31;
        onChanged();;
        return decimal128ValueBuilder_;
      }
      @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:greptime.v1.Value)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.Value)
    private static final io.greptime.v1.RowData.Value DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.greptime.v1.RowData.Value();
    }

    public static io.greptime.v1.RowData.Value getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Value>
        PARSER = new com.google.protobuf.AbstractParser<Value>() {
      @java.lang.Override
      public Value parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Value(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public io.greptime.v1.RowData.Value getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Rows_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Rows_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ColumnSchema_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ColumnSchema_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Row_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Row_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Value_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Value_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\025greptime/v1/row.proto\022\013greptime.v1\032\030gr" +
      "eptime/v1/common.proto\"Q\n\004Rows\022)\n\006schema" +
      "\030\001 \003(\0132\031.greptime.v1.ColumnSchema\022\036\n\004row" +
      "s\030\002 \003(\0132\020.greptime.v1.Row\"\363\001\n\014ColumnSche" +
      "ma\022\023\n\013column_name\030\001 \001(\t\022-\n\010datatype\030\002 \001(" +
      "\0162\033.greptime.v1.ColumnDataType\0220\n\rsemant" +
      "ic_type\030\003 \001(\0162\031.greptime.v1.SemanticType" +
      "\022@\n\022datatype_extension\030\004 \001(\0132$.greptime." +
      "v1.ColumnDataTypeExtension\022+\n\007options\030\005 " +
      "\001(\0132\032.greptime.v1.ColumnOptions\")\n\003Row\022\"" +
      "\n\006values\030\001 \003(\0132\022.greptime.v1.Value\"\274\006\n\005V" +
      "alue\022\022\n\010i8_value\030\001 \001(\005H\000\022\023\n\ti16_value\030\002 " +
      "\001(\005H\000\022\023\n\ti32_value\030\003 \001(\005H\000\022\023\n\ti64_value\030" +
      "\004 \001(\003H\000\022\022\n\010u8_value\030\005 \001(\rH\000\022\023\n\tu16_value" +
      "\030\006 \001(\rH\000\022\023\n\tu32_value\030\007 \001(\rH\000\022\023\n\tu64_val" +
      "ue\030\010 \001(\004H\000\022\023\n\tf32_value\030\t \001(\002H\000\022\023\n\tf64_v" +
      "alue\030\n \001(\001H\000\022\024\n\nbool_value\030\013 \001(\010H\000\022\026\n\014bi" +
      "nary_value\030\014 \001(\014H\000\022\026\n\014string_value\030\r \001(\t" +
      "H\000\022\024\n\ndate_value\030\016 \001(\005H\000\022\030\n\016datetime_val" +
      "ue\030\017 \001(\003H\000\022 \n\026timestamp_second_value\030\020 \001" +
      "(\003H\000\022%\n\033timestamp_millisecond_value\030\021 \001(" +
      "\003H\000\022%\n\033timestamp_microsecond_value\030\022 \001(\003" +
      "H\000\022$\n\032timestamp_nanosecond_value\030\023 \001(\003H\000" +
      "\022\033\n\021time_second_value\030\024 \001(\003H\000\022 \n\026time_mi" +
      "llisecond_value\030\025 \001(\003H\000\022 \n\026time_microsec" +
      "ond_value\030\026 \001(\003H\000\022\037\n\025time_nanosecond_val" +
      "ue\030\027 \001(\003H\000\022#\n\031interval_year_month_value\030" +
      "\030 \001(\005H\000\022!\n\027interval_day_time_value\030\031 \001(\003" +
      "H\000\022J\n\035interval_month_day_nano_value\030\032 \001(" +
      "\0132!.greptime.v1.IntervalMonthDayNanoH\000\0223" +
      "\n\020decimal128_value\030\037 \001(\0132\027.greptime.v1.D" +
      "ecimal128H\000B\014\n\nvalue_dataBP\n\016io.greptime" +
      ".v1B\007RowDataZ5github.com/GreptimeTeam/gr" +
      "eptime-proto/go/greptime/v1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          io.greptime.v1.Common.getDescriptor(),
        });
    internal_static_greptime_v1_Rows_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_greptime_v1_Rows_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Rows_descriptor,
        new java.lang.String[] { "Schema", "Rows", });
    internal_static_greptime_v1_ColumnSchema_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_greptime_v1_ColumnSchema_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ColumnSchema_descriptor,
        new java.lang.String[] { "ColumnName", "Datatype", "SemanticType", "DatatypeExtension", "Options", });
    internal_static_greptime_v1_Row_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_greptime_v1_Row_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Row_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_greptime_v1_Value_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_greptime_v1_Value_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Value_descriptor,
        new java.lang.String[] { "I8Value", "I16Value", "I32Value", "I64Value", "U8Value", "U16Value", "U32Value", "U64Value", "F32Value", "F64Value", "BoolValue", "BinaryValue", "StringValue", "DateValue", "DatetimeValue", "TimestampSecondValue", "TimestampMillisecondValue", "TimestampMicrosecondValue", "TimestampNanosecondValue", "TimeSecondValue", "TimeMillisecondValue", "TimeMicrosecondValue", "TimeNanosecondValue", "IntervalYearMonthValue", "IntervalDayTimeValue", "IntervalMonthDayNanoValue", "Decimal128Value", "ValueData", });
    io.greptime.v1.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
