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

package io.greptime.v1;

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

    /**
     * <code>.greptime.v1.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.RequestHeader header = 1;</code>
     * @return The header.
     */
    io.greptime.v1.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.RequestHeader header = 1;</code>
     */
    io.greptime.v1.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <code>.greptime.v1.InsertRequests inserts = 2;</code>
     * @return Whether the inserts field is set.
     */
    boolean hasInserts();
    /**
     * <code>.greptime.v1.InsertRequests inserts = 2;</code>
     * @return The inserts.
     */
    io.greptime.v1.Database.InsertRequests getInserts();
    /**
     * <code>.greptime.v1.InsertRequests inserts = 2;</code>
     */
    io.greptime.v1.Database.InsertRequestsOrBuilder getInsertsOrBuilder();

    /**
     * <code>.greptime.v1.QueryRequest query = 3;</code>
     * @return Whether the query field is set.
     */
    boolean hasQuery();
    /**
     * <code>.greptime.v1.QueryRequest query = 3;</code>
     * @return The query.
     */
    io.greptime.v1.Database.QueryRequest getQuery();
    /**
     * <code>.greptime.v1.QueryRequest query = 3;</code>
     */
    io.greptime.v1.Database.QueryRequestOrBuilder getQueryOrBuilder();

    /**
     * <code>.greptime.v1.DdlRequest ddl = 4;</code>
     * @return Whether the ddl field is set.
     */
    boolean hasDdl();
    /**
     * <code>.greptime.v1.DdlRequest ddl = 4;</code>
     * @return The ddl.
     */
    io.greptime.v1.Ddl.DdlRequest getDdl();
    /**
     * <code>.greptime.v1.DdlRequest ddl = 4;</code>
     */
    io.greptime.v1.Ddl.DdlRequestOrBuilder getDdlOrBuilder();

    /**
     * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
     * @return Whether the deletes field is set.
     */
    boolean hasDeletes();
    /**
     * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
     * @return The deletes.
     */
    io.greptime.v1.Database.DeleteRequests getDeletes();
    /**
     * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
     */
    io.greptime.v1.Database.DeleteRequestsOrBuilder getDeletesOrBuilder();

    /**
     * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
     * @return Whether the rowInserts field is set.
     */
    boolean hasRowInserts();
    /**
     * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
     * @return The rowInserts.
     */
    io.greptime.v1.Database.RowInsertRequests getRowInserts();
    /**
     * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
     */
    io.greptime.v1.Database.RowInsertRequestsOrBuilder getRowInsertsOrBuilder();

    /**
     * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
     * @return Whether the rowDeletes field is set.
     */
    boolean hasRowDeletes();
    /**
     * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
     * @return The rowDeletes.
     */
    io.greptime.v1.Database.RowDeleteRequests getRowDeletes();
    /**
     * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
     */
    io.greptime.v1.Database.RowDeleteRequestsOrBuilder getRowDeletesOrBuilder();

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GreptimeRequest(
        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: {
              io.greptime.v1.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(io.greptime.v1.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              io.greptime.v1.Database.InsertRequests.Builder subBuilder = null;
              if (requestCase_ == 2) {
                subBuilder = ((io.greptime.v1.Database.InsertRequests) request_).toBuilder();
              }
              request_ =
                  input.readMessage(io.greptime.v1.Database.InsertRequests.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Database.InsertRequests) request_);
                request_ = subBuilder.buildPartial();
              }
              requestCase_ = 2;
              break;
            }
            case 26: {
              io.greptime.v1.Database.QueryRequest.Builder subBuilder = null;
              if (requestCase_ == 3) {
                subBuilder = ((io.greptime.v1.Database.QueryRequest) request_).toBuilder();
              }
              request_ =
                  input.readMessage(io.greptime.v1.Database.QueryRequest.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Database.QueryRequest) request_);
                request_ = subBuilder.buildPartial();
              }
              requestCase_ = 3;
              break;
            }
            case 34: {
              io.greptime.v1.Ddl.DdlRequest.Builder subBuilder = null;
              if (requestCase_ == 4) {
                subBuilder = ((io.greptime.v1.Ddl.DdlRequest) request_).toBuilder();
              }
              request_ =
                  input.readMessage(io.greptime.v1.Ddl.DdlRequest.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.DdlRequest) request_);
                request_ = subBuilder.buildPartial();
              }
              requestCase_ = 4;
              break;
            }
            case 42: {
              io.greptime.v1.Database.DeleteRequests.Builder subBuilder = null;
              if (requestCase_ == 5) {
                subBuilder = ((io.greptime.v1.Database.DeleteRequests) request_).toBuilder();
              }
              request_ =
                  input.readMessage(io.greptime.v1.Database.DeleteRequests.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Database.DeleteRequests) request_);
                request_ = subBuilder.buildPartial();
              }
              requestCase_ = 5;
              break;
            }
            case 50: {
              io.greptime.v1.Database.RowInsertRequests.Builder subBuilder = null;
              if (requestCase_ == 6) {
                subBuilder = ((io.greptime.v1.Database.RowInsertRequests) request_).toBuilder();
              }
              request_ =
                  input.readMessage(io.greptime.v1.Database.RowInsertRequests.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Database.RowInsertRequests) request_);
                request_ = subBuilder.buildPartial();
              }
              requestCase_ = 6;
              break;
            }
            case 58: {
              io.greptime.v1.Database.RowDeleteRequests.Builder subBuilder = null;
              if (requestCase_ == 7) {
                subBuilder = ((io.greptime.v1.Database.RowDeleteRequests) request_).toBuilder();
              }
              request_ =
                  input.readMessage(io.greptime.v1.Database.RowDeleteRequests.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Database.RowDeleteRequests) request_);
                request_ = subBuilder.buildPartial();
              }
              requestCase_ = 7;
              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.Database.internal_static_greptime_v1_GreptimeRequest_descriptor;
    }

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

    private int requestCase_ = 0;
    private java.lang.Object request_;
    public enum RequestCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      INSERTS(2),
      QUERY(3),
      DDL(4),
      DELETES(5),
      ROW_INSERTS(6),
      ROW_DELETES(7),
      REQUEST_NOT_SET(0);
      private final int value;
      private RequestCase(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 RequestCase valueOf(int value) {
        return forNumber(value);
      }

      public static RequestCase forNumber(int value) {
        switch (value) {
          case 2: return INSERTS;
          case 3: return QUERY;
          case 4: return DDL;
          case 5: return DELETES;
          case 6: return ROW_INSERTS;
          case 7: return ROW_DELETES;
          case 0: return REQUEST_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public RequestCase
    getRequestCase() {
      return RequestCase.forNumber(
          requestCase_);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private io.greptime.v1.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public io.greptime.v1.Common.RequestHeader getHeader() {
      return header_ == null ? io.greptime.v1.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int INSERTS_FIELD_NUMBER = 2;
    /**
     * <code>.greptime.v1.InsertRequests inserts = 2;</code>
     * @return Whether the inserts field is set.
     */
    @java.lang.Override
    public boolean hasInserts() {
      return requestCase_ == 2;
    }
    /**
     * <code>.greptime.v1.InsertRequests inserts = 2;</code>
     * @return The inserts.
     */
    @java.lang.Override
    public io.greptime.v1.Database.InsertRequests getInserts() {
      if (requestCase_ == 2) {
         return (io.greptime.v1.Database.InsertRequests) request_;
      }
      return io.greptime.v1.Database.InsertRequests.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.InsertRequests inserts = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.InsertRequestsOrBuilder getInsertsOrBuilder() {
      if (requestCase_ == 2) {
         return (io.greptime.v1.Database.InsertRequests) request_;
      }
      return io.greptime.v1.Database.InsertRequests.getDefaultInstance();
    }

    public static final int QUERY_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.QueryRequest query = 3;</code>
     * @return Whether the query field is set.
     */
    @java.lang.Override
    public boolean hasQuery() {
      return requestCase_ == 3;
    }
    /**
     * <code>.greptime.v1.QueryRequest query = 3;</code>
     * @return The query.
     */
    @java.lang.Override
    public io.greptime.v1.Database.QueryRequest getQuery() {
      if (requestCase_ == 3) {
         return (io.greptime.v1.Database.QueryRequest) request_;
      }
      return io.greptime.v1.Database.QueryRequest.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.QueryRequest query = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.QueryRequestOrBuilder getQueryOrBuilder() {
      if (requestCase_ == 3) {
         return (io.greptime.v1.Database.QueryRequest) request_;
      }
      return io.greptime.v1.Database.QueryRequest.getDefaultInstance();
    }

    public static final int DDL_FIELD_NUMBER = 4;
    /**
     * <code>.greptime.v1.DdlRequest ddl = 4;</code>
     * @return Whether the ddl field is set.
     */
    @java.lang.Override
    public boolean hasDdl() {
      return requestCase_ == 4;
    }
    /**
     * <code>.greptime.v1.DdlRequest ddl = 4;</code>
     * @return The ddl.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DdlRequest getDdl() {
      if (requestCase_ == 4) {
         return (io.greptime.v1.Ddl.DdlRequest) request_;
      }
      return io.greptime.v1.Ddl.DdlRequest.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DdlRequest ddl = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DdlRequestOrBuilder getDdlOrBuilder() {
      if (requestCase_ == 4) {
         return (io.greptime.v1.Ddl.DdlRequest) request_;
      }
      return io.greptime.v1.Ddl.DdlRequest.getDefaultInstance();
    }

    public static final int DELETES_FIELD_NUMBER = 5;
    /**
     * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
     * @return Whether the deletes field is set.
     */
    @java.lang.Override
    public boolean hasDeletes() {
      return requestCase_ == 5;
    }
    /**
     * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
     * @return The deletes.
     */
    @java.lang.Override
    public io.greptime.v1.Database.DeleteRequests getDeletes() {
      if (requestCase_ == 5) {
         return (io.greptime.v1.Database.DeleteRequests) request_;
      }
      return io.greptime.v1.Database.DeleteRequests.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.DeleteRequestsOrBuilder getDeletesOrBuilder() {
      if (requestCase_ == 5) {
         return (io.greptime.v1.Database.DeleteRequests) request_;
      }
      return io.greptime.v1.Database.DeleteRequests.getDefaultInstance();
    }

    public static final int ROW_INSERTS_FIELD_NUMBER = 6;
    /**
     * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
     * @return Whether the rowInserts field is set.
     */
    @java.lang.Override
    public boolean hasRowInserts() {
      return requestCase_ == 6;
    }
    /**
     * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
     * @return The rowInserts.
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowInsertRequests getRowInserts() {
      if (requestCase_ == 6) {
         return (io.greptime.v1.Database.RowInsertRequests) request_;
      }
      return io.greptime.v1.Database.RowInsertRequests.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowInsertRequestsOrBuilder getRowInsertsOrBuilder() {
      if (requestCase_ == 6) {
         return (io.greptime.v1.Database.RowInsertRequests) request_;
      }
      return io.greptime.v1.Database.RowInsertRequests.getDefaultInstance();
    }

    public static final int ROW_DELETES_FIELD_NUMBER = 7;
    /**
     * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
     * @return Whether the rowDeletes field is set.
     */
    @java.lang.Override
    public boolean hasRowDeletes() {
      return requestCase_ == 7;
    }
    /**
     * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
     * @return The rowDeletes.
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowDeleteRequests getRowDeletes() {
      if (requestCase_ == 7) {
         return (io.greptime.v1.Database.RowDeleteRequests) request_;
      }
      return io.greptime.v1.Database.RowDeleteRequests.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowDeleteRequestsOrBuilder getRowDeletesOrBuilder() {
      if (requestCase_ == 7) {
         return (io.greptime.v1.Database.RowDeleteRequests) request_;
      }
      return io.greptime.v1.Database.RowDeleteRequests.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 (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (requestCase_ == 2) {
        output.writeMessage(2, (io.greptime.v1.Database.InsertRequests) request_);
      }
      if (requestCase_ == 3) {
        output.writeMessage(3, (io.greptime.v1.Database.QueryRequest) request_);
      }
      if (requestCase_ == 4) {
        output.writeMessage(4, (io.greptime.v1.Ddl.DdlRequest) request_);
      }
      if (requestCase_ == 5) {
        output.writeMessage(5, (io.greptime.v1.Database.DeleteRequests) request_);
      }
      if (requestCase_ == 6) {
        output.writeMessage(6, (io.greptime.v1.Database.RowInsertRequests) request_);
      }
      if (requestCase_ == 7) {
        output.writeMessage(7, (io.greptime.v1.Database.RowDeleteRequests) request_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (requestCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (io.greptime.v1.Database.InsertRequests) request_);
      }
      if (requestCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.greptime.v1.Database.QueryRequest) request_);
      }
      if (requestCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (io.greptime.v1.Ddl.DdlRequest) request_);
      }
      if (requestCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (io.greptime.v1.Database.DeleteRequests) request_);
      }
      if (requestCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (io.greptime.v1.Database.RowInsertRequests) request_);
      }
      if (requestCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (io.greptime.v1.Database.RowDeleteRequests) request_);
      }
      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.Database.GreptimeRequest)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.GreptimeRequest other = (io.greptime.v1.Database.GreptimeRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getRequestCase().equals(other.getRequestCase())) return false;
      switch (requestCase_) {
        case 2:
          if (!getInserts()
              .equals(other.getInserts())) return false;
          break;
        case 3:
          if (!getQuery()
              .equals(other.getQuery())) return false;
          break;
        case 4:
          if (!getDdl()
              .equals(other.getDdl())) return false;
          break;
        case 5:
          if (!getDeletes()
              .equals(other.getDeletes())) return false;
          break;
        case 6:
          if (!getRowInserts()
              .equals(other.getRowInserts())) return false;
          break;
        case 7:
          if (!getRowDeletes()
              .equals(other.getRowDeletes())) 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();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      switch (requestCase_) {
        case 2:
          hash = (37 * hash) + INSERTS_FIELD_NUMBER;
          hash = (53 * hash) + getInserts().hashCode();
          break;
        case 3:
          hash = (37 * hash) + QUERY_FIELD_NUMBER;
          hash = (53 * hash) + getQuery().hashCode();
          break;
        case 4:
          hash = (37 * hash) + DDL_FIELD_NUMBER;
          hash = (53 * hash) + getDdl().hashCode();
          break;
        case 5:
          hash = (37 * hash) + DELETES_FIELD_NUMBER;
          hash = (53 * hash) + getDeletes().hashCode();
          break;
        case 6:
          hash = (37 * hash) + ROW_INSERTS_FIELD_NUMBER;
          hash = (53 * hash) + getRowInserts().hashCode();
          break;
        case 7:
          hash = (37 * hash) + ROW_DELETES_FIELD_NUMBER;
          hash = (53 * hash) + getRowDeletes().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Database.GreptimeRequest.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();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        requestCase_ = 0;
        request_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.GreptimeRequest buildPartial() {
        io.greptime.v1.Database.GreptimeRequest result = new io.greptime.v1.Database.GreptimeRequest(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (requestCase_ == 2) {
          if (insertsBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = insertsBuilder_.build();
          }
        }
        if (requestCase_ == 3) {
          if (queryBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = queryBuilder_.build();
          }
        }
        if (requestCase_ == 4) {
          if (ddlBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = ddlBuilder_.build();
          }
        }
        if (requestCase_ == 5) {
          if (deletesBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = deletesBuilder_.build();
          }
        }
        if (requestCase_ == 6) {
          if (rowInsertsBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = rowInsertsBuilder_.build();
          }
        }
        if (requestCase_ == 7) {
          if (rowDeletesBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = rowDeletesBuilder_.build();
          }
        }
        result.requestCase_ = requestCase_;
        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.Database.GreptimeRequest) {
          return mergeFrom((io.greptime.v1.Database.GreptimeRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.GreptimeRequest other) {
        if (other == io.greptime.v1.Database.GreptimeRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        switch (other.getRequestCase()) {
          case INSERTS: {
            mergeInserts(other.getInserts());
            break;
          }
          case QUERY: {
            mergeQuery(other.getQuery());
            break;
          }
          case DDL: {
            mergeDdl(other.getDdl());
            break;
          }
          case DELETES: {
            mergeDeletes(other.getDeletes());
            break;
          }
          case ROW_INSERTS: {
            mergeRowInserts(other.getRowInserts());
            break;
          }
          case ROW_DELETES: {
            mergeRowDeletes(other.getRowDeletes());
            break;
          }
          case REQUEST_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.Database.GreptimeRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.GreptimeRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int requestCase_ = 0;
      private java.lang.Object request_;
      public RequestCase
          getRequestCase() {
        return RequestCase.forNumber(
            requestCase_);
      }

      public Builder clearRequest() {
        requestCase_ = 0;
        request_ = null;
        onChanged();
        return this;
      }


      private io.greptime.v1.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.RequestHeader, io.greptime.v1.Common.RequestHeader.Builder, io.greptime.v1.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       * @return The header.
       */
      public io.greptime.v1.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? io.greptime.v1.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       */
      public Builder setHeader(io.greptime.v1.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          io.greptime.v1.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(io.greptime.v1.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              io.greptime.v1.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       */
      public io.greptime.v1.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       */
      public io.greptime.v1.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              io.greptime.v1.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.RequestHeader, io.greptime.v1.Common.RequestHeader.Builder, io.greptime.v1.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.RequestHeader, io.greptime.v1.Common.RequestHeader.Builder, io.greptime.v1.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.InsertRequests, io.greptime.v1.Database.InsertRequests.Builder, io.greptime.v1.Database.InsertRequestsOrBuilder> insertsBuilder_;
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       * @return Whether the inserts field is set.
       */
      @java.lang.Override
      public boolean hasInserts() {
        return requestCase_ == 2;
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       * @return The inserts.
       */
      @java.lang.Override
      public io.greptime.v1.Database.InsertRequests getInserts() {
        if (insertsBuilder_ == null) {
          if (requestCase_ == 2) {
            return (io.greptime.v1.Database.InsertRequests) request_;
          }
          return io.greptime.v1.Database.InsertRequests.getDefaultInstance();
        } else {
          if (requestCase_ == 2) {
            return insertsBuilder_.getMessage();
          }
          return io.greptime.v1.Database.InsertRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       */
      public Builder setInserts(io.greptime.v1.Database.InsertRequests value) {
        if (insertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          insertsBuilder_.setMessage(value);
        }
        requestCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       */
      public Builder setInserts(
          io.greptime.v1.Database.InsertRequests.Builder builderForValue) {
        if (insertsBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          insertsBuilder_.setMessage(builderForValue.build());
        }
        requestCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       */
      public Builder mergeInserts(io.greptime.v1.Database.InsertRequests value) {
        if (insertsBuilder_ == null) {
          if (requestCase_ == 2 &&
              request_ != io.greptime.v1.Database.InsertRequests.getDefaultInstance()) {
            request_ = io.greptime.v1.Database.InsertRequests.newBuilder((io.greptime.v1.Database.InsertRequests) request_)
                .mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          if (requestCase_ == 2) {
            insertsBuilder_.mergeFrom(value);
          } else {
            insertsBuilder_.setMessage(value);
          }
        }
        requestCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       */
      public Builder clearInserts() {
        if (insertsBuilder_ == null) {
          if (requestCase_ == 2) {
            requestCase_ = 0;
            request_ = null;
            onChanged();
          }
        } else {
          if (requestCase_ == 2) {
            requestCase_ = 0;
            request_ = null;
          }
          insertsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       */
      public io.greptime.v1.Database.InsertRequests.Builder getInsertsBuilder() {
        return getInsertsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Database.InsertRequestsOrBuilder getInsertsOrBuilder() {
        if ((requestCase_ == 2) && (insertsBuilder_ != null)) {
          return insertsBuilder_.getMessageOrBuilder();
        } else {
          if (requestCase_ == 2) {
            return (io.greptime.v1.Database.InsertRequests) request_;
          }
          return io.greptime.v1.Database.InsertRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.InsertRequests inserts = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.InsertRequests, io.greptime.v1.Database.InsertRequests.Builder, io.greptime.v1.Database.InsertRequestsOrBuilder> 
          getInsertsFieldBuilder() {
        if (insertsBuilder_ == null) {
          if (!(requestCase_ == 2)) {
            request_ = io.greptime.v1.Database.InsertRequests.getDefaultInstance();
          }
          insertsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Database.InsertRequests, io.greptime.v1.Database.InsertRequests.Builder, io.greptime.v1.Database.InsertRequestsOrBuilder>(
                  (io.greptime.v1.Database.InsertRequests) request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        requestCase_ = 2;
        onChanged();;
        return insertsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.QueryRequest, io.greptime.v1.Database.QueryRequest.Builder, io.greptime.v1.Database.QueryRequestOrBuilder> queryBuilder_;
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       * @return Whether the query field is set.
       */
      @java.lang.Override
      public boolean hasQuery() {
        return requestCase_ == 3;
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       * @return The query.
       */
      @java.lang.Override
      public io.greptime.v1.Database.QueryRequest getQuery() {
        if (queryBuilder_ == null) {
          if (requestCase_ == 3) {
            return (io.greptime.v1.Database.QueryRequest) request_;
          }
          return io.greptime.v1.Database.QueryRequest.getDefaultInstance();
        } else {
          if (requestCase_ == 3) {
            return queryBuilder_.getMessage();
          }
          return io.greptime.v1.Database.QueryRequest.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       */
      public Builder setQuery(io.greptime.v1.Database.QueryRequest value) {
        if (queryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          queryBuilder_.setMessage(value);
        }
        requestCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       */
      public Builder setQuery(
          io.greptime.v1.Database.QueryRequest.Builder builderForValue) {
        if (queryBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          queryBuilder_.setMessage(builderForValue.build());
        }
        requestCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       */
      public Builder mergeQuery(io.greptime.v1.Database.QueryRequest value) {
        if (queryBuilder_ == null) {
          if (requestCase_ == 3 &&
              request_ != io.greptime.v1.Database.QueryRequest.getDefaultInstance()) {
            request_ = io.greptime.v1.Database.QueryRequest.newBuilder((io.greptime.v1.Database.QueryRequest) request_)
                .mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          if (requestCase_ == 3) {
            queryBuilder_.mergeFrom(value);
          } else {
            queryBuilder_.setMessage(value);
          }
        }
        requestCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       */
      public Builder clearQuery() {
        if (queryBuilder_ == null) {
          if (requestCase_ == 3) {
            requestCase_ = 0;
            request_ = null;
            onChanged();
          }
        } else {
          if (requestCase_ == 3) {
            requestCase_ = 0;
            request_ = null;
          }
          queryBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       */
      public io.greptime.v1.Database.QueryRequest.Builder getQueryBuilder() {
        return getQueryFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Database.QueryRequestOrBuilder getQueryOrBuilder() {
        if ((requestCase_ == 3) && (queryBuilder_ != null)) {
          return queryBuilder_.getMessageOrBuilder();
        } else {
          if (requestCase_ == 3) {
            return (io.greptime.v1.Database.QueryRequest) request_;
          }
          return io.greptime.v1.Database.QueryRequest.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.QueryRequest query = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.QueryRequest, io.greptime.v1.Database.QueryRequest.Builder, io.greptime.v1.Database.QueryRequestOrBuilder> 
          getQueryFieldBuilder() {
        if (queryBuilder_ == null) {
          if (!(requestCase_ == 3)) {
            request_ = io.greptime.v1.Database.QueryRequest.getDefaultInstance();
          }
          queryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Database.QueryRequest, io.greptime.v1.Database.QueryRequest.Builder, io.greptime.v1.Database.QueryRequestOrBuilder>(
                  (io.greptime.v1.Database.QueryRequest) request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        requestCase_ = 3;
        onChanged();;
        return queryBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DdlRequest, io.greptime.v1.Ddl.DdlRequest.Builder, io.greptime.v1.Ddl.DdlRequestOrBuilder> ddlBuilder_;
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       * @return Whether the ddl field is set.
       */
      @java.lang.Override
      public boolean hasDdl() {
        return requestCase_ == 4;
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       * @return The ddl.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DdlRequest getDdl() {
        if (ddlBuilder_ == null) {
          if (requestCase_ == 4) {
            return (io.greptime.v1.Ddl.DdlRequest) request_;
          }
          return io.greptime.v1.Ddl.DdlRequest.getDefaultInstance();
        } else {
          if (requestCase_ == 4) {
            return ddlBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.DdlRequest.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       */
      public Builder setDdl(io.greptime.v1.Ddl.DdlRequest value) {
        if (ddlBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          ddlBuilder_.setMessage(value);
        }
        requestCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       */
      public Builder setDdl(
          io.greptime.v1.Ddl.DdlRequest.Builder builderForValue) {
        if (ddlBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          ddlBuilder_.setMessage(builderForValue.build());
        }
        requestCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       */
      public Builder mergeDdl(io.greptime.v1.Ddl.DdlRequest value) {
        if (ddlBuilder_ == null) {
          if (requestCase_ == 4 &&
              request_ != io.greptime.v1.Ddl.DdlRequest.getDefaultInstance()) {
            request_ = io.greptime.v1.Ddl.DdlRequest.newBuilder((io.greptime.v1.Ddl.DdlRequest) request_)
                .mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          if (requestCase_ == 4) {
            ddlBuilder_.mergeFrom(value);
          } else {
            ddlBuilder_.setMessage(value);
          }
        }
        requestCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       */
      public Builder clearDdl() {
        if (ddlBuilder_ == null) {
          if (requestCase_ == 4) {
            requestCase_ = 0;
            request_ = null;
            onChanged();
          }
        } else {
          if (requestCase_ == 4) {
            requestCase_ = 0;
            request_ = null;
          }
          ddlBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       */
      public io.greptime.v1.Ddl.DdlRequest.Builder getDdlBuilder() {
        return getDdlFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DdlRequestOrBuilder getDdlOrBuilder() {
        if ((requestCase_ == 4) && (ddlBuilder_ != null)) {
          return ddlBuilder_.getMessageOrBuilder();
        } else {
          if (requestCase_ == 4) {
            return (io.greptime.v1.Ddl.DdlRequest) request_;
          }
          return io.greptime.v1.Ddl.DdlRequest.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DdlRequest ddl = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DdlRequest, io.greptime.v1.Ddl.DdlRequest.Builder, io.greptime.v1.Ddl.DdlRequestOrBuilder> 
          getDdlFieldBuilder() {
        if (ddlBuilder_ == null) {
          if (!(requestCase_ == 4)) {
            request_ = io.greptime.v1.Ddl.DdlRequest.getDefaultInstance();
          }
          ddlBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.DdlRequest, io.greptime.v1.Ddl.DdlRequest.Builder, io.greptime.v1.Ddl.DdlRequestOrBuilder>(
                  (io.greptime.v1.Ddl.DdlRequest) request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        requestCase_ = 4;
        onChanged();;
        return ddlBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.DeleteRequests, io.greptime.v1.Database.DeleteRequests.Builder, io.greptime.v1.Database.DeleteRequestsOrBuilder> deletesBuilder_;
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       * @return Whether the deletes field is set.
       */
      @java.lang.Override
      public boolean hasDeletes() {
        return requestCase_ == 5;
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       * @return The deletes.
       */
      @java.lang.Override
      public io.greptime.v1.Database.DeleteRequests getDeletes() {
        if (deletesBuilder_ == null) {
          if (requestCase_ == 5) {
            return (io.greptime.v1.Database.DeleteRequests) request_;
          }
          return io.greptime.v1.Database.DeleteRequests.getDefaultInstance();
        } else {
          if (requestCase_ == 5) {
            return deletesBuilder_.getMessage();
          }
          return io.greptime.v1.Database.DeleteRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       */
      public Builder setDeletes(io.greptime.v1.Database.DeleteRequests value) {
        if (deletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          deletesBuilder_.setMessage(value);
        }
        requestCase_ = 5;
        return this;
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       */
      public Builder setDeletes(
          io.greptime.v1.Database.DeleteRequests.Builder builderForValue) {
        if (deletesBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          deletesBuilder_.setMessage(builderForValue.build());
        }
        requestCase_ = 5;
        return this;
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       */
      public Builder mergeDeletes(io.greptime.v1.Database.DeleteRequests value) {
        if (deletesBuilder_ == null) {
          if (requestCase_ == 5 &&
              request_ != io.greptime.v1.Database.DeleteRequests.getDefaultInstance()) {
            request_ = io.greptime.v1.Database.DeleteRequests.newBuilder((io.greptime.v1.Database.DeleteRequests) request_)
                .mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          if (requestCase_ == 5) {
            deletesBuilder_.mergeFrom(value);
          } else {
            deletesBuilder_.setMessage(value);
          }
        }
        requestCase_ = 5;
        return this;
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       */
      public Builder clearDeletes() {
        if (deletesBuilder_ == null) {
          if (requestCase_ == 5) {
            requestCase_ = 0;
            request_ = null;
            onChanged();
          }
        } else {
          if (requestCase_ == 5) {
            requestCase_ = 0;
            request_ = null;
          }
          deletesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       */
      public io.greptime.v1.Database.DeleteRequests.Builder getDeletesBuilder() {
        return getDeletesFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Database.DeleteRequestsOrBuilder getDeletesOrBuilder() {
        if ((requestCase_ == 5) && (deletesBuilder_ != null)) {
          return deletesBuilder_.getMessageOrBuilder();
        } else {
          if (requestCase_ == 5) {
            return (io.greptime.v1.Database.DeleteRequests) request_;
          }
          return io.greptime.v1.Database.DeleteRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DeleteRequests deletes = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.DeleteRequests, io.greptime.v1.Database.DeleteRequests.Builder, io.greptime.v1.Database.DeleteRequestsOrBuilder> 
          getDeletesFieldBuilder() {
        if (deletesBuilder_ == null) {
          if (!(requestCase_ == 5)) {
            request_ = io.greptime.v1.Database.DeleteRequests.getDefaultInstance();
          }
          deletesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Database.DeleteRequests, io.greptime.v1.Database.DeleteRequests.Builder, io.greptime.v1.Database.DeleteRequestsOrBuilder>(
                  (io.greptime.v1.Database.DeleteRequests) request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        requestCase_ = 5;
        onChanged();;
        return deletesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.RowInsertRequests, io.greptime.v1.Database.RowInsertRequests.Builder, io.greptime.v1.Database.RowInsertRequestsOrBuilder> rowInsertsBuilder_;
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       * @return Whether the rowInserts field is set.
       */
      @java.lang.Override
      public boolean hasRowInserts() {
        return requestCase_ == 6;
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       * @return The rowInserts.
       */
      @java.lang.Override
      public io.greptime.v1.Database.RowInsertRequests getRowInserts() {
        if (rowInsertsBuilder_ == null) {
          if (requestCase_ == 6) {
            return (io.greptime.v1.Database.RowInsertRequests) request_;
          }
          return io.greptime.v1.Database.RowInsertRequests.getDefaultInstance();
        } else {
          if (requestCase_ == 6) {
            return rowInsertsBuilder_.getMessage();
          }
          return io.greptime.v1.Database.RowInsertRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       */
      public Builder setRowInserts(io.greptime.v1.Database.RowInsertRequests value) {
        if (rowInsertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          rowInsertsBuilder_.setMessage(value);
        }
        requestCase_ = 6;
        return this;
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       */
      public Builder setRowInserts(
          io.greptime.v1.Database.RowInsertRequests.Builder builderForValue) {
        if (rowInsertsBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          rowInsertsBuilder_.setMessage(builderForValue.build());
        }
        requestCase_ = 6;
        return this;
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       */
      public Builder mergeRowInserts(io.greptime.v1.Database.RowInsertRequests value) {
        if (rowInsertsBuilder_ == null) {
          if (requestCase_ == 6 &&
              request_ != io.greptime.v1.Database.RowInsertRequests.getDefaultInstance()) {
            request_ = io.greptime.v1.Database.RowInsertRequests.newBuilder((io.greptime.v1.Database.RowInsertRequests) request_)
                .mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          if (requestCase_ == 6) {
            rowInsertsBuilder_.mergeFrom(value);
          } else {
            rowInsertsBuilder_.setMessage(value);
          }
        }
        requestCase_ = 6;
        return this;
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       */
      public Builder clearRowInserts() {
        if (rowInsertsBuilder_ == null) {
          if (requestCase_ == 6) {
            requestCase_ = 0;
            request_ = null;
            onChanged();
          }
        } else {
          if (requestCase_ == 6) {
            requestCase_ = 0;
            request_ = null;
          }
          rowInsertsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       */
      public io.greptime.v1.Database.RowInsertRequests.Builder getRowInsertsBuilder() {
        return getRowInsertsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Database.RowInsertRequestsOrBuilder getRowInsertsOrBuilder() {
        if ((requestCase_ == 6) && (rowInsertsBuilder_ != null)) {
          return rowInsertsBuilder_.getMessageOrBuilder();
        } else {
          if (requestCase_ == 6) {
            return (io.greptime.v1.Database.RowInsertRequests) request_;
          }
          return io.greptime.v1.Database.RowInsertRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.RowInsertRequests row_inserts = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.RowInsertRequests, io.greptime.v1.Database.RowInsertRequests.Builder, io.greptime.v1.Database.RowInsertRequestsOrBuilder> 
          getRowInsertsFieldBuilder() {
        if (rowInsertsBuilder_ == null) {
          if (!(requestCase_ == 6)) {
            request_ = io.greptime.v1.Database.RowInsertRequests.getDefaultInstance();
          }
          rowInsertsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Database.RowInsertRequests, io.greptime.v1.Database.RowInsertRequests.Builder, io.greptime.v1.Database.RowInsertRequestsOrBuilder>(
                  (io.greptime.v1.Database.RowInsertRequests) request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        requestCase_ = 6;
        onChanged();;
        return rowInsertsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.RowDeleteRequests, io.greptime.v1.Database.RowDeleteRequests.Builder, io.greptime.v1.Database.RowDeleteRequestsOrBuilder> rowDeletesBuilder_;
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       * @return Whether the rowDeletes field is set.
       */
      @java.lang.Override
      public boolean hasRowDeletes() {
        return requestCase_ == 7;
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       * @return The rowDeletes.
       */
      @java.lang.Override
      public io.greptime.v1.Database.RowDeleteRequests getRowDeletes() {
        if (rowDeletesBuilder_ == null) {
          if (requestCase_ == 7) {
            return (io.greptime.v1.Database.RowDeleteRequests) request_;
          }
          return io.greptime.v1.Database.RowDeleteRequests.getDefaultInstance();
        } else {
          if (requestCase_ == 7) {
            return rowDeletesBuilder_.getMessage();
          }
          return io.greptime.v1.Database.RowDeleteRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       */
      public Builder setRowDeletes(io.greptime.v1.Database.RowDeleteRequests value) {
        if (rowDeletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          rowDeletesBuilder_.setMessage(value);
        }
        requestCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       */
      public Builder setRowDeletes(
          io.greptime.v1.Database.RowDeleteRequests.Builder builderForValue) {
        if (rowDeletesBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          rowDeletesBuilder_.setMessage(builderForValue.build());
        }
        requestCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       */
      public Builder mergeRowDeletes(io.greptime.v1.Database.RowDeleteRequests value) {
        if (rowDeletesBuilder_ == null) {
          if (requestCase_ == 7 &&
              request_ != io.greptime.v1.Database.RowDeleteRequests.getDefaultInstance()) {
            request_ = io.greptime.v1.Database.RowDeleteRequests.newBuilder((io.greptime.v1.Database.RowDeleteRequests) request_)
                .mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          if (requestCase_ == 7) {
            rowDeletesBuilder_.mergeFrom(value);
          } else {
            rowDeletesBuilder_.setMessage(value);
          }
        }
        requestCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       */
      public Builder clearRowDeletes() {
        if (rowDeletesBuilder_ == null) {
          if (requestCase_ == 7) {
            requestCase_ = 0;
            request_ = null;
            onChanged();
          }
        } else {
          if (requestCase_ == 7) {
            requestCase_ = 0;
            request_ = null;
          }
          rowDeletesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       */
      public io.greptime.v1.Database.RowDeleteRequests.Builder getRowDeletesBuilder() {
        return getRowDeletesFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Database.RowDeleteRequestsOrBuilder getRowDeletesOrBuilder() {
        if ((requestCase_ == 7) && (rowDeletesBuilder_ != null)) {
          return rowDeletesBuilder_.getMessageOrBuilder();
        } else {
          if (requestCase_ == 7) {
            return (io.greptime.v1.Database.RowDeleteRequests) request_;
          }
          return io.greptime.v1.Database.RowDeleteRequests.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.RowDeleteRequests row_deletes = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.RowDeleteRequests, io.greptime.v1.Database.RowDeleteRequests.Builder, io.greptime.v1.Database.RowDeleteRequestsOrBuilder> 
          getRowDeletesFieldBuilder() {
        if (rowDeletesBuilder_ == null) {
          if (!(requestCase_ == 7)) {
            request_ = io.greptime.v1.Database.RowDeleteRequests.getDefaultInstance();
          }
          rowDeletesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Database.RowDeleteRequests, io.greptime.v1.Database.RowDeleteRequests.Builder, io.greptime.v1.Database.RowDeleteRequestsOrBuilder>(
                  (io.greptime.v1.Database.RowDeleteRequests) request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        requestCase_ = 7;
        onChanged();;
        return rowDeletesBuilder_;
      }
      @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.GreptimeRequest)
    }

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

    public static io.greptime.v1.Database.GreptimeRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.ResponseHeader header = 1;</code>
     * @return The header.
     */
    io.greptime.v1.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.ResponseHeader header = 1;</code>
     */
    io.greptime.v1.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
     * @return Whether the affectedRows field is set.
     */
    boolean hasAffectedRows();
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
     * @return The affectedRows.
     */
    io.greptime.v1.Common.AffectedRows getAffectedRows();
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
     */
    io.greptime.v1.Common.AffectedRowsOrBuilder getAffectedRowsOrBuilder();

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GreptimeResponse(
        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: {
              io.greptime.v1.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(io.greptime.v1.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              io.greptime.v1.Common.AffectedRows.Builder subBuilder = null;
              if (responseCase_ == 2) {
                subBuilder = ((io.greptime.v1.Common.AffectedRows) response_).toBuilder();
              }
              response_ =
                  input.readMessage(io.greptime.v1.Common.AffectedRows.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Common.AffectedRows) response_);
                response_ = subBuilder.buildPartial();
              }
              responseCase_ = 2;
              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.Database.internal_static_greptime_v1_GreptimeResponse_descriptor;
    }

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

    private int responseCase_ = 0;
    private java.lang.Object response_;
    public enum ResponseCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      AFFECTED_ROWS(2),
      RESPONSE_NOT_SET(0);
      private final int value;
      private ResponseCase(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 ResponseCase valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseCase forNumber(int value) {
        switch (value) {
          case 2: return AFFECTED_ROWS;
          case 0: return RESPONSE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ResponseCase
    getResponseCase() {
      return ResponseCase.forNumber(
          responseCase_);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private io.greptime.v1.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ResponseHeader getHeader() {
      return header_ == null ? io.greptime.v1.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int AFFECTED_ROWS_FIELD_NUMBER = 2;
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
     * @return Whether the affectedRows field is set.
     */
    @java.lang.Override
    public boolean hasAffectedRows() {
      return responseCase_ == 2;
    }
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
     * @return The affectedRows.
     */
    @java.lang.Override
    public io.greptime.v1.Common.AffectedRows getAffectedRows() {
      if (responseCase_ == 2) {
         return (io.greptime.v1.Common.AffectedRows) response_;
      }
      return io.greptime.v1.Common.AffectedRows.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.AffectedRowsOrBuilder getAffectedRowsOrBuilder() {
      if (responseCase_ == 2) {
         return (io.greptime.v1.Common.AffectedRows) response_;
      }
      return io.greptime.v1.Common.AffectedRows.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 (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (responseCase_ == 2) {
        output.writeMessage(2, (io.greptime.v1.Common.AffectedRows) response_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (responseCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (io.greptime.v1.Common.AffectedRows) response_);
      }
      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.Database.GreptimeResponse)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.GreptimeResponse other = (io.greptime.v1.Database.GreptimeResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getResponseCase().equals(other.getResponseCase())) return false;
      switch (responseCase_) {
        case 2:
          if (!getAffectedRows()
              .equals(other.getAffectedRows())) 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();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      switch (responseCase_) {
        case 2:
          hash = (37 * hash) + AFFECTED_ROWS_FIELD_NUMBER;
          hash = (53 * hash) + getAffectedRows().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Database.GreptimeResponse.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();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        responseCase_ = 0;
        response_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.GreptimeResponse buildPartial() {
        io.greptime.v1.Database.GreptimeResponse result = new io.greptime.v1.Database.GreptimeResponse(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (responseCase_ == 2) {
          if (affectedRowsBuilder_ == null) {
            result.response_ = response_;
          } else {
            result.response_ = affectedRowsBuilder_.build();
          }
        }
        result.responseCase_ = responseCase_;
        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.Database.GreptimeResponse) {
          return mergeFrom((io.greptime.v1.Database.GreptimeResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.GreptimeResponse other) {
        if (other == io.greptime.v1.Database.GreptimeResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        switch (other.getResponseCase()) {
          case AFFECTED_ROWS: {
            mergeAffectedRows(other.getAffectedRows());
            break;
          }
          case RESPONSE_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.Database.GreptimeResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.GreptimeResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int responseCase_ = 0;
      private java.lang.Object response_;
      public ResponseCase
          getResponseCase() {
        return ResponseCase.forNumber(
            responseCase_);
      }

      public Builder clearResponse() {
        responseCase_ = 0;
        response_ = null;
        onChanged();
        return this;
      }


      private io.greptime.v1.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ResponseHeader, io.greptime.v1.Common.ResponseHeader.Builder, io.greptime.v1.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public io.greptime.v1.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? io.greptime.v1.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(io.greptime.v1.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          io.greptime.v1.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(io.greptime.v1.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              io.greptime.v1.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       */
      public io.greptime.v1.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       */
      public io.greptime.v1.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              io.greptime.v1.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ResponseHeader, io.greptime.v1.Common.ResponseHeader.Builder, io.greptime.v1.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ResponseHeader, io.greptime.v1.Common.ResponseHeader.Builder, io.greptime.v1.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.AffectedRows, io.greptime.v1.Common.AffectedRows.Builder, io.greptime.v1.Common.AffectedRowsOrBuilder> affectedRowsBuilder_;
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       * @return Whether the affectedRows field is set.
       */
      @java.lang.Override
      public boolean hasAffectedRows() {
        return responseCase_ == 2;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       * @return The affectedRows.
       */
      @java.lang.Override
      public io.greptime.v1.Common.AffectedRows getAffectedRows() {
        if (affectedRowsBuilder_ == null) {
          if (responseCase_ == 2) {
            return (io.greptime.v1.Common.AffectedRows) response_;
          }
          return io.greptime.v1.Common.AffectedRows.getDefaultInstance();
        } else {
          if (responseCase_ == 2) {
            return affectedRowsBuilder_.getMessage();
          }
          return io.greptime.v1.Common.AffectedRows.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       */
      public Builder setAffectedRows(io.greptime.v1.Common.AffectedRows value) {
        if (affectedRowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          response_ = value;
          onChanged();
        } else {
          affectedRowsBuilder_.setMessage(value);
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       */
      public Builder setAffectedRows(
          io.greptime.v1.Common.AffectedRows.Builder builderForValue) {
        if (affectedRowsBuilder_ == null) {
          response_ = builderForValue.build();
          onChanged();
        } else {
          affectedRowsBuilder_.setMessage(builderForValue.build());
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       */
      public Builder mergeAffectedRows(io.greptime.v1.Common.AffectedRows value) {
        if (affectedRowsBuilder_ == null) {
          if (responseCase_ == 2 &&
              response_ != io.greptime.v1.Common.AffectedRows.getDefaultInstance()) {
            response_ = io.greptime.v1.Common.AffectedRows.newBuilder((io.greptime.v1.Common.AffectedRows) response_)
                .mergeFrom(value).buildPartial();
          } else {
            response_ = value;
          }
          onChanged();
        } else {
          if (responseCase_ == 2) {
            affectedRowsBuilder_.mergeFrom(value);
          } else {
            affectedRowsBuilder_.setMessage(value);
          }
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       */
      public Builder clearAffectedRows() {
        if (affectedRowsBuilder_ == null) {
          if (responseCase_ == 2) {
            responseCase_ = 0;
            response_ = null;
            onChanged();
          }
        } else {
          if (responseCase_ == 2) {
            responseCase_ = 0;
            response_ = null;
          }
          affectedRowsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       */
      public io.greptime.v1.Common.AffectedRows.Builder getAffectedRowsBuilder() {
        return getAffectedRowsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.AffectedRowsOrBuilder getAffectedRowsOrBuilder() {
        if ((responseCase_ == 2) && (affectedRowsBuilder_ != null)) {
          return affectedRowsBuilder_.getMessageOrBuilder();
        } else {
          if (responseCase_ == 2) {
            return (io.greptime.v1.Common.AffectedRows) response_;
          }
          return io.greptime.v1.Common.AffectedRows.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.AffectedRows, io.greptime.v1.Common.AffectedRows.Builder, io.greptime.v1.Common.AffectedRowsOrBuilder> 
          getAffectedRowsFieldBuilder() {
        if (affectedRowsBuilder_ == null) {
          if (!(responseCase_ == 2)) {
            response_ = io.greptime.v1.Common.AffectedRows.getDefaultInstance();
          }
          affectedRowsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.AffectedRows, io.greptime.v1.Common.AffectedRows.Builder, io.greptime.v1.Common.AffectedRowsOrBuilder>(
                  (io.greptime.v1.Common.AffectedRows) response_,
                  getParentForChildren(),
                  isClean());
          response_ = null;
        }
        responseCase_ = 2;
        onChanged();;
        return affectedRowsBuilder_;
      }
      @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.GreptimeResponse)
    }

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

    public static io.greptime.v1.Database.GreptimeResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>string sql = 1;</code>
     * @return Whether the sql field is set.
     */
    boolean hasSql();
    /**
     * <code>string sql = 1;</code>
     * @return The sql.
     */
    java.lang.String getSql();
    /**
     * <code>string sql = 1;</code>
     * @return The bytes for sql.
     */
    com.google.protobuf.ByteString
        getSqlBytes();

    /**
     * <code>bytes logical_plan = 2;</code>
     * @return Whether the logicalPlan field is set.
     */
    boolean hasLogicalPlan();
    /**
     * <code>bytes logical_plan = 2;</code>
     * @return The logicalPlan.
     */
    com.google.protobuf.ByteString getLogicalPlan();

    /**
     * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
     * @return Whether the promRangeQuery field is set.
     */
    boolean hasPromRangeQuery();
    /**
     * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
     * @return The promRangeQuery.
     */
    io.greptime.v1.Prometheus.PromRangeQuery getPromRangeQuery();
    /**
     * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
     */
    io.greptime.v1.Prometheus.PromRangeQueryOrBuilder getPromRangeQueryOrBuilder();

    /**
     * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
     * @return Whether the insertIntoPlan field is set.
     */
    boolean hasInsertIntoPlan();
    /**
     * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
     * @return The insertIntoPlan.
     */
    io.greptime.v1.Database.InsertIntoPlan getInsertIntoPlan();
    /**
     * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
     */
    io.greptime.v1.Database.InsertIntoPlanOrBuilder getInsertIntoPlanOrBuilder();

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private QueryRequest(
        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();
              queryCase_ = 1;
              query_ = s;
              break;
            }
            case 18: {
              query_ = input.readBytes();
              queryCase_ = 2;
              break;
            }
            case 26: {
              io.greptime.v1.Prometheus.PromRangeQuery.Builder subBuilder = null;
              if (queryCase_ == 3) {
                subBuilder = ((io.greptime.v1.Prometheus.PromRangeQuery) query_).toBuilder();
              }
              query_ =
                  input.readMessage(io.greptime.v1.Prometheus.PromRangeQuery.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Prometheus.PromRangeQuery) query_);
                query_ = subBuilder.buildPartial();
              }
              queryCase_ = 3;
              break;
            }
            case 34: {
              io.greptime.v1.Database.InsertIntoPlan.Builder subBuilder = null;
              if (queryCase_ == 4) {
                subBuilder = ((io.greptime.v1.Database.InsertIntoPlan) query_).toBuilder();
              }
              query_ =
                  input.readMessage(io.greptime.v1.Database.InsertIntoPlan.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Database.InsertIntoPlan) query_);
                query_ = subBuilder.buildPartial();
              }
              queryCase_ = 4;
              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.Database.internal_static_greptime_v1_QueryRequest_descriptor;
    }

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

    private int queryCase_ = 0;
    private java.lang.Object query_;
    public enum QueryCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      SQL(1),
      LOGICAL_PLAN(2),
      PROM_RANGE_QUERY(3),
      INSERT_INTO_PLAN(4),
      QUERY_NOT_SET(0);
      private final int value;
      private QueryCase(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 QueryCase valueOf(int value) {
        return forNumber(value);
      }

      public static QueryCase forNumber(int value) {
        switch (value) {
          case 1: return SQL;
          case 2: return LOGICAL_PLAN;
          case 3: return PROM_RANGE_QUERY;
          case 4: return INSERT_INTO_PLAN;
          case 0: return QUERY_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public QueryCase
    getQueryCase() {
      return QueryCase.forNumber(
          queryCase_);
    }

    public static final int SQL_FIELD_NUMBER = 1;
    /**
     * <code>string sql = 1;</code>
     * @return Whether the sql field is set.
     */
    public boolean hasSql() {
      return queryCase_ == 1;
    }
    /**
     * <code>string sql = 1;</code>
     * @return The sql.
     */
    public java.lang.String getSql() {
      java.lang.Object ref = "";
      if (queryCase_ == 1) {
        ref = query_;
      }
      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 (queryCase_ == 1) {
          query_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string sql = 1;</code>
     * @return The bytes for sql.
     */
    public com.google.protobuf.ByteString
        getSqlBytes() {
      java.lang.Object ref = "";
      if (queryCase_ == 1) {
        ref = query_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (queryCase_ == 1) {
          query_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGICAL_PLAN_FIELD_NUMBER = 2;
    /**
     * <code>bytes logical_plan = 2;</code>
     * @return Whether the logicalPlan field is set.
     */
    @java.lang.Override
    public boolean hasLogicalPlan() {
      return queryCase_ == 2;
    }
    /**
     * <code>bytes logical_plan = 2;</code>
     * @return The logicalPlan.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getLogicalPlan() {
      if (queryCase_ == 2) {
        return (com.google.protobuf.ByteString) query_;
      }
      return com.google.protobuf.ByteString.EMPTY;
    }

    public static final int PROM_RANGE_QUERY_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
     * @return Whether the promRangeQuery field is set.
     */
    @java.lang.Override
    public boolean hasPromRangeQuery() {
      return queryCase_ == 3;
    }
    /**
     * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
     * @return The promRangeQuery.
     */
    @java.lang.Override
    public io.greptime.v1.Prometheus.PromRangeQuery getPromRangeQuery() {
      if (queryCase_ == 3) {
         return (io.greptime.v1.Prometheus.PromRangeQuery) query_;
      }
      return io.greptime.v1.Prometheus.PromRangeQuery.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Prometheus.PromRangeQueryOrBuilder getPromRangeQueryOrBuilder() {
      if (queryCase_ == 3) {
         return (io.greptime.v1.Prometheus.PromRangeQuery) query_;
      }
      return io.greptime.v1.Prometheus.PromRangeQuery.getDefaultInstance();
    }

    public static final int INSERT_INTO_PLAN_FIELD_NUMBER = 4;
    /**
     * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
     * @return Whether the insertIntoPlan field is set.
     */
    @java.lang.Override
    public boolean hasInsertIntoPlan() {
      return queryCase_ == 4;
    }
    /**
     * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
     * @return The insertIntoPlan.
     */
    @java.lang.Override
    public io.greptime.v1.Database.InsertIntoPlan getInsertIntoPlan() {
      if (queryCase_ == 4) {
         return (io.greptime.v1.Database.InsertIntoPlan) query_;
      }
      return io.greptime.v1.Database.InsertIntoPlan.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.InsertIntoPlanOrBuilder getInsertIntoPlanOrBuilder() {
      if (queryCase_ == 4) {
         return (io.greptime.v1.Database.InsertIntoPlan) query_;
      }
      return io.greptime.v1.Database.InsertIntoPlan.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 (queryCase_ == 1) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, query_);
      }
      if (queryCase_ == 2) {
        output.writeBytes(
            2, (com.google.protobuf.ByteString) query_);
      }
      if (queryCase_ == 3) {
        output.writeMessage(3, (io.greptime.v1.Prometheus.PromRangeQuery) query_);
      }
      if (queryCase_ == 4) {
        output.writeMessage(4, (io.greptime.v1.Database.InsertIntoPlan) query_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (queryCase_ == 1) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, query_);
      }
      if (queryCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(
              2, (com.google.protobuf.ByteString) query_);
      }
      if (queryCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.greptime.v1.Prometheus.PromRangeQuery) query_);
      }
      if (queryCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (io.greptime.v1.Database.InsertIntoPlan) query_);
      }
      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.Database.QueryRequest)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.QueryRequest other = (io.greptime.v1.Database.QueryRequest) obj;

      if (!getQueryCase().equals(other.getQueryCase())) return false;
      switch (queryCase_) {
        case 1:
          if (!getSql()
              .equals(other.getSql())) return false;
          break;
        case 2:
          if (!getLogicalPlan()
              .equals(other.getLogicalPlan())) return false;
          break;
        case 3:
          if (!getPromRangeQuery()
              .equals(other.getPromRangeQuery())) return false;
          break;
        case 4:
          if (!getInsertIntoPlan()
              .equals(other.getInsertIntoPlan())) 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 (queryCase_) {
        case 1:
          hash = (37 * hash) + SQL_FIELD_NUMBER;
          hash = (53 * hash) + getSql().hashCode();
          break;
        case 2:
          hash = (37 * hash) + LOGICAL_PLAN_FIELD_NUMBER;
          hash = (53 * hash) + getLogicalPlan().hashCode();
          break;
        case 3:
          hash = (37 * hash) + PROM_RANGE_QUERY_FIELD_NUMBER;
          hash = (53 * hash) + getPromRangeQuery().hashCode();
          break;
        case 4:
          hash = (37 * hash) + INSERT_INTO_PLAN_FIELD_NUMBER;
          hash = (53 * hash) + getInsertIntoPlan().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Database.QueryRequest.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();
        queryCase_ = 0;
        query_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.QueryRequest buildPartial() {
        io.greptime.v1.Database.QueryRequest result = new io.greptime.v1.Database.QueryRequest(this);
        if (queryCase_ == 1) {
          result.query_ = query_;
        }
        if (queryCase_ == 2) {
          result.query_ = query_;
        }
        if (queryCase_ == 3) {
          if (promRangeQueryBuilder_ == null) {
            result.query_ = query_;
          } else {
            result.query_ = promRangeQueryBuilder_.build();
          }
        }
        if (queryCase_ == 4) {
          if (insertIntoPlanBuilder_ == null) {
            result.query_ = query_;
          } else {
            result.query_ = insertIntoPlanBuilder_.build();
          }
        }
        result.queryCase_ = queryCase_;
        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.Database.QueryRequest) {
          return mergeFrom((io.greptime.v1.Database.QueryRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.QueryRequest other) {
        if (other == io.greptime.v1.Database.QueryRequest.getDefaultInstance()) return this;
        switch (other.getQueryCase()) {
          case SQL: {
            queryCase_ = 1;
            query_ = other.query_;
            onChanged();
            break;
          }
          case LOGICAL_PLAN: {
            setLogicalPlan(other.getLogicalPlan());
            break;
          }
          case PROM_RANGE_QUERY: {
            mergePromRangeQuery(other.getPromRangeQuery());
            break;
          }
          case INSERT_INTO_PLAN: {
            mergeInsertIntoPlan(other.getInsertIntoPlan());
            break;
          }
          case QUERY_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.Database.QueryRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.QueryRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int queryCase_ = 0;
      private java.lang.Object query_;
      public QueryCase
          getQueryCase() {
        return QueryCase.forNumber(
            queryCase_);
      }

      public Builder clearQuery() {
        queryCase_ = 0;
        query_ = null;
        onChanged();
        return this;
      }


      /**
       * <code>string sql = 1;</code>
       * @return Whether the sql field is set.
       */
      @java.lang.Override
      public boolean hasSql() {
        return queryCase_ == 1;
      }
      /**
       * <code>string sql = 1;</code>
       * @return The sql.
       */
      @java.lang.Override
      public java.lang.String getSql() {
        java.lang.Object ref = "";
        if (queryCase_ == 1) {
          ref = query_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (queryCase_ == 1) {
            query_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string sql = 1;</code>
       * @return The bytes for sql.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSqlBytes() {
        java.lang.Object ref = "";
        if (queryCase_ == 1) {
          ref = query_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (queryCase_ == 1) {
            query_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string sql = 1;</code>
       * @param value The sql to set.
       * @return This builder for chaining.
       */
      public Builder setSql(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  queryCase_ = 1;
        query_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string sql = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSql() {
        if (queryCase_ == 1) {
          queryCase_ = 0;
          query_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string sql = 1;</code>
       * @param value The bytes for sql to set.
       * @return This builder for chaining.
       */
      public Builder setSqlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        queryCase_ = 1;
        query_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>bytes logical_plan = 2;</code>
       * @return Whether the logicalPlan field is set.
       */
      public boolean hasLogicalPlan() {
        return queryCase_ == 2;
      }
      /**
       * <code>bytes logical_plan = 2;</code>
       * @return The logicalPlan.
       */
      public com.google.protobuf.ByteString getLogicalPlan() {
        if (queryCase_ == 2) {
          return (com.google.protobuf.ByteString) query_;
        }
        return com.google.protobuf.ByteString.EMPTY;
      }
      /**
       * <code>bytes logical_plan = 2;</code>
       * @param value The logicalPlan to set.
       * @return This builder for chaining.
       */
      public Builder setLogicalPlan(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  queryCase_ = 2;
        query_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes logical_plan = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogicalPlan() {
        if (queryCase_ == 2) {
          queryCase_ = 0;
          query_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Prometheus.PromRangeQuery, io.greptime.v1.Prometheus.PromRangeQuery.Builder, io.greptime.v1.Prometheus.PromRangeQueryOrBuilder> promRangeQueryBuilder_;
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       * @return Whether the promRangeQuery field is set.
       */
      @java.lang.Override
      public boolean hasPromRangeQuery() {
        return queryCase_ == 3;
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       * @return The promRangeQuery.
       */
      @java.lang.Override
      public io.greptime.v1.Prometheus.PromRangeQuery getPromRangeQuery() {
        if (promRangeQueryBuilder_ == null) {
          if (queryCase_ == 3) {
            return (io.greptime.v1.Prometheus.PromRangeQuery) query_;
          }
          return io.greptime.v1.Prometheus.PromRangeQuery.getDefaultInstance();
        } else {
          if (queryCase_ == 3) {
            return promRangeQueryBuilder_.getMessage();
          }
          return io.greptime.v1.Prometheus.PromRangeQuery.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       */
      public Builder setPromRangeQuery(io.greptime.v1.Prometheus.PromRangeQuery value) {
        if (promRangeQueryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          query_ = value;
          onChanged();
        } else {
          promRangeQueryBuilder_.setMessage(value);
        }
        queryCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       */
      public Builder setPromRangeQuery(
          io.greptime.v1.Prometheus.PromRangeQuery.Builder builderForValue) {
        if (promRangeQueryBuilder_ == null) {
          query_ = builderForValue.build();
          onChanged();
        } else {
          promRangeQueryBuilder_.setMessage(builderForValue.build());
        }
        queryCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       */
      public Builder mergePromRangeQuery(io.greptime.v1.Prometheus.PromRangeQuery value) {
        if (promRangeQueryBuilder_ == null) {
          if (queryCase_ == 3 &&
              query_ != io.greptime.v1.Prometheus.PromRangeQuery.getDefaultInstance()) {
            query_ = io.greptime.v1.Prometheus.PromRangeQuery.newBuilder((io.greptime.v1.Prometheus.PromRangeQuery) query_)
                .mergeFrom(value).buildPartial();
          } else {
            query_ = value;
          }
          onChanged();
        } else {
          if (queryCase_ == 3) {
            promRangeQueryBuilder_.mergeFrom(value);
          } else {
            promRangeQueryBuilder_.setMessage(value);
          }
        }
        queryCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       */
      public Builder clearPromRangeQuery() {
        if (promRangeQueryBuilder_ == null) {
          if (queryCase_ == 3) {
            queryCase_ = 0;
            query_ = null;
            onChanged();
          }
        } else {
          if (queryCase_ == 3) {
            queryCase_ = 0;
            query_ = null;
          }
          promRangeQueryBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       */
      public io.greptime.v1.Prometheus.PromRangeQuery.Builder getPromRangeQueryBuilder() {
        return getPromRangeQueryFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Prometheus.PromRangeQueryOrBuilder getPromRangeQueryOrBuilder() {
        if ((queryCase_ == 3) && (promRangeQueryBuilder_ != null)) {
          return promRangeQueryBuilder_.getMessageOrBuilder();
        } else {
          if (queryCase_ == 3) {
            return (io.greptime.v1.Prometheus.PromRangeQuery) query_;
          }
          return io.greptime.v1.Prometheus.PromRangeQuery.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.PromRangeQuery prom_range_query = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Prometheus.PromRangeQuery, io.greptime.v1.Prometheus.PromRangeQuery.Builder, io.greptime.v1.Prometheus.PromRangeQueryOrBuilder> 
          getPromRangeQueryFieldBuilder() {
        if (promRangeQueryBuilder_ == null) {
          if (!(queryCase_ == 3)) {
            query_ = io.greptime.v1.Prometheus.PromRangeQuery.getDefaultInstance();
          }
          promRangeQueryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Prometheus.PromRangeQuery, io.greptime.v1.Prometheus.PromRangeQuery.Builder, io.greptime.v1.Prometheus.PromRangeQueryOrBuilder>(
                  (io.greptime.v1.Prometheus.PromRangeQuery) query_,
                  getParentForChildren(),
                  isClean());
          query_ = null;
        }
        queryCase_ = 3;
        onChanged();;
        return promRangeQueryBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.InsertIntoPlan, io.greptime.v1.Database.InsertIntoPlan.Builder, io.greptime.v1.Database.InsertIntoPlanOrBuilder> insertIntoPlanBuilder_;
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       * @return Whether the insertIntoPlan field is set.
       */
      @java.lang.Override
      public boolean hasInsertIntoPlan() {
        return queryCase_ == 4;
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       * @return The insertIntoPlan.
       */
      @java.lang.Override
      public io.greptime.v1.Database.InsertIntoPlan getInsertIntoPlan() {
        if (insertIntoPlanBuilder_ == null) {
          if (queryCase_ == 4) {
            return (io.greptime.v1.Database.InsertIntoPlan) query_;
          }
          return io.greptime.v1.Database.InsertIntoPlan.getDefaultInstance();
        } else {
          if (queryCase_ == 4) {
            return insertIntoPlanBuilder_.getMessage();
          }
          return io.greptime.v1.Database.InsertIntoPlan.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       */
      public Builder setInsertIntoPlan(io.greptime.v1.Database.InsertIntoPlan value) {
        if (insertIntoPlanBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          query_ = value;
          onChanged();
        } else {
          insertIntoPlanBuilder_.setMessage(value);
        }
        queryCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       */
      public Builder setInsertIntoPlan(
          io.greptime.v1.Database.InsertIntoPlan.Builder builderForValue) {
        if (insertIntoPlanBuilder_ == null) {
          query_ = builderForValue.build();
          onChanged();
        } else {
          insertIntoPlanBuilder_.setMessage(builderForValue.build());
        }
        queryCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       */
      public Builder mergeInsertIntoPlan(io.greptime.v1.Database.InsertIntoPlan value) {
        if (insertIntoPlanBuilder_ == null) {
          if (queryCase_ == 4 &&
              query_ != io.greptime.v1.Database.InsertIntoPlan.getDefaultInstance()) {
            query_ = io.greptime.v1.Database.InsertIntoPlan.newBuilder((io.greptime.v1.Database.InsertIntoPlan) query_)
                .mergeFrom(value).buildPartial();
          } else {
            query_ = value;
          }
          onChanged();
        } else {
          if (queryCase_ == 4) {
            insertIntoPlanBuilder_.mergeFrom(value);
          } else {
            insertIntoPlanBuilder_.setMessage(value);
          }
        }
        queryCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       */
      public Builder clearInsertIntoPlan() {
        if (insertIntoPlanBuilder_ == null) {
          if (queryCase_ == 4) {
            queryCase_ = 0;
            query_ = null;
            onChanged();
          }
        } else {
          if (queryCase_ == 4) {
            queryCase_ = 0;
            query_ = null;
          }
          insertIntoPlanBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       */
      public io.greptime.v1.Database.InsertIntoPlan.Builder getInsertIntoPlanBuilder() {
        return getInsertIntoPlanFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Database.InsertIntoPlanOrBuilder getInsertIntoPlanOrBuilder() {
        if ((queryCase_ == 4) && (insertIntoPlanBuilder_ != null)) {
          return insertIntoPlanBuilder_.getMessageOrBuilder();
        } else {
          if (queryCase_ == 4) {
            return (io.greptime.v1.Database.InsertIntoPlan) query_;
          }
          return io.greptime.v1.Database.InsertIntoPlan.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.InsertIntoPlan insert_into_plan = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Database.InsertIntoPlan, io.greptime.v1.Database.InsertIntoPlan.Builder, io.greptime.v1.Database.InsertIntoPlanOrBuilder> 
          getInsertIntoPlanFieldBuilder() {
        if (insertIntoPlanBuilder_ == null) {
          if (!(queryCase_ == 4)) {
            query_ = io.greptime.v1.Database.InsertIntoPlan.getDefaultInstance();
          }
          insertIntoPlanBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Database.InsertIntoPlan, io.greptime.v1.Database.InsertIntoPlan.Builder, io.greptime.v1.Database.InsertIntoPlanOrBuilder>(
                  (io.greptime.v1.Database.InsertIntoPlan) query_,
                  getParentForChildren(),
                  isClean());
          query_ = null;
        }
        queryCase_ = 4;
        onChanged();;
        return insertIntoPlanBuilder_;
      }
      @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.QueryRequest)
    }

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

    public static io.greptime.v1.Database.QueryRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.TableName table_name = 1;</code>
     * @return Whether the tableName field is set.
     */
    boolean hasTableName();
    /**
     * <code>.greptime.v1.TableName table_name = 1;</code>
     * @return The tableName.
     */
    io.greptime.v1.Common.TableName getTableName();
    /**
     * <code>.greptime.v1.TableName table_name = 1;</code>
     */
    io.greptime.v1.Common.TableNameOrBuilder getTableNameOrBuilder();

    /**
     * <code>bytes logical_plan = 2;</code>
     * @return The logicalPlan.
     */
    com.google.protobuf.ByteString getLogicalPlan();
  }
  /**
   * <pre>
   * A temporary solution for executing insert into table SELECT .. with logical plan
   * since substrait to logical plan doesn't support dml yet.
   * </pre>
   *
   * Protobuf type {@code greptime.v1.InsertIntoPlan}
   */
  public static final class InsertIntoPlan extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.InsertIntoPlan)
      InsertIntoPlanOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InsertIntoPlan.newBuilder() to construct.
    private InsertIntoPlan(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InsertIntoPlan() {
      logicalPlan_ = com.google.protobuf.ByteString.EMPTY;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private InsertIntoPlan(
        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: {
              io.greptime.v1.Common.TableName.Builder subBuilder = null;
              if (tableName_ != null) {
                subBuilder = tableName_.toBuilder();
              }
              tableName_ = input.readMessage(io.greptime.v1.Common.TableName.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(tableName_);
                tableName_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {

              logicalPlan_ = input.readBytes();
              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.Database.internal_static_greptime_v1_InsertIntoPlan_descriptor;
    }

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

    public static final int TABLE_NAME_FIELD_NUMBER = 1;
    private io.greptime.v1.Common.TableName tableName_;
    /**
     * <code>.greptime.v1.TableName table_name = 1;</code>
     * @return Whether the tableName field is set.
     */
    @java.lang.Override
    public boolean hasTableName() {
      return tableName_ != null;
    }
    /**
     * <code>.greptime.v1.TableName table_name = 1;</code>
     * @return The tableName.
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableName getTableName() {
      return tableName_ == null ? io.greptime.v1.Common.TableName.getDefaultInstance() : tableName_;
    }
    /**
     * <code>.greptime.v1.TableName table_name = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableNameOrBuilder getTableNameOrBuilder() {
      return getTableName();
    }

    public static final int LOGICAL_PLAN_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString logicalPlan_;
    /**
     * <code>bytes logical_plan = 2;</code>
     * @return The logicalPlan.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getLogicalPlan() {
      return logicalPlan_;
    }

    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 (tableName_ != null) {
        output.writeMessage(1, getTableName());
      }
      if (!logicalPlan_.isEmpty()) {
        output.writeBytes(2, logicalPlan_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (tableName_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getTableName());
      }
      if (!logicalPlan_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, logicalPlan_);
      }
      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.Database.InsertIntoPlan)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.InsertIntoPlan other = (io.greptime.v1.Database.InsertIntoPlan) obj;

      if (hasTableName() != other.hasTableName()) return false;
      if (hasTableName()) {
        if (!getTableName()
            .equals(other.getTableName())) return false;
      }
      if (!getLogicalPlan()
          .equals(other.getLogicalPlan())) 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 (hasTableName()) {
        hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getTableName().hashCode();
      }
      hash = (37 * hash) + LOGICAL_PLAN_FIELD_NUMBER;
      hash = (53 * hash) + getLogicalPlan().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.Database.InsertIntoPlan parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Database.InsertIntoPlan 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.Database.InsertIntoPlan parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Database.InsertIntoPlan 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.Database.InsertIntoPlan parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Database.InsertIntoPlan parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Database.InsertIntoPlan parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Database.InsertIntoPlan 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.Database.InsertIntoPlan parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Database.InsertIntoPlan 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.Database.InsertIntoPlan parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Database.InsertIntoPlan 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.Database.InsertIntoPlan prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * A temporary solution for executing insert into table SELECT .. with logical plan
     * since substrait to logical plan doesn't support dml yet.
     * </pre>
     *
     * Protobuf type {@code greptime.v1.InsertIntoPlan}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.InsertIntoPlan)
        io.greptime.v1.Database.InsertIntoPlanOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Database.internal_static_greptime_v1_InsertIntoPlan_descriptor;
      }

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

      // Construct using io.greptime.v1.Database.InsertIntoPlan.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();
        if (tableNameBuilder_ == null) {
          tableName_ = null;
        } else {
          tableName_ = null;
          tableNameBuilder_ = null;
        }
        logicalPlan_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.InsertIntoPlan buildPartial() {
        io.greptime.v1.Database.InsertIntoPlan result = new io.greptime.v1.Database.InsertIntoPlan(this);
        if (tableNameBuilder_ == null) {
          result.tableName_ = tableName_;
        } else {
          result.tableName_ = tableNameBuilder_.build();
        }
        result.logicalPlan_ = logicalPlan_;
        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.Database.InsertIntoPlan) {
          return mergeFrom((io.greptime.v1.Database.InsertIntoPlan)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.InsertIntoPlan other) {
        if (other == io.greptime.v1.Database.InsertIntoPlan.getDefaultInstance()) return this;
        if (other.hasTableName()) {
          mergeTableName(other.getTableName());
        }
        if (other.getLogicalPlan() != com.google.protobuf.ByteString.EMPTY) {
          setLogicalPlan(other.getLogicalPlan());
        }
        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.Database.InsertIntoPlan parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.InsertIntoPlan) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private io.greptime.v1.Common.TableName tableName_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> tableNameBuilder_;
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       * @return Whether the tableName field is set.
       */
      public boolean hasTableName() {
        return tableNameBuilder_ != null || tableName_ != null;
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       * @return The tableName.
       */
      public io.greptime.v1.Common.TableName getTableName() {
        if (tableNameBuilder_ == null) {
          return tableName_ == null ? io.greptime.v1.Common.TableName.getDefaultInstance() : tableName_;
        } else {
          return tableNameBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       */
      public Builder setTableName(io.greptime.v1.Common.TableName value) {
        if (tableNameBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tableName_ = value;
          onChanged();
        } else {
          tableNameBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       */
      public Builder setTableName(
          io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (tableNameBuilder_ == null) {
          tableName_ = builderForValue.build();
          onChanged();
        } else {
          tableNameBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       */
      public Builder mergeTableName(io.greptime.v1.Common.TableName value) {
        if (tableNameBuilder_ == null) {
          if (tableName_ != null) {
            tableName_ =
              io.greptime.v1.Common.TableName.newBuilder(tableName_).mergeFrom(value).buildPartial();
          } else {
            tableName_ = value;
          }
          onChanged();
        } else {
          tableNameBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       */
      public Builder clearTableName() {
        if (tableNameBuilder_ == null) {
          tableName_ = null;
          onChanged();
        } else {
          tableName_ = null;
          tableNameBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       */
      public io.greptime.v1.Common.TableName.Builder getTableNameBuilder() {
        
        onChanged();
        return getTableNameFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       */
      public io.greptime.v1.Common.TableNameOrBuilder getTableNameOrBuilder() {
        if (tableNameBuilder_ != null) {
          return tableNameBuilder_.getMessageOrBuilder();
        } else {
          return tableName_ == null ?
              io.greptime.v1.Common.TableName.getDefaultInstance() : tableName_;
        }
      }
      /**
       * <code>.greptime.v1.TableName table_name = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> 
          getTableNameFieldBuilder() {
        if (tableNameBuilder_ == null) {
          tableNameBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder>(
                  getTableName(),
                  getParentForChildren(),
                  isClean());
          tableName_ = null;
        }
        return tableNameBuilder_;
      }

      private com.google.protobuf.ByteString logicalPlan_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes logical_plan = 2;</code>
       * @return The logicalPlan.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getLogicalPlan() {
        return logicalPlan_;
      }
      /**
       * <code>bytes logical_plan = 2;</code>
       * @param value The logicalPlan to set.
       * @return This builder for chaining.
       */
      public Builder setLogicalPlan(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        logicalPlan_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes logical_plan = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogicalPlan() {
        
        logicalPlan_ = getDefaultInstance().getLogicalPlan();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.InsertIntoPlan)
    }

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

    public static io.greptime.v1.Database.InsertIntoPlan getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    java.util.List<io.greptime.v1.Database.InsertRequest> 
        getInsertsList();
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    io.greptime.v1.Database.InsertRequest getInserts(int index);
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    int getInsertsCount();
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Database.InsertRequestOrBuilder> 
        getInsertsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    io.greptime.v1.Database.InsertRequestOrBuilder getInsertsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.InsertRequests}
   */
  public static final class InsertRequests extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.InsertRequests)
      InsertRequestsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InsertRequests.newBuilder() to construct.
    private InsertRequests(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InsertRequests() {
      inserts_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private InsertRequests(
        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)) {
                inserts_ = new java.util.ArrayList<io.greptime.v1.Database.InsertRequest>();
                mutable_bitField0_ |= 0x00000001;
              }
              inserts_.add(
                  input.readMessage(io.greptime.v1.Database.InsertRequest.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)) {
          inserts_ = java.util.Collections.unmodifiableList(inserts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Database.internal_static_greptime_v1_InsertRequests_descriptor;
    }

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

    public static final int INSERTS_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Database.InsertRequest> inserts_;
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Database.InsertRequest> getInsertsList() {
      return inserts_;
    }
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Database.InsertRequestOrBuilder> 
        getInsertsOrBuilderList() {
      return inserts_;
    }
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public int getInsertsCount() {
      return inserts_.size();
    }
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.InsertRequest getInserts(int index) {
      return inserts_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.InsertRequestOrBuilder getInsertsOrBuilder(
        int index) {
      return inserts_.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 < inserts_.size(); i++) {
        output.writeMessage(1, inserts_.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 < inserts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, inserts_.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.Database.InsertRequests)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.InsertRequests other = (io.greptime.v1.Database.InsertRequests) obj;

      if (!getInsertsList()
          .equals(other.getInsertsList())) 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 (getInsertsCount() > 0) {
        hash = (37 * hash) + INSERTS_FIELD_NUMBER;
        hash = (53 * hash) + getInsertsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.InsertRequests buildPartial() {
        io.greptime.v1.Database.InsertRequests result = new io.greptime.v1.Database.InsertRequests(this);
        int from_bitField0_ = bitField0_;
        if (insertsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            inserts_ = java.util.Collections.unmodifiableList(inserts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.inserts_ = inserts_;
        } else {
          result.inserts_ = insertsBuilder_.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.Database.InsertRequests) {
          return mergeFrom((io.greptime.v1.Database.InsertRequests)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      private java.util.List<io.greptime.v1.Database.InsertRequest> inserts_ =
        java.util.Collections.emptyList();
      private void ensureInsertsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          inserts_ = new java.util.ArrayList<io.greptime.v1.Database.InsertRequest>(inserts_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.InsertRequest, io.greptime.v1.Database.InsertRequest.Builder, io.greptime.v1.Database.InsertRequestOrBuilder> insertsBuilder_;

      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.InsertRequest> getInsertsList() {
        if (insertsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(inserts_);
        } else {
          return insertsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public int getInsertsCount() {
        if (insertsBuilder_ == null) {
          return inserts_.size();
        } else {
          return insertsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.InsertRequest getInserts(int index) {
        if (insertsBuilder_ == null) {
          return inserts_.get(index);
        } else {
          return insertsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder setInserts(
          int index, io.greptime.v1.Database.InsertRequest value) {
        if (insertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInsertsIsMutable();
          inserts_.set(index, value);
          onChanged();
        } else {
          insertsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder setInserts(
          int index, io.greptime.v1.Database.InsertRequest.Builder builderForValue) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.set(index, builderForValue.build());
          onChanged();
        } else {
          insertsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder addInserts(io.greptime.v1.Database.InsertRequest value) {
        if (insertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInsertsIsMutable();
          inserts_.add(value);
          onChanged();
        } else {
          insertsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder addInserts(
          int index, io.greptime.v1.Database.InsertRequest value) {
        if (insertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInsertsIsMutable();
          inserts_.add(index, value);
          onChanged();
        } else {
          insertsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder addInserts(
          io.greptime.v1.Database.InsertRequest.Builder builderForValue) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.add(builderForValue.build());
          onChanged();
        } else {
          insertsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder addInserts(
          int index, io.greptime.v1.Database.InsertRequest.Builder builderForValue) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.add(index, builderForValue.build());
          onChanged();
        } else {
          insertsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder addAllInserts(
          java.lang.Iterable<? extends io.greptime.v1.Database.InsertRequest> values) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, inserts_);
          onChanged();
        } else {
          insertsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder clearInserts() {
        if (insertsBuilder_ == null) {
          inserts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          insertsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public Builder removeInserts(int index) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.remove(index);
          onChanged();
        } else {
          insertsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.InsertRequest.Builder getInsertsBuilder(
          int index) {
        return getInsertsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.InsertRequestOrBuilder getInsertsOrBuilder(
          int index) {
        if (insertsBuilder_ == null) {
          return inserts_.get(index);  } else {
          return insertsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Database.InsertRequestOrBuilder> 
           getInsertsOrBuilderList() {
        if (insertsBuilder_ != null) {
          return insertsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(inserts_);
        }
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.InsertRequest.Builder addInsertsBuilder() {
        return getInsertsFieldBuilder().addBuilder(
            io.greptime.v1.Database.InsertRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.InsertRequest.Builder addInsertsBuilder(
          int index) {
        return getInsertsFieldBuilder().addBuilder(
            index, io.greptime.v1.Database.InsertRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.InsertRequest inserts = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.InsertRequest.Builder> 
           getInsertsBuilderList() {
        return getInsertsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.InsertRequest, io.greptime.v1.Database.InsertRequest.Builder, io.greptime.v1.Database.InsertRequestOrBuilder> 
          getInsertsFieldBuilder() {
        if (insertsBuilder_ == null) {
          insertsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Database.InsertRequest, io.greptime.v1.Database.InsertRequest.Builder, io.greptime.v1.Database.InsertRequestOrBuilder>(
                  inserts_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          inserts_ = null;
        }
        return insertsBuilder_;
      }
      @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.InsertRequests)
    }

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

    public static io.greptime.v1.Database.InsertRequests getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    java.lang.String getTableName();
    /**
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    com.google.protobuf.ByteString
        getTableNameBytes();

    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    java.util.List<io.greptime.v1.Columns.Column> 
        getColumnsList();
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    io.greptime.v1.Columns.Column getColumns(int index);
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    int getColumnsCount();
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    java.util.List<? extends io.greptime.v1.Columns.ColumnOrBuilder> 
        getColumnsOrBuilderList();
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    io.greptime.v1.Columns.ColumnOrBuilder getColumnsOrBuilder(
        int index);

    /**
     * <pre>
     * The row_count of all columns, which include null and non-null values.
     * Note: the row_count of all columns in a InsertRequest must be same.
     * </pre>
     *
     * <code>uint32 row_count = 4;</code>
     * @return The rowCount.
     */
    int getRowCount();
  }
  /**
   * Protobuf type {@code greptime.v1.InsertRequest}
   */
  public static final class InsertRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.InsertRequest)
      InsertRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InsertRequest.newBuilder() to construct.
    private InsertRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InsertRequest() {
      tableName_ = "";
      columns_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private InsertRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

              tableName_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                columns_ = new java.util.ArrayList<io.greptime.v1.Columns.Column>();
                mutable_bitField0_ |= 0x00000001;
              }
              columns_.add(
                  input.readMessage(io.greptime.v1.Columns.Column.parser(), extensionRegistry));
              break;
            }
            case 32: {

              rowCount_ = input.readUInt32();
              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)) {
          columns_ = java.util.Collections.unmodifiableList(columns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Database.internal_static_greptime_v1_InsertRequest_descriptor;
    }

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

    public static final int TABLE_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object tableName_;
    /**
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    @java.lang.Override
    public java.lang.String getTableName() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tableName_ = s;
        return s;
      }
    }
    /**
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTableNameBytes() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tableName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COLUMNS_FIELD_NUMBER = 3;
    private java.util.List<io.greptime.v1.Columns.Column> columns_;
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Columns.Column> getColumnsList() {
      return columns_;
    }
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Columns.ColumnOrBuilder> 
        getColumnsOrBuilderList() {
      return columns_;
    }
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    @java.lang.Override
    public int getColumnsCount() {
      return columns_.size();
    }
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Columns.Column getColumns(int index) {
      return columns_.get(index);
    }
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column columns = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Columns.ColumnOrBuilder getColumnsOrBuilder(
        int index) {
      return columns_.get(index);
    }

    public static final int ROW_COUNT_FIELD_NUMBER = 4;
    private int rowCount_;
    /**
     * <pre>
     * The row_count of all columns, which include null and non-null values.
     * Note: the row_count of all columns in a InsertRequest must be same.
     * </pre>
     *
     * <code>uint32 row_count = 4;</code>
     * @return The rowCount.
     */
    @java.lang.Override
    public int getRowCount() {
      return rowCount_;
    }

    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(tableName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, tableName_);
      }
      for (int i = 0; i < columns_.size(); i++) {
        output.writeMessage(3, columns_.get(i));
      }
      if (rowCount_ != 0) {
        output.writeUInt32(4, rowCount_);
      }
      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(tableName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, tableName_);
      }
      for (int i = 0; i < columns_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, columns_.get(i));
      }
      if (rowCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, rowCount_);
      }
      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.Database.InsertRequest)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.InsertRequest other = (io.greptime.v1.Database.InsertRequest) obj;

      if (!getTableName()
          .equals(other.getTableName())) return false;
      if (!getColumnsList()
          .equals(other.getColumnsList())) return false;
      if (getRowCount()
          != other.getRowCount()) 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) + TABLE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTableName().hashCode();
      if (getColumnsCount() > 0) {
        hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnsList().hashCode();
      }
      hash = (37 * hash) + ROW_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getRowCount();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          columnsBuilder_.clear();
        }
        rowCount_ = 0;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.InsertRequest buildPartial() {
        io.greptime.v1.Database.InsertRequest result = new io.greptime.v1.Database.InsertRequest(this);
        int from_bitField0_ = bitField0_;
        result.tableName_ = tableName_;
        if (columnsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            columns_ = java.util.Collections.unmodifiableList(columns_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.columns_ = columns_;
        } else {
          result.columns_ = columnsBuilder_.build();
        }
        result.rowCount_ = rowCount_;
        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.Database.InsertRequest) {
          return mergeFrom((io.greptime.v1.Database.InsertRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.InsertRequest other) {
        if (other == io.greptime.v1.Database.InsertRequest.getDefaultInstance()) return this;
        if (!other.getTableName().isEmpty()) {
          tableName_ = other.tableName_;
          onChanged();
        }
        if (columnsBuilder_ == null) {
          if (!other.columns_.isEmpty()) {
            if (columns_.isEmpty()) {
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureColumnsIsMutable();
              columns_.addAll(other.columns_);
            }
            onChanged();
          }
        } else {
          if (!other.columns_.isEmpty()) {
            if (columnsBuilder_.isEmpty()) {
              columnsBuilder_.dispose();
              columnsBuilder_ = null;
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000001);
              columnsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnsFieldBuilder() : null;
            } else {
              columnsBuilder_.addAllMessages(other.columns_);
            }
          }
        }
        if (other.getRowCount() != 0) {
          setRowCount(other.getRowCount());
        }
        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.Database.InsertRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.InsertRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object tableName_ = "";
      /**
       * <code>string table_name = 1;</code>
       * @return The tableName.
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tableName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string table_name = 1;</code>
       * @return The bytes for tableName.
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string table_name = 1;</code>
       * @param value The tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tableName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string table_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableName() {
        
        tableName_ = getDefaultInstance().getTableName();
        onChanged();
        return this;
      }
      /**
       * <code>string table_name = 1;</code>
       * @param value The bytes for tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        tableName_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.greptime.v1.Columns.Column> columns_ =
        java.util.Collections.emptyList();
      private void ensureColumnsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          columns_ = new java.util.ArrayList<io.greptime.v1.Columns.Column>(columns_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Columns.Column, io.greptime.v1.Columns.Column.Builder, io.greptime.v1.Columns.ColumnOrBuilder> columnsBuilder_;

      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public java.util.List<io.greptime.v1.Columns.Column> getColumnsList() {
        if (columnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(columns_);
        } else {
          return columnsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public int getColumnsCount() {
        if (columnsBuilder_ == null) {
          return columns_.size();
        } else {
          return columnsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column getColumns(int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);
        } else {
          return columnsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder setColumns(
          int index, io.greptime.v1.Columns.Column value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.set(index, value);
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder setColumns(
          int index, io.greptime.v1.Columns.Column.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder addColumns(io.greptime.v1.Columns.Column value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder addColumns(
          int index, io.greptime.v1.Columns.Column value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(index, value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder addColumns(
          io.greptime.v1.Columns.Column.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder addColumns(
          int index, io.greptime.v1.Columns.Column.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder addAllColumns(
          java.lang.Iterable<? extends io.greptime.v1.Columns.Column> values) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, columns_);
          onChanged();
        } else {
          columnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder clearColumns() {
        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          columnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public Builder removeColumns(int index) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.remove(index);
          onChanged();
        } else {
          columnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column.Builder getColumnsBuilder(
          int index) {
        return getColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public io.greptime.v1.Columns.ColumnOrBuilder getColumnsOrBuilder(
          int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);  } else {
          return columnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public java.util.List<? extends io.greptime.v1.Columns.ColumnOrBuilder> 
           getColumnsOrBuilderList() {
        if (columnsBuilder_ != null) {
          return columnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(columns_);
        }
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column.Builder addColumnsBuilder() {
        return getColumnsFieldBuilder().addBuilder(
            io.greptime.v1.Columns.Column.getDefaultInstance());
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column.Builder addColumnsBuilder(
          int index) {
        return getColumnsFieldBuilder().addBuilder(
            index, io.greptime.v1.Columns.Column.getDefaultInstance());
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column columns = 3;</code>
       */
      public java.util.List<io.greptime.v1.Columns.Column.Builder> 
           getColumnsBuilderList() {
        return getColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Columns.Column, io.greptime.v1.Columns.Column.Builder, io.greptime.v1.Columns.ColumnOrBuilder> 
          getColumnsFieldBuilder() {
        if (columnsBuilder_ == null) {
          columnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Columns.Column, io.greptime.v1.Columns.Column.Builder, io.greptime.v1.Columns.ColumnOrBuilder>(
                  columns_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          columns_ = null;
        }
        return columnsBuilder_;
      }

      private int rowCount_ ;
      /**
       * <pre>
       * The row_count of all columns, which include null and non-null values.
       * Note: the row_count of all columns in a InsertRequest must be same.
       * </pre>
       *
       * <code>uint32 row_count = 4;</code>
       * @return The rowCount.
       */
      @java.lang.Override
      public int getRowCount() {
        return rowCount_;
      }
      /**
       * <pre>
       * The row_count of all columns, which include null and non-null values.
       * Note: the row_count of all columns in a InsertRequest must be same.
       * </pre>
       *
       * <code>uint32 row_count = 4;</code>
       * @param value The rowCount to set.
       * @return This builder for chaining.
       */
      public Builder setRowCount(int value) {
        
        rowCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The row_count of all columns, which include null and non-null values.
       * Note: the row_count of all columns in a InsertRequest must be same.
       * </pre>
       *
       * <code>uint32 row_count = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowCount() {
        
        rowCount_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.InsertRequest)
    }

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

    public static io.greptime.v1.Database.InsertRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    java.util.List<io.greptime.v1.Database.DeleteRequest> 
        getDeletesList();
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    io.greptime.v1.Database.DeleteRequest getDeletes(int index);
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    int getDeletesCount();
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Database.DeleteRequestOrBuilder> 
        getDeletesOrBuilderList();
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    io.greptime.v1.Database.DeleteRequestOrBuilder getDeletesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.DeleteRequests}
   */
  public static final class DeleteRequests extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DeleteRequests)
      DeleteRequestsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteRequests.newBuilder() to construct.
    private DeleteRequests(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteRequests() {
      deletes_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteRequests(
        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)) {
                deletes_ = new java.util.ArrayList<io.greptime.v1.Database.DeleteRequest>();
                mutable_bitField0_ |= 0x00000001;
              }
              deletes_.add(
                  input.readMessage(io.greptime.v1.Database.DeleteRequest.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)) {
          deletes_ = java.util.Collections.unmodifiableList(deletes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Database.internal_static_greptime_v1_DeleteRequests_descriptor;
    }

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

    public static final int DELETES_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Database.DeleteRequest> deletes_;
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Database.DeleteRequest> getDeletesList() {
      return deletes_;
    }
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Database.DeleteRequestOrBuilder> 
        getDeletesOrBuilderList() {
      return deletes_;
    }
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public int getDeletesCount() {
      return deletes_.size();
    }
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.DeleteRequest getDeletes(int index) {
      return deletes_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.DeleteRequestOrBuilder getDeletesOrBuilder(
        int index) {
      return deletes_.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 < deletes_.size(); i++) {
        output.writeMessage(1, deletes_.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 < deletes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, deletes_.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.Database.DeleteRequests)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.DeleteRequests other = (io.greptime.v1.Database.DeleteRequests) obj;

      if (!getDeletesList()
          .equals(other.getDeletesList())) 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 (getDeletesCount() > 0) {
        hash = (37 * hash) + DELETES_FIELD_NUMBER;
        hash = (53 * hash) + getDeletesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.DeleteRequests buildPartial() {
        io.greptime.v1.Database.DeleteRequests result = new io.greptime.v1.Database.DeleteRequests(this);
        int from_bitField0_ = bitField0_;
        if (deletesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            deletes_ = java.util.Collections.unmodifiableList(deletes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.deletes_ = deletes_;
        } else {
          result.deletes_ = deletesBuilder_.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.Database.DeleteRequests) {
          return mergeFrom((io.greptime.v1.Database.DeleteRequests)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      private java.util.List<io.greptime.v1.Database.DeleteRequest> deletes_ =
        java.util.Collections.emptyList();
      private void ensureDeletesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          deletes_ = new java.util.ArrayList<io.greptime.v1.Database.DeleteRequest>(deletes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.DeleteRequest, io.greptime.v1.Database.DeleteRequest.Builder, io.greptime.v1.Database.DeleteRequestOrBuilder> deletesBuilder_;

      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.DeleteRequest> getDeletesList() {
        if (deletesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(deletes_);
        } else {
          return deletesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public int getDeletesCount() {
        if (deletesBuilder_ == null) {
          return deletes_.size();
        } else {
          return deletesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.DeleteRequest getDeletes(int index) {
        if (deletesBuilder_ == null) {
          return deletes_.get(index);
        } else {
          return deletesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder setDeletes(
          int index, io.greptime.v1.Database.DeleteRequest value) {
        if (deletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeletesIsMutable();
          deletes_.set(index, value);
          onChanged();
        } else {
          deletesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder setDeletes(
          int index, io.greptime.v1.Database.DeleteRequest.Builder builderForValue) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.set(index, builderForValue.build());
          onChanged();
        } else {
          deletesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(io.greptime.v1.Database.DeleteRequest value) {
        if (deletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeletesIsMutable();
          deletes_.add(value);
          onChanged();
        } else {
          deletesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(
          int index, io.greptime.v1.Database.DeleteRequest value) {
        if (deletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeletesIsMutable();
          deletes_.add(index, value);
          onChanged();
        } else {
          deletesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(
          io.greptime.v1.Database.DeleteRequest.Builder builderForValue) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.add(builderForValue.build());
          onChanged();
        } else {
          deletesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(
          int index, io.greptime.v1.Database.DeleteRequest.Builder builderForValue) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.add(index, builderForValue.build());
          onChanged();
        } else {
          deletesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder addAllDeletes(
          java.lang.Iterable<? extends io.greptime.v1.Database.DeleteRequest> values) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, deletes_);
          onChanged();
        } else {
          deletesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder clearDeletes() {
        if (deletesBuilder_ == null) {
          deletes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          deletesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public Builder removeDeletes(int index) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.remove(index);
          onChanged();
        } else {
          deletesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.DeleteRequest.Builder getDeletesBuilder(
          int index) {
        return getDeletesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.DeleteRequestOrBuilder getDeletesOrBuilder(
          int index) {
        if (deletesBuilder_ == null) {
          return deletes_.get(index);  } else {
          return deletesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Database.DeleteRequestOrBuilder> 
           getDeletesOrBuilderList() {
        if (deletesBuilder_ != null) {
          return deletesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(deletes_);
        }
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.DeleteRequest.Builder addDeletesBuilder() {
        return getDeletesFieldBuilder().addBuilder(
            io.greptime.v1.Database.DeleteRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.DeleteRequest.Builder addDeletesBuilder(
          int index) {
        return getDeletesFieldBuilder().addBuilder(
            index, io.greptime.v1.Database.DeleteRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.DeleteRequest deletes = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.DeleteRequest.Builder> 
           getDeletesBuilderList() {
        return getDeletesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.DeleteRequest, io.greptime.v1.Database.DeleteRequest.Builder, io.greptime.v1.Database.DeleteRequestOrBuilder> 
          getDeletesFieldBuilder() {
        if (deletesBuilder_ == null) {
          deletesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Database.DeleteRequest, io.greptime.v1.Database.DeleteRequest.Builder, io.greptime.v1.Database.DeleteRequestOrBuilder>(
                  deletes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          deletes_ = null;
        }
        return deletesBuilder_;
      }
      @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.DeleteRequests)
    }

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

    public static io.greptime.v1.Database.DeleteRequests getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    java.lang.String getTableName();
    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    com.google.protobuf.ByteString
        getTableNameBytes();

    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    java.util.List<io.greptime.v1.Columns.Column> 
        getKeyColumnsList();
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    io.greptime.v1.Columns.Column getKeyColumns(int index);
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    int getKeyColumnsCount();
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    java.util.List<? extends io.greptime.v1.Columns.ColumnOrBuilder> 
        getKeyColumnsOrBuilderList();
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    io.greptime.v1.Columns.ColumnOrBuilder getKeyColumnsOrBuilder(
        int index);

    /**
     * <pre>
     * The row count of all columns above.
     * </pre>
     *
     * <code>uint32 row_count = 4;</code>
     * @return The rowCount.
     */
    int getRowCount();
  }
  /**
   * Protobuf type {@code greptime.v1.DeleteRequest}
   */
  public static final class DeleteRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DeleteRequest)
      DeleteRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteRequest.newBuilder() to construct.
    private DeleteRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteRequest() {
      tableName_ = "";
      keyColumns_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

              tableName_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                keyColumns_ = new java.util.ArrayList<io.greptime.v1.Columns.Column>();
                mutable_bitField0_ |= 0x00000001;
              }
              keyColumns_.add(
                  input.readMessage(io.greptime.v1.Columns.Column.parser(), extensionRegistry));
              break;
            }
            case 32: {

              rowCount_ = input.readUInt32();
              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)) {
          keyColumns_ = java.util.Collections.unmodifiableList(keyColumns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Database.internal_static_greptime_v1_DeleteRequest_descriptor;
    }

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

    public static final int TABLE_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object tableName_;
    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    @java.lang.Override
    public java.lang.String getTableName() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tableName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTableNameBytes() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tableName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KEY_COLUMNS_FIELD_NUMBER = 3;
    private java.util.List<io.greptime.v1.Columns.Column> keyColumns_;
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Columns.Column> getKeyColumnsList() {
      return keyColumns_;
    }
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Columns.ColumnOrBuilder> 
        getKeyColumnsOrBuilderList() {
      return keyColumns_;
    }
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    @java.lang.Override
    public int getKeyColumnsCount() {
      return keyColumns_.size();
    }
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Columns.Column getKeyColumns(int index) {
      return keyColumns_.get(index);
    }
    /**
     * <pre>
     * The data to delete, indexed by key columns.
     * </pre>
     *
     * <code>repeated .greptime.v1.Column key_columns = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Columns.ColumnOrBuilder getKeyColumnsOrBuilder(
        int index) {
      return keyColumns_.get(index);
    }

    public static final int ROW_COUNT_FIELD_NUMBER = 4;
    private int rowCount_;
    /**
     * <pre>
     * The row count of all columns above.
     * </pre>
     *
     * <code>uint32 row_count = 4;</code>
     * @return The rowCount.
     */
    @java.lang.Override
    public int getRowCount() {
      return rowCount_;
    }

    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(tableName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, tableName_);
      }
      for (int i = 0; i < keyColumns_.size(); i++) {
        output.writeMessage(3, keyColumns_.get(i));
      }
      if (rowCount_ != 0) {
        output.writeUInt32(4, rowCount_);
      }
      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(tableName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, tableName_);
      }
      for (int i = 0; i < keyColumns_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, keyColumns_.get(i));
      }
      if (rowCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, rowCount_);
      }
      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.Database.DeleteRequest)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.DeleteRequest other = (io.greptime.v1.Database.DeleteRequest) obj;

      if (!getTableName()
          .equals(other.getTableName())) return false;
      if (!getKeyColumnsList()
          .equals(other.getKeyColumnsList())) return false;
      if (getRowCount()
          != other.getRowCount()) 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) + TABLE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTableName().hashCode();
      if (getKeyColumnsCount() > 0) {
        hash = (37 * hash) + KEY_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getKeyColumnsList().hashCode();
      }
      hash = (37 * hash) + ROW_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getRowCount();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

        if (keyColumnsBuilder_ == null) {
          keyColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          keyColumnsBuilder_.clear();
        }
        rowCount_ = 0;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.DeleteRequest buildPartial() {
        io.greptime.v1.Database.DeleteRequest result = new io.greptime.v1.Database.DeleteRequest(this);
        int from_bitField0_ = bitField0_;
        result.tableName_ = tableName_;
        if (keyColumnsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            keyColumns_ = java.util.Collections.unmodifiableList(keyColumns_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.keyColumns_ = keyColumns_;
        } else {
          result.keyColumns_ = keyColumnsBuilder_.build();
        }
        result.rowCount_ = rowCount_;
        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.Database.DeleteRequest) {
          return mergeFrom((io.greptime.v1.Database.DeleteRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.DeleteRequest other) {
        if (other == io.greptime.v1.Database.DeleteRequest.getDefaultInstance()) return this;
        if (!other.getTableName().isEmpty()) {
          tableName_ = other.tableName_;
          onChanged();
        }
        if (keyColumnsBuilder_ == null) {
          if (!other.keyColumns_.isEmpty()) {
            if (keyColumns_.isEmpty()) {
              keyColumns_ = other.keyColumns_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKeyColumnsIsMutable();
              keyColumns_.addAll(other.keyColumns_);
            }
            onChanged();
          }
        } else {
          if (!other.keyColumns_.isEmpty()) {
            if (keyColumnsBuilder_.isEmpty()) {
              keyColumnsBuilder_.dispose();
              keyColumnsBuilder_ = null;
              keyColumns_ = other.keyColumns_;
              bitField0_ = (bitField0_ & ~0x00000001);
              keyColumnsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKeyColumnsFieldBuilder() : null;
            } else {
              keyColumnsBuilder_.addAllMessages(other.keyColumns_);
            }
          }
        }
        if (other.getRowCount() != 0) {
          setRowCount(other.getRowCount());
        }
        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.Database.DeleteRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.DeleteRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object tableName_ = "";
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @return The tableName.
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tableName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @return The bytes for tableName.
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @param value The tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tableName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableName() {
        
        tableName_ = getDefaultInstance().getTableName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @param value The bytes for tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        tableName_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.greptime.v1.Columns.Column> keyColumns_ =
        java.util.Collections.emptyList();
      private void ensureKeyColumnsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          keyColumns_ = new java.util.ArrayList<io.greptime.v1.Columns.Column>(keyColumns_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Columns.Column, io.greptime.v1.Columns.Column.Builder, io.greptime.v1.Columns.ColumnOrBuilder> keyColumnsBuilder_;

      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public java.util.List<io.greptime.v1.Columns.Column> getKeyColumnsList() {
        if (keyColumnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(keyColumns_);
        } else {
          return keyColumnsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public int getKeyColumnsCount() {
        if (keyColumnsBuilder_ == null) {
          return keyColumns_.size();
        } else {
          return keyColumnsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column getKeyColumns(int index) {
        if (keyColumnsBuilder_ == null) {
          return keyColumns_.get(index);
        } else {
          return keyColumnsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder setKeyColumns(
          int index, io.greptime.v1.Columns.Column value) {
        if (keyColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKeyColumnsIsMutable();
          keyColumns_.set(index, value);
          onChanged();
        } else {
          keyColumnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder setKeyColumns(
          int index, io.greptime.v1.Columns.Column.Builder builderForValue) {
        if (keyColumnsBuilder_ == null) {
          ensureKeyColumnsIsMutable();
          keyColumns_.set(index, builderForValue.build());
          onChanged();
        } else {
          keyColumnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder addKeyColumns(io.greptime.v1.Columns.Column value) {
        if (keyColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKeyColumnsIsMutable();
          keyColumns_.add(value);
          onChanged();
        } else {
          keyColumnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder addKeyColumns(
          int index, io.greptime.v1.Columns.Column value) {
        if (keyColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKeyColumnsIsMutable();
          keyColumns_.add(index, value);
          onChanged();
        } else {
          keyColumnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder addKeyColumns(
          io.greptime.v1.Columns.Column.Builder builderForValue) {
        if (keyColumnsBuilder_ == null) {
          ensureKeyColumnsIsMutable();
          keyColumns_.add(builderForValue.build());
          onChanged();
        } else {
          keyColumnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder addKeyColumns(
          int index, io.greptime.v1.Columns.Column.Builder builderForValue) {
        if (keyColumnsBuilder_ == null) {
          ensureKeyColumnsIsMutable();
          keyColumns_.add(index, builderForValue.build());
          onChanged();
        } else {
          keyColumnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder addAllKeyColumns(
          java.lang.Iterable<? extends io.greptime.v1.Columns.Column> values) {
        if (keyColumnsBuilder_ == null) {
          ensureKeyColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, keyColumns_);
          onChanged();
        } else {
          keyColumnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder clearKeyColumns() {
        if (keyColumnsBuilder_ == null) {
          keyColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          keyColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public Builder removeKeyColumns(int index) {
        if (keyColumnsBuilder_ == null) {
          ensureKeyColumnsIsMutable();
          keyColumns_.remove(index);
          onChanged();
        } else {
          keyColumnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column.Builder getKeyColumnsBuilder(
          int index) {
        return getKeyColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public io.greptime.v1.Columns.ColumnOrBuilder getKeyColumnsOrBuilder(
          int index) {
        if (keyColumnsBuilder_ == null) {
          return keyColumns_.get(index);  } else {
          return keyColumnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public java.util.List<? extends io.greptime.v1.Columns.ColumnOrBuilder> 
           getKeyColumnsOrBuilderList() {
        if (keyColumnsBuilder_ != null) {
          return keyColumnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(keyColumns_);
        }
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column.Builder addKeyColumnsBuilder() {
        return getKeyColumnsFieldBuilder().addBuilder(
            io.greptime.v1.Columns.Column.getDefaultInstance());
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public io.greptime.v1.Columns.Column.Builder addKeyColumnsBuilder(
          int index) {
        return getKeyColumnsFieldBuilder().addBuilder(
            index, io.greptime.v1.Columns.Column.getDefaultInstance());
      }
      /**
       * <pre>
       * The data to delete, indexed by key columns.
       * </pre>
       *
       * <code>repeated .greptime.v1.Column key_columns = 3;</code>
       */
      public java.util.List<io.greptime.v1.Columns.Column.Builder> 
           getKeyColumnsBuilderList() {
        return getKeyColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Columns.Column, io.greptime.v1.Columns.Column.Builder, io.greptime.v1.Columns.ColumnOrBuilder> 
          getKeyColumnsFieldBuilder() {
        if (keyColumnsBuilder_ == null) {
          keyColumnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Columns.Column, io.greptime.v1.Columns.Column.Builder, io.greptime.v1.Columns.ColumnOrBuilder>(
                  keyColumns_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          keyColumns_ = null;
        }
        return keyColumnsBuilder_;
      }

      private int rowCount_ ;
      /**
       * <pre>
       * The row count of all columns above.
       * </pre>
       *
       * <code>uint32 row_count = 4;</code>
       * @return The rowCount.
       */
      @java.lang.Override
      public int getRowCount() {
        return rowCount_;
      }
      /**
       * <pre>
       * The row count of all columns above.
       * </pre>
       *
       * <code>uint32 row_count = 4;</code>
       * @param value The rowCount to set.
       * @return This builder for chaining.
       */
      public Builder setRowCount(int value) {
        
        rowCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The row count of all columns above.
       * </pre>
       *
       * <code>uint32 row_count = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowCount() {
        
        rowCount_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.DeleteRequest)
    }

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

    public static io.greptime.v1.Database.DeleteRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    java.util.List<io.greptime.v1.Database.RowInsertRequest> 
        getInsertsList();
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    io.greptime.v1.Database.RowInsertRequest getInserts(int index);
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    int getInsertsCount();
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Database.RowInsertRequestOrBuilder> 
        getInsertsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    io.greptime.v1.Database.RowInsertRequestOrBuilder getInsertsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.RowInsertRequests}
   */
  public static final class RowInsertRequests extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.RowInsertRequests)
      RowInsertRequestsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowInsertRequests.newBuilder() to construct.
    private RowInsertRequests(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowInsertRequests() {
      inserts_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RowInsertRequests(
        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)) {
                inserts_ = new java.util.ArrayList<io.greptime.v1.Database.RowInsertRequest>();
                mutable_bitField0_ |= 0x00000001;
              }
              inserts_.add(
                  input.readMessage(io.greptime.v1.Database.RowInsertRequest.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)) {
          inserts_ = java.util.Collections.unmodifiableList(inserts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Database.internal_static_greptime_v1_RowInsertRequests_descriptor;
    }

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

    public static final int INSERTS_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Database.RowInsertRequest> inserts_;
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Database.RowInsertRequest> getInsertsList() {
      return inserts_;
    }
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Database.RowInsertRequestOrBuilder> 
        getInsertsOrBuilderList() {
      return inserts_;
    }
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public int getInsertsCount() {
      return inserts_.size();
    }
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowInsertRequest getInserts(int index) {
      return inserts_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowInsertRequestOrBuilder getInsertsOrBuilder(
        int index) {
      return inserts_.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 < inserts_.size(); i++) {
        output.writeMessage(1, inserts_.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 < inserts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, inserts_.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.Database.RowInsertRequests)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.RowInsertRequests other = (io.greptime.v1.Database.RowInsertRequests) obj;

      if (!getInsertsList()
          .equals(other.getInsertsList())) 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 (getInsertsCount() > 0) {
        hash = (37 * hash) + INSERTS_FIELD_NUMBER;
        hash = (53 * hash) + getInsertsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.RowInsertRequests buildPartial() {
        io.greptime.v1.Database.RowInsertRequests result = new io.greptime.v1.Database.RowInsertRequests(this);
        int from_bitField0_ = bitField0_;
        if (insertsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            inserts_ = java.util.Collections.unmodifiableList(inserts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.inserts_ = inserts_;
        } else {
          result.inserts_ = insertsBuilder_.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.Database.RowInsertRequests) {
          return mergeFrom((io.greptime.v1.Database.RowInsertRequests)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      private java.util.List<io.greptime.v1.Database.RowInsertRequest> inserts_ =
        java.util.Collections.emptyList();
      private void ensureInsertsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          inserts_ = new java.util.ArrayList<io.greptime.v1.Database.RowInsertRequest>(inserts_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.RowInsertRequest, io.greptime.v1.Database.RowInsertRequest.Builder, io.greptime.v1.Database.RowInsertRequestOrBuilder> insertsBuilder_;

      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.RowInsertRequest> getInsertsList() {
        if (insertsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(inserts_);
        } else {
          return insertsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public int getInsertsCount() {
        if (insertsBuilder_ == null) {
          return inserts_.size();
        } else {
          return insertsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.RowInsertRequest getInserts(int index) {
        if (insertsBuilder_ == null) {
          return inserts_.get(index);
        } else {
          return insertsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder setInserts(
          int index, io.greptime.v1.Database.RowInsertRequest value) {
        if (insertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInsertsIsMutable();
          inserts_.set(index, value);
          onChanged();
        } else {
          insertsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder setInserts(
          int index, io.greptime.v1.Database.RowInsertRequest.Builder builderForValue) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.set(index, builderForValue.build());
          onChanged();
        } else {
          insertsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder addInserts(io.greptime.v1.Database.RowInsertRequest value) {
        if (insertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInsertsIsMutable();
          inserts_.add(value);
          onChanged();
        } else {
          insertsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder addInserts(
          int index, io.greptime.v1.Database.RowInsertRequest value) {
        if (insertsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInsertsIsMutable();
          inserts_.add(index, value);
          onChanged();
        } else {
          insertsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder addInserts(
          io.greptime.v1.Database.RowInsertRequest.Builder builderForValue) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.add(builderForValue.build());
          onChanged();
        } else {
          insertsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder addInserts(
          int index, io.greptime.v1.Database.RowInsertRequest.Builder builderForValue) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.add(index, builderForValue.build());
          onChanged();
        } else {
          insertsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder addAllInserts(
          java.lang.Iterable<? extends io.greptime.v1.Database.RowInsertRequest> values) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, inserts_);
          onChanged();
        } else {
          insertsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder clearInserts() {
        if (insertsBuilder_ == null) {
          inserts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          insertsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public Builder removeInserts(int index) {
        if (insertsBuilder_ == null) {
          ensureInsertsIsMutable();
          inserts_.remove(index);
          onChanged();
        } else {
          insertsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.RowInsertRequest.Builder getInsertsBuilder(
          int index) {
        return getInsertsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.RowInsertRequestOrBuilder getInsertsOrBuilder(
          int index) {
        if (insertsBuilder_ == null) {
          return inserts_.get(index);  } else {
          return insertsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Database.RowInsertRequestOrBuilder> 
           getInsertsOrBuilderList() {
        if (insertsBuilder_ != null) {
          return insertsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(inserts_);
        }
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.RowInsertRequest.Builder addInsertsBuilder() {
        return getInsertsFieldBuilder().addBuilder(
            io.greptime.v1.Database.RowInsertRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public io.greptime.v1.Database.RowInsertRequest.Builder addInsertsBuilder(
          int index) {
        return getInsertsFieldBuilder().addBuilder(
            index, io.greptime.v1.Database.RowInsertRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.RowInsertRequest inserts = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.RowInsertRequest.Builder> 
           getInsertsBuilderList() {
        return getInsertsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.RowInsertRequest, io.greptime.v1.Database.RowInsertRequest.Builder, io.greptime.v1.Database.RowInsertRequestOrBuilder> 
          getInsertsFieldBuilder() {
        if (insertsBuilder_ == null) {
          insertsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Database.RowInsertRequest, io.greptime.v1.Database.RowInsertRequest.Builder, io.greptime.v1.Database.RowInsertRequestOrBuilder>(
                  inserts_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          inserts_ = null;
        }
        return insertsBuilder_;
      }
      @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.RowInsertRequests)
    }

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

    public static io.greptime.v1.Database.RowInsertRequests getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    java.lang.String getTableName();
    /**
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    com.google.protobuf.ByteString
        getTableNameBytes();

    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return Whether the rows field is set.
     */
    boolean hasRows();
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return The rows.
     */
    io.greptime.v1.RowData.Rows getRows();
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     */
    io.greptime.v1.RowData.RowsOrBuilder getRowsOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.RowInsertRequest}
   */
  public static final class RowInsertRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.RowInsertRequest)
      RowInsertRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowInsertRequest.newBuilder() to construct.
    private RowInsertRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowInsertRequest() {
      tableName_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RowInsertRequest(
        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();

              tableName_ = s;
              break;
            }
            case 18: {
              io.greptime.v1.RowData.Rows.Builder subBuilder = null;
              if (rows_ != null) {
                subBuilder = rows_.toBuilder();
              }
              rows_ = input.readMessage(io.greptime.v1.RowData.Rows.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(rows_);
                rows_ = 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.Database.internal_static_greptime_v1_RowInsertRequest_descriptor;
    }

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

    public static final int TABLE_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object tableName_;
    /**
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    @java.lang.Override
    public java.lang.String getTableName() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tableName_ = s;
        return s;
      }
    }
    /**
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTableNameBytes() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tableName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROWS_FIELD_NUMBER = 2;
    private io.greptime.v1.RowData.Rows rows_;
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return Whether the rows field is set.
     */
    @java.lang.Override
    public boolean hasRows() {
      return rows_ != null;
    }
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return The rows.
     */
    @java.lang.Override
    public io.greptime.v1.RowData.Rows getRows() {
      return rows_ == null ? io.greptime.v1.RowData.Rows.getDefaultInstance() : rows_;
    }
    /**
     * <pre>
     * Data is represented here.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.RowsOrBuilder getRowsOrBuilder() {
      return getRows();
    }

    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(tableName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, tableName_);
      }
      if (rows_ != null) {
        output.writeMessage(2, getRows());
      }
      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(tableName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, tableName_);
      }
      if (rows_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getRows());
      }
      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.Database.RowInsertRequest)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.RowInsertRequest other = (io.greptime.v1.Database.RowInsertRequest) obj;

      if (!getTableName()
          .equals(other.getTableName())) return false;
      if (hasRows() != other.hasRows()) return false;
      if (hasRows()) {
        if (!getRows()
            .equals(other.getRows())) 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) + TABLE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTableName().hashCode();
      if (hasRows()) {
        hash = (37 * hash) + ROWS_FIELD_NUMBER;
        hash = (53 * hash) + getRows().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Database.RowInsertRequest.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();
        tableName_ = "";

        if (rowsBuilder_ == null) {
          rows_ = null;
        } else {
          rows_ = null;
          rowsBuilder_ = null;
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.RowInsertRequest buildPartial() {
        io.greptime.v1.Database.RowInsertRequest result = new io.greptime.v1.Database.RowInsertRequest(this);
        result.tableName_ = tableName_;
        if (rowsBuilder_ == null) {
          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.Database.RowInsertRequest) {
          return mergeFrom((io.greptime.v1.Database.RowInsertRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.RowInsertRequest other) {
        if (other == io.greptime.v1.Database.RowInsertRequest.getDefaultInstance()) return this;
        if (!other.getTableName().isEmpty()) {
          tableName_ = other.tableName_;
          onChanged();
        }
        if (other.hasRows()) {
          mergeRows(other.getRows());
        }
        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.Database.RowInsertRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.RowInsertRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object tableName_ = "";
      /**
       * <code>string table_name = 1;</code>
       * @return The tableName.
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tableName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string table_name = 1;</code>
       * @return The bytes for tableName.
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string table_name = 1;</code>
       * @param value The tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tableName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string table_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableName() {
        
        tableName_ = getDefaultInstance().getTableName();
        onChanged();
        return this;
      }
      /**
       * <code>string table_name = 1;</code>
       * @param value The bytes for tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        tableName_ = value;
        onChanged();
        return this;
      }

      private io.greptime.v1.RowData.Rows rows_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.RowData.Rows, io.greptime.v1.RowData.Rows.Builder, io.greptime.v1.RowData.RowsOrBuilder> rowsBuilder_;
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       * @return Whether the rows field is set.
       */
      public boolean hasRows() {
        return rowsBuilder_ != null || rows_ != null;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       * @return The rows.
       */
      public io.greptime.v1.RowData.Rows getRows() {
        if (rowsBuilder_ == null) {
          return rows_ == null ? io.greptime.v1.RowData.Rows.getDefaultInstance() : rows_;
        } else {
          return rowsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder setRows(io.greptime.v1.RowData.Rows value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rows_ = value;
          onChanged();
        } else {
          rowsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder setRows(
          io.greptime.v1.RowData.Rows.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          rows_ = builderForValue.build();
          onChanged();
        } else {
          rowsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder mergeRows(io.greptime.v1.RowData.Rows value) {
        if (rowsBuilder_ == null) {
          if (rows_ != null) {
            rows_ =
              io.greptime.v1.RowData.Rows.newBuilder(rows_).mergeFrom(value).buildPartial();
          } else {
            rows_ = value;
          }
          onChanged();
        } else {
          rowsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder clearRows() {
        if (rowsBuilder_ == null) {
          rows_ = null;
          onChanged();
        } else {
          rows_ = null;
          rowsBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public io.greptime.v1.RowData.Rows.Builder getRowsBuilder() {
        
        onChanged();
        return getRowsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public io.greptime.v1.RowData.RowsOrBuilder getRowsOrBuilder() {
        if (rowsBuilder_ != null) {
          return rowsBuilder_.getMessageOrBuilder();
        } else {
          return rows_ == null ?
              io.greptime.v1.RowData.Rows.getDefaultInstance() : rows_;
        }
      }
      /**
       * <pre>
       * Data is represented here.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.RowData.Rows, io.greptime.v1.RowData.Rows.Builder, io.greptime.v1.RowData.RowsOrBuilder> 
          getRowsFieldBuilder() {
        if (rowsBuilder_ == null) {
          rowsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.RowData.Rows, io.greptime.v1.RowData.Rows.Builder, io.greptime.v1.RowData.RowsOrBuilder>(
                  getRows(),
                  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.RowInsertRequest)
    }

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

    public static io.greptime.v1.Database.RowInsertRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    java.util.List<io.greptime.v1.Database.RowDeleteRequest> 
        getDeletesList();
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    io.greptime.v1.Database.RowDeleteRequest getDeletes(int index);
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    int getDeletesCount();
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Database.RowDeleteRequestOrBuilder> 
        getDeletesOrBuilderList();
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    io.greptime.v1.Database.RowDeleteRequestOrBuilder getDeletesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.RowDeleteRequests}
   */
  public static final class RowDeleteRequests extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.RowDeleteRequests)
      RowDeleteRequestsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowDeleteRequests.newBuilder() to construct.
    private RowDeleteRequests(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowDeleteRequests() {
      deletes_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RowDeleteRequests(
        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)) {
                deletes_ = new java.util.ArrayList<io.greptime.v1.Database.RowDeleteRequest>();
                mutable_bitField0_ |= 0x00000001;
              }
              deletes_.add(
                  input.readMessage(io.greptime.v1.Database.RowDeleteRequest.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)) {
          deletes_ = java.util.Collections.unmodifiableList(deletes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Database.internal_static_greptime_v1_RowDeleteRequests_descriptor;
    }

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

    public static final int DELETES_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Database.RowDeleteRequest> deletes_;
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Database.RowDeleteRequest> getDeletesList() {
      return deletes_;
    }
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Database.RowDeleteRequestOrBuilder> 
        getDeletesOrBuilderList() {
      return deletes_;
    }
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public int getDeletesCount() {
      return deletes_.size();
    }
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowDeleteRequest getDeletes(int index) {
      return deletes_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Database.RowDeleteRequestOrBuilder getDeletesOrBuilder(
        int index) {
      return deletes_.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 < deletes_.size(); i++) {
        output.writeMessage(1, deletes_.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 < deletes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, deletes_.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.Database.RowDeleteRequests)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.RowDeleteRequests other = (io.greptime.v1.Database.RowDeleteRequests) obj;

      if (!getDeletesList()
          .equals(other.getDeletesList())) 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 (getDeletesCount() > 0) {
        hash = (37 * hash) + DELETES_FIELD_NUMBER;
        hash = (53 * hash) + getDeletesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.RowDeleteRequests buildPartial() {
        io.greptime.v1.Database.RowDeleteRequests result = new io.greptime.v1.Database.RowDeleteRequests(this);
        int from_bitField0_ = bitField0_;
        if (deletesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            deletes_ = java.util.Collections.unmodifiableList(deletes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.deletes_ = deletes_;
        } else {
          result.deletes_ = deletesBuilder_.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.Database.RowDeleteRequests) {
          return mergeFrom((io.greptime.v1.Database.RowDeleteRequests)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      private java.util.List<io.greptime.v1.Database.RowDeleteRequest> deletes_ =
        java.util.Collections.emptyList();
      private void ensureDeletesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          deletes_ = new java.util.ArrayList<io.greptime.v1.Database.RowDeleteRequest>(deletes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.RowDeleteRequest, io.greptime.v1.Database.RowDeleteRequest.Builder, io.greptime.v1.Database.RowDeleteRequestOrBuilder> deletesBuilder_;

      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.RowDeleteRequest> getDeletesList() {
        if (deletesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(deletes_);
        } else {
          return deletesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public int getDeletesCount() {
        if (deletesBuilder_ == null) {
          return deletes_.size();
        } else {
          return deletesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.RowDeleteRequest getDeletes(int index) {
        if (deletesBuilder_ == null) {
          return deletes_.get(index);
        } else {
          return deletesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder setDeletes(
          int index, io.greptime.v1.Database.RowDeleteRequest value) {
        if (deletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeletesIsMutable();
          deletes_.set(index, value);
          onChanged();
        } else {
          deletesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder setDeletes(
          int index, io.greptime.v1.Database.RowDeleteRequest.Builder builderForValue) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.set(index, builderForValue.build());
          onChanged();
        } else {
          deletesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(io.greptime.v1.Database.RowDeleteRequest value) {
        if (deletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeletesIsMutable();
          deletes_.add(value);
          onChanged();
        } else {
          deletesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(
          int index, io.greptime.v1.Database.RowDeleteRequest value) {
        if (deletesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDeletesIsMutable();
          deletes_.add(index, value);
          onChanged();
        } else {
          deletesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(
          io.greptime.v1.Database.RowDeleteRequest.Builder builderForValue) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.add(builderForValue.build());
          onChanged();
        } else {
          deletesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder addDeletes(
          int index, io.greptime.v1.Database.RowDeleteRequest.Builder builderForValue) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.add(index, builderForValue.build());
          onChanged();
        } else {
          deletesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder addAllDeletes(
          java.lang.Iterable<? extends io.greptime.v1.Database.RowDeleteRequest> values) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, deletes_);
          onChanged();
        } else {
          deletesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder clearDeletes() {
        if (deletesBuilder_ == null) {
          deletes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          deletesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public Builder removeDeletes(int index) {
        if (deletesBuilder_ == null) {
          ensureDeletesIsMutable();
          deletes_.remove(index);
          onChanged();
        } else {
          deletesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.RowDeleteRequest.Builder getDeletesBuilder(
          int index) {
        return getDeletesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.RowDeleteRequestOrBuilder getDeletesOrBuilder(
          int index) {
        if (deletesBuilder_ == null) {
          return deletes_.get(index);  } else {
          return deletesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Database.RowDeleteRequestOrBuilder> 
           getDeletesOrBuilderList() {
        if (deletesBuilder_ != null) {
          return deletesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(deletes_);
        }
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.RowDeleteRequest.Builder addDeletesBuilder() {
        return getDeletesFieldBuilder().addBuilder(
            io.greptime.v1.Database.RowDeleteRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public io.greptime.v1.Database.RowDeleteRequest.Builder addDeletesBuilder(
          int index) {
        return getDeletesFieldBuilder().addBuilder(
            index, io.greptime.v1.Database.RowDeleteRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.RowDeleteRequest deletes = 1;</code>
       */
      public java.util.List<io.greptime.v1.Database.RowDeleteRequest.Builder> 
           getDeletesBuilderList() {
        return getDeletesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Database.RowDeleteRequest, io.greptime.v1.Database.RowDeleteRequest.Builder, io.greptime.v1.Database.RowDeleteRequestOrBuilder> 
          getDeletesFieldBuilder() {
        if (deletesBuilder_ == null) {
          deletesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Database.RowDeleteRequest, io.greptime.v1.Database.RowDeleteRequest.Builder, io.greptime.v1.Database.RowDeleteRequestOrBuilder>(
                  deletes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          deletes_ = null;
        }
        return deletesBuilder_;
      }
      @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.RowDeleteRequests)
    }

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

    public static io.greptime.v1.Database.RowDeleteRequests getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    java.lang.String getTableName();
    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    com.google.protobuf.ByteString
        getTableNameBytes();

    /**
     * <pre>
     * The data to delete.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return Whether the rows field is set.
     */
    boolean hasRows();
    /**
     * <pre>
     * The data to delete.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return The rows.
     */
    io.greptime.v1.RowData.Rows getRows();
    /**
     * <pre>
     * The data to delete.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     */
    io.greptime.v1.RowData.RowsOrBuilder getRowsOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.RowDeleteRequest}
   */
  public static final class RowDeleteRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.RowDeleteRequest)
      RowDeleteRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowDeleteRequest.newBuilder() to construct.
    private RowDeleteRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowDeleteRequest() {
      tableName_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RowDeleteRequest(
        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();

              tableName_ = s;
              break;
            }
            case 18: {
              io.greptime.v1.RowData.Rows.Builder subBuilder = null;
              if (rows_ != null) {
                subBuilder = rows_.toBuilder();
              }
              rows_ = input.readMessage(io.greptime.v1.RowData.Rows.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(rows_);
                rows_ = 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.Database.internal_static_greptime_v1_RowDeleteRequest_descriptor;
    }

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

    public static final int TABLE_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object tableName_;
    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The tableName.
     */
    @java.lang.Override
    public java.lang.String getTableName() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tableName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The table name to delete from. Catalog name and schema name are in the
     * `RequestHeader`.
     * </pre>
     *
     * <code>string table_name = 1;</code>
     * @return The bytes for tableName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTableNameBytes() {
      java.lang.Object ref = tableName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tableName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROWS_FIELD_NUMBER = 2;
    private io.greptime.v1.RowData.Rows rows_;
    /**
     * <pre>
     * The data to delete.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return Whether the rows field is set.
     */
    @java.lang.Override
    public boolean hasRows() {
      return rows_ != null;
    }
    /**
     * <pre>
     * The data to delete.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     * @return The rows.
     */
    @java.lang.Override
    public io.greptime.v1.RowData.Rows getRows() {
      return rows_ == null ? io.greptime.v1.RowData.Rows.getDefaultInstance() : rows_;
    }
    /**
     * <pre>
     * The data to delete.
     * </pre>
     *
     * <code>.greptime.v1.Rows rows = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.RowData.RowsOrBuilder getRowsOrBuilder() {
      return getRows();
    }

    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(tableName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, tableName_);
      }
      if (rows_ != null) {
        output.writeMessage(2, getRows());
      }
      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(tableName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, tableName_);
      }
      if (rows_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getRows());
      }
      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.Database.RowDeleteRequest)) {
        return super.equals(obj);
      }
      io.greptime.v1.Database.RowDeleteRequest other = (io.greptime.v1.Database.RowDeleteRequest) obj;

      if (!getTableName()
          .equals(other.getTableName())) return false;
      if (hasRows() != other.hasRows()) return false;
      if (hasRows()) {
        if (!getRows()
            .equals(other.getRows())) 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) + TABLE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTableName().hashCode();
      if (hasRows()) {
        hash = (37 * hash) + ROWS_FIELD_NUMBER;
        hash = (53 * hash) + getRows().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Database.RowDeleteRequest.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();
        tableName_ = "";

        if (rowsBuilder_ == null) {
          rows_ = null;
        } else {
          rows_ = null;
          rowsBuilder_ = null;
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Database.RowDeleteRequest buildPartial() {
        io.greptime.v1.Database.RowDeleteRequest result = new io.greptime.v1.Database.RowDeleteRequest(this);
        result.tableName_ = tableName_;
        if (rowsBuilder_ == null) {
          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.Database.RowDeleteRequest) {
          return mergeFrom((io.greptime.v1.Database.RowDeleteRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Database.RowDeleteRequest other) {
        if (other == io.greptime.v1.Database.RowDeleteRequest.getDefaultInstance()) return this;
        if (!other.getTableName().isEmpty()) {
          tableName_ = other.tableName_;
          onChanged();
        }
        if (other.hasRows()) {
          mergeRows(other.getRows());
        }
        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.Database.RowDeleteRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Database.RowDeleteRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object tableName_ = "";
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @return The tableName.
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tableName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @return The bytes for tableName.
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @param value The tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tableName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableName() {
        
        tableName_ = getDefaultInstance().getTableName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The table name to delete from. Catalog name and schema name are in the
       * `RequestHeader`.
       * </pre>
       *
       * <code>string table_name = 1;</code>
       * @param value The bytes for tableName to set.
       * @return This builder for chaining.
       */
      public Builder setTableNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        tableName_ = value;
        onChanged();
        return this;
      }

      private io.greptime.v1.RowData.Rows rows_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.RowData.Rows, io.greptime.v1.RowData.Rows.Builder, io.greptime.v1.RowData.RowsOrBuilder> rowsBuilder_;
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       * @return Whether the rows field is set.
       */
      public boolean hasRows() {
        return rowsBuilder_ != null || rows_ != null;
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       * @return The rows.
       */
      public io.greptime.v1.RowData.Rows getRows() {
        if (rowsBuilder_ == null) {
          return rows_ == null ? io.greptime.v1.RowData.Rows.getDefaultInstance() : rows_;
        } else {
          return rowsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder setRows(io.greptime.v1.RowData.Rows value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rows_ = value;
          onChanged();
        } else {
          rowsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder setRows(
          io.greptime.v1.RowData.Rows.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          rows_ = builderForValue.build();
          onChanged();
        } else {
          rowsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder mergeRows(io.greptime.v1.RowData.Rows value) {
        if (rowsBuilder_ == null) {
          if (rows_ != null) {
            rows_ =
              io.greptime.v1.RowData.Rows.newBuilder(rows_).mergeFrom(value).buildPartial();
          } else {
            rows_ = value;
          }
          onChanged();
        } else {
          rowsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public Builder clearRows() {
        if (rowsBuilder_ == null) {
          rows_ = null;
          onChanged();
        } else {
          rows_ = null;
          rowsBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public io.greptime.v1.RowData.Rows.Builder getRowsBuilder() {
        
        onChanged();
        return getRowsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      public io.greptime.v1.RowData.RowsOrBuilder getRowsOrBuilder() {
        if (rowsBuilder_ != null) {
          return rowsBuilder_.getMessageOrBuilder();
        } else {
          return rows_ == null ?
              io.greptime.v1.RowData.Rows.getDefaultInstance() : rows_;
        }
      }
      /**
       * <pre>
       * The data to delete.
       * </pre>
       *
       * <code>.greptime.v1.Rows rows = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.RowData.Rows, io.greptime.v1.RowData.Rows.Builder, io.greptime.v1.RowData.RowsOrBuilder> 
          getRowsFieldBuilder() {
        if (rowsBuilder_ == null) {
          rowsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.RowData.Rows, io.greptime.v1.RowData.Rows.Builder, io.greptime.v1.RowData.RowsOrBuilder>(
                  getRows(),
                  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.RowDeleteRequest)
    }

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

    public static io.greptime.v1.Database.RowDeleteRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_GreptimeRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_GreptimeRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_GreptimeResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_GreptimeResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_QueryRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_QueryRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_InsertIntoPlan_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_InsertIntoPlan_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_InsertRequests_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_InsertRequests_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_InsertRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_InsertRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DeleteRequests_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DeleteRequests_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DeleteRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DeleteRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_RowInsertRequests_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_RowInsertRequests_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_RowInsertRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_RowInsertRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_RowDeleteRequests_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_RowDeleteRequests_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_RowDeleteRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_RowDeleteRequest_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\032greptime/v1/database.proto\022\013greptime.v" +
      "1\032\025greptime/v1/ddl.proto\032\030greptime/v1/co" +
      "lumn.proto\032\025greptime/v1/row.proto\032\026grept" +
      "ime/v1/prom.proto\032\030greptime/v1/common.pr" +
      "oto\"\352\002\n\017GreptimeRequest\022*\n\006header\030\001 \001(\0132" +
      "\032.greptime.v1.RequestHeader\022.\n\007inserts\030\002" +
      " \001(\0132\033.greptime.v1.InsertRequestsH\000\022*\n\005q" +
      "uery\030\003 \001(\0132\031.greptime.v1.QueryRequestH\000\022" +
      "&\n\003ddl\030\004 \001(\0132\027.greptime.v1.DdlRequestH\000\022" +
      ".\n\007deletes\030\005 \001(\0132\033.greptime.v1.DeleteReq" +
      "uestsH\000\0225\n\013row_inserts\030\006 \001(\0132\036.greptime." +
      "v1.RowInsertRequestsH\000\0225\n\013row_deletes\030\007 " +
      "\001(\0132\036.greptime.v1.RowDeleteRequestsH\000B\t\n" +
      "\007request\"\177\n\020GreptimeResponse\022+\n\006header\030\001" +
      " \001(\0132\033.greptime.v1.ResponseHeader\0222\n\raff" +
      "ected_rows\030\002 \001(\0132\031.greptime.v1.AffectedR" +
      "owsH\000B\n\n\010response\"\260\001\n\014QueryRequest\022\r\n\003sq" +
      "l\030\001 \001(\tH\000\022\026\n\014logical_plan\030\002 \001(\014H\000\0227\n\020pro" +
      "m_range_query\030\003 \001(\0132\033.greptime.v1.PromRa" +
      "ngeQueryH\000\0227\n\020insert_into_plan\030\004 \001(\0132\033.g" +
      "reptime.v1.InsertIntoPlanH\000B\007\n\005query\"R\n\016" +
      "InsertIntoPlan\022*\n\ntable_name\030\001 \001(\0132\026.gre" +
      "ptime.v1.TableName\022\024\n\014logical_plan\030\002 \001(\014" +
      "\"=\n\016InsertRequests\022+\n\007inserts\030\001 \003(\0132\032.gr" +
      "eptime.v1.InsertRequest\"\\\n\rInsertRequest" +
      "\022\022\n\ntable_name\030\001 \001(\t\022$\n\007columns\030\003 \003(\0132\023." +
      "greptime.v1.Column\022\021\n\trow_count\030\004 \001(\r\"=\n" +
      "\016DeleteRequests\022+\n\007deletes\030\001 \003(\0132\032.grept" +
      "ime.v1.DeleteRequest\"`\n\rDeleteRequest\022\022\n" +
      "\ntable_name\030\001 \001(\t\022(\n\013key_columns\030\003 \003(\0132\023" +
      ".greptime.v1.Column\022\021\n\trow_count\030\004 \001(\r\"C" +
      "\n\021RowInsertRequests\022.\n\007inserts\030\001 \003(\0132\035.g" +
      "reptime.v1.RowInsertRequest\"G\n\020RowInsert" +
      "Request\022\022\n\ntable_name\030\001 \001(\t\022\037\n\004rows\030\002 \001(" +
      "\0132\021.greptime.v1.Rows\"C\n\021RowDeleteRequest" +
      "s\022.\n\007deletes\030\001 \003(\0132\035.greptime.v1.RowDele" +
      "teRequest\"G\n\020RowDeleteRequest\022\022\n\ntable_n" +
      "ame\030\001 \001(\t\022\037\n\004rows\030\002 \001(\0132\021.greptime.v1.Ro" +
      "ws2\252\001\n\020GreptimeDatabase\022E\n\006Handle\022\034.grep" +
      "time.v1.GreptimeRequest\032\035.greptime.v1.Gr" +
      "eptimeResponse\022O\n\016HandleRequests\022\034.grept" +
      "ime.v1.GreptimeRequest\032\035.greptime.v1.Gre" +
      "ptimeResponse(\001BQ\n\016io.greptime.v1B\010Datab" +
      "aseZ5github.com/GreptimeTeam/greptime-pr" +
      "oto/go/greptime/v1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          io.greptime.v1.Ddl.getDescriptor(),
          io.greptime.v1.Columns.getDescriptor(),
          io.greptime.v1.RowData.getDescriptor(),
          io.greptime.v1.Prometheus.getDescriptor(),
          io.greptime.v1.Common.getDescriptor(),
        });
    internal_static_greptime_v1_GreptimeRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_greptime_v1_GreptimeRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_GreptimeRequest_descriptor,
        new java.lang.String[] { "Header", "Inserts", "Query", "Ddl", "Deletes", "RowInserts", "RowDeletes", "Request", });
    internal_static_greptime_v1_GreptimeResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_greptime_v1_GreptimeResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_GreptimeResponse_descriptor,
        new java.lang.String[] { "Header", "AffectedRows", "Response", });
    internal_static_greptime_v1_QueryRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_greptime_v1_QueryRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_QueryRequest_descriptor,
        new java.lang.String[] { "Sql", "LogicalPlan", "PromRangeQuery", "InsertIntoPlan", "Query", });
    internal_static_greptime_v1_InsertIntoPlan_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_greptime_v1_InsertIntoPlan_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_InsertIntoPlan_descriptor,
        new java.lang.String[] { "TableName", "LogicalPlan", });
    internal_static_greptime_v1_InsertRequests_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_greptime_v1_InsertRequests_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_InsertRequests_descriptor,
        new java.lang.String[] { "Inserts", });
    internal_static_greptime_v1_InsertRequest_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_greptime_v1_InsertRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_InsertRequest_descriptor,
        new java.lang.String[] { "TableName", "Columns", "RowCount", });
    internal_static_greptime_v1_DeleteRequests_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_greptime_v1_DeleteRequests_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DeleteRequests_descriptor,
        new java.lang.String[] { "Deletes", });
    internal_static_greptime_v1_DeleteRequest_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_greptime_v1_DeleteRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DeleteRequest_descriptor,
        new java.lang.String[] { "TableName", "KeyColumns", "RowCount", });
    internal_static_greptime_v1_RowInsertRequests_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_greptime_v1_RowInsertRequests_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_RowInsertRequests_descriptor,
        new java.lang.String[] { "Inserts", });
    internal_static_greptime_v1_RowInsertRequest_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_greptime_v1_RowInsertRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_RowInsertRequest_descriptor,
        new java.lang.String[] { "TableName", "Rows", });
    internal_static_greptime_v1_RowDeleteRequests_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_greptime_v1_RowDeleteRequests_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_RowDeleteRequests_descriptor,
        new java.lang.String[] { "Deletes", });
    internal_static_greptime_v1_RowDeleteRequest_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_greptime_v1_RowDeleteRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_RowDeleteRequest_descriptor,
        new java.lang.String[] { "TableName", "Rows", });
    io.greptime.v1.Ddl.getDescriptor();
    io.greptime.v1.Columns.getDescriptor();
    io.greptime.v1.RowData.getDescriptor();
    io.greptime.v1.Prometheus.getDescriptor();
    io.greptime.v1.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
