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

package io.greptime.v1;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code greptime.v1.SemanticType}
   */
  public enum SemanticType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>TAG = 0;</code>
     */
    TAG(0),
    /**
     * <code>FIELD = 1;</code>
     */
    FIELD(1),
    /**
     * <code>TIMESTAMP = 2;</code>
     */
    TIMESTAMP(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>TAG = 0;</code>
     */
    public static final int TAG_VALUE = 0;
    /**
     * <code>FIELD = 1;</code>
     */
    public static final int FIELD_VALUE = 1;
    /**
     * <code>TIMESTAMP = 2;</code>
     */
    public static final int TIMESTAMP_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SemanticType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SemanticType forNumber(int value) {
      switch (value) {
        case 0: return TAG;
        case 1: return FIELD;
        case 2: return TIMESTAMP;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SemanticType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SemanticType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SemanticType>() {
            public SemanticType findValueByNumber(int number) {
              return SemanticType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.greptime.v1.Common.getDescriptor().getEnumTypes().get(0);
    }

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

    public static SemanticType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SemanticType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:greptime.v1.SemanticType)
  }

  /**
   * Protobuf enum {@code greptime.v1.ColumnDataType}
   */
  public enum ColumnDataType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>BOOLEAN = 0;</code>
     */
    BOOLEAN(0),
    /**
     * <code>INT8 = 1;</code>
     */
    INT8(1),
    /**
     * <code>INT16 = 2;</code>
     */
    INT16(2),
    /**
     * <code>INT32 = 3;</code>
     */
    INT32(3),
    /**
     * <code>INT64 = 4;</code>
     */
    INT64(4),
    /**
     * <code>UINT8 = 5;</code>
     */
    UINT8(5),
    /**
     * <code>UINT16 = 6;</code>
     */
    UINT16(6),
    /**
     * <code>UINT32 = 7;</code>
     */
    UINT32(7),
    /**
     * <code>UINT64 = 8;</code>
     */
    UINT64(8),
    /**
     * <code>FLOAT32 = 9;</code>
     */
    FLOAT32(9),
    /**
     * <code>FLOAT64 = 10;</code>
     */
    FLOAT64(10),
    /**
     * <code>BINARY = 11;</code>
     */
    BINARY(11),
    /**
     * <code>STRING = 12;</code>
     */
    STRING(12),
    /**
     * <code>DATE = 13;</code>
     */
    DATE(13),
    /**
     * <code>DATETIME = 14;</code>
     */
    DATETIME(14),
    /**
     * <code>TIMESTAMP_SECOND = 15;</code>
     */
    TIMESTAMP_SECOND(15),
    /**
     * <code>TIMESTAMP_MILLISECOND = 16;</code>
     */
    TIMESTAMP_MILLISECOND(16),
    /**
     * <code>TIMESTAMP_MICROSECOND = 17;</code>
     */
    TIMESTAMP_MICROSECOND(17),
    /**
     * <code>TIMESTAMP_NANOSECOND = 18;</code>
     */
    TIMESTAMP_NANOSECOND(18),
    /**
     * <code>TIME_SECOND = 19;</code>
     */
    TIME_SECOND(19),
    /**
     * <code>TIME_MILLISECOND = 20;</code>
     */
    TIME_MILLISECOND(20),
    /**
     * <code>TIME_MICROSECOND = 21;</code>
     */
    TIME_MICROSECOND(21),
    /**
     * <code>TIME_NANOSECOND = 22;</code>
     */
    TIME_NANOSECOND(22),
    /**
     * <code>INTERVAL_YEAR_MONTH = 23;</code>
     */
    INTERVAL_YEAR_MONTH(23),
    /**
     * <code>INTERVAL_DAY_TIME = 24;</code>
     */
    INTERVAL_DAY_TIME(24),
    /**
     * <code>INTERVAL_MONTH_DAY_NANO = 25;</code>
     */
    INTERVAL_MONTH_DAY_NANO(25),
    /**
     * <code>DECIMAL128 = 30;</code>
     */
    DECIMAL128(30),
    /**
     * <code>JSON = 31;</code>
     */
    JSON(31),
    /**
     * <code>VECTOR = 32;</code>
     */
    VECTOR(32),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>BOOLEAN = 0;</code>
     */
    public static final int BOOLEAN_VALUE = 0;
    /**
     * <code>INT8 = 1;</code>
     */
    public static final int INT8_VALUE = 1;
    /**
     * <code>INT16 = 2;</code>
     */
    public static final int INT16_VALUE = 2;
    /**
     * <code>INT32 = 3;</code>
     */
    public static final int INT32_VALUE = 3;
    /**
     * <code>INT64 = 4;</code>
     */
    public static final int INT64_VALUE = 4;
    /**
     * <code>UINT8 = 5;</code>
     */
    public static final int UINT8_VALUE = 5;
    /**
     * <code>UINT16 = 6;</code>
     */
    public static final int UINT16_VALUE = 6;
    /**
     * <code>UINT32 = 7;</code>
     */
    public static final int UINT32_VALUE = 7;
    /**
     * <code>UINT64 = 8;</code>
     */
    public static final int UINT64_VALUE = 8;
    /**
     * <code>FLOAT32 = 9;</code>
     */
    public static final int FLOAT32_VALUE = 9;
    /**
     * <code>FLOAT64 = 10;</code>
     */
    public static final int FLOAT64_VALUE = 10;
    /**
     * <code>BINARY = 11;</code>
     */
    public static final int BINARY_VALUE = 11;
    /**
     * <code>STRING = 12;</code>
     */
    public static final int STRING_VALUE = 12;
    /**
     * <code>DATE = 13;</code>
     */
    public static final int DATE_VALUE = 13;
    /**
     * <code>DATETIME = 14;</code>
     */
    public static final int DATETIME_VALUE = 14;
    /**
     * <code>TIMESTAMP_SECOND = 15;</code>
     */
    public static final int TIMESTAMP_SECOND_VALUE = 15;
    /**
     * <code>TIMESTAMP_MILLISECOND = 16;</code>
     */
    public static final int TIMESTAMP_MILLISECOND_VALUE = 16;
    /**
     * <code>TIMESTAMP_MICROSECOND = 17;</code>
     */
    public static final int TIMESTAMP_MICROSECOND_VALUE = 17;
    /**
     * <code>TIMESTAMP_NANOSECOND = 18;</code>
     */
    public static final int TIMESTAMP_NANOSECOND_VALUE = 18;
    /**
     * <code>TIME_SECOND = 19;</code>
     */
    public static final int TIME_SECOND_VALUE = 19;
    /**
     * <code>TIME_MILLISECOND = 20;</code>
     */
    public static final int TIME_MILLISECOND_VALUE = 20;
    /**
     * <code>TIME_MICROSECOND = 21;</code>
     */
    public static final int TIME_MICROSECOND_VALUE = 21;
    /**
     * <code>TIME_NANOSECOND = 22;</code>
     */
    public static final int TIME_NANOSECOND_VALUE = 22;
    /**
     * <code>INTERVAL_YEAR_MONTH = 23;</code>
     */
    public static final int INTERVAL_YEAR_MONTH_VALUE = 23;
    /**
     * <code>INTERVAL_DAY_TIME = 24;</code>
     */
    public static final int INTERVAL_DAY_TIME_VALUE = 24;
    /**
     * <code>INTERVAL_MONTH_DAY_NANO = 25;</code>
     */
    public static final int INTERVAL_MONTH_DAY_NANO_VALUE = 25;
    /**
     * <code>DECIMAL128 = 30;</code>
     */
    public static final int DECIMAL128_VALUE = 30;
    /**
     * <code>JSON = 31;</code>
     */
    public static final int JSON_VALUE = 31;
    /**
     * <code>VECTOR = 32;</code>
     */
    public static final int VECTOR_VALUE = 32;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ColumnDataType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ColumnDataType forNumber(int value) {
      switch (value) {
        case 0: return BOOLEAN;
        case 1: return INT8;
        case 2: return INT16;
        case 3: return INT32;
        case 4: return INT64;
        case 5: return UINT8;
        case 6: return UINT16;
        case 7: return UINT32;
        case 8: return UINT64;
        case 9: return FLOAT32;
        case 10: return FLOAT64;
        case 11: return BINARY;
        case 12: return STRING;
        case 13: return DATE;
        case 14: return DATETIME;
        case 15: return TIMESTAMP_SECOND;
        case 16: return TIMESTAMP_MILLISECOND;
        case 17: return TIMESTAMP_MICROSECOND;
        case 18: return TIMESTAMP_NANOSECOND;
        case 19: return TIME_SECOND;
        case 20: return TIME_MILLISECOND;
        case 21: return TIME_MICROSECOND;
        case 22: return TIME_NANOSECOND;
        case 23: return INTERVAL_YEAR_MONTH;
        case 24: return INTERVAL_DAY_TIME;
        case 25: return INTERVAL_MONTH_DAY_NANO;
        case 30: return DECIMAL128;
        case 31: return JSON;
        case 32: return VECTOR;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ColumnDataType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ColumnDataType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ColumnDataType>() {
            public ColumnDataType findValueByNumber(int number) {
              return ColumnDataType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.greptime.v1.Common.getDescriptor().getEnumTypes().get(1);
    }

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

    public static ColumnDataType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ColumnDataType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:greptime.v1.ColumnDataType)
  }

  /**
   * Protobuf enum {@code greptime.v1.JsonTypeExtension}
   */
  public enum JsonTypeExtension
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>JSON_BINARY = 0;</code>
     */
    JSON_BINARY(0),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>JSON_BINARY = 0;</code>
     */
    public static final int JSON_BINARY_VALUE = 0;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static JsonTypeExtension valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static JsonTypeExtension forNumber(int value) {
      switch (value) {
        case 0: return JSON_BINARY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<JsonTypeExtension>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        JsonTypeExtension> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<JsonTypeExtension>() {
            public JsonTypeExtension findValueByNumber(int number) {
              return JsonTypeExtension.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.greptime.v1.Common.getDescriptor().getEnumTypes().get(2);
    }

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

    public static JsonTypeExtension valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private JsonTypeExtension(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:greptime.v1.JsonTypeExtension)
  }

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

    /**
     * <code>string current_catalog = 1;</code>
     * @return The currentCatalog.
     */
    java.lang.String getCurrentCatalog();
    /**
     * <code>string current_catalog = 1;</code>
     * @return The bytes for currentCatalog.
     */
    com.google.protobuf.ByteString
        getCurrentCatalogBytes();

    /**
     * <code>string current_schema = 2;</code>
     * @return The currentSchema.
     */
    java.lang.String getCurrentSchema();
    /**
     * <code>string current_schema = 2;</code>
     * @return The bytes for currentSchema.
     */
    com.google.protobuf.ByteString
        getCurrentSchemaBytes();

    /**
     * <code>string timezone = 4;</code>
     * @return The timezone.
     */
    java.lang.String getTimezone();
    /**
     * <code>string timezone = 4;</code>
     * @return The bytes for timezone.
     */
    com.google.protobuf.ByteString
        getTimezoneBytes();

    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */
    int getExtensionsCount();
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */
    boolean containsExtensions(
        java.lang.String key);
    /**
     * Use {@link #getExtensionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getExtensions();
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getExtensionsMap();
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */

    /* nullable */
java.lang.String getExtensionsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */

    java.lang.String getExtensionsOrThrow(
        java.lang.String key);

    /**
     * <code>uint32 channel = 6;</code>
     * @return The channel.
     */
    int getChannel();

    /**
     * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
     * @return Whether the snapshotSeqs field is set.
     */
    boolean hasSnapshotSeqs();
    /**
     * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
     * @return The snapshotSeqs.
     */
    io.greptime.v1.Common.SnapshotSequences getSnapshotSeqs();
    /**
     * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
     */
    io.greptime.v1.Common.SnapshotSequencesOrBuilder getSnapshotSeqsOrBuilder();

    /**
     * <pre>
     * Explain options for the query.
     * </pre>
     *
     * <code>.greptime.v1.ExplainOptions explain = 8;</code>
     * @return Whether the explain field is set.
     */
    boolean hasExplain();
    /**
     * <pre>
     * Explain options for the query.
     * </pre>
     *
     * <code>.greptime.v1.ExplainOptions explain = 8;</code>
     * @return The explain.
     */
    io.greptime.v1.Common.ExplainOptions getExplain();
    /**
     * <pre>
     * Explain options for the query.
     * </pre>
     *
     * <code>.greptime.v1.ExplainOptions explain = 8;</code>
     */
    io.greptime.v1.Common.ExplainOptionsOrBuilder getExplainOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.QueryContext}
   */
  public static final class QueryContext extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.QueryContext)
      QueryContextOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use QueryContext.newBuilder() to construct.
    private QueryContext(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private QueryContext() {
      currentCatalog_ = "";
      currentSchema_ = "";
      timezone_ = "";
    }

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

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

              currentCatalog_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              currentSchema_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              timezone_ = s;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                extensions_ = com.google.protobuf.MapField.newMapField(
                    ExtensionsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              extensions__ = input.readMessage(
                  ExtensionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              extensions_.getMutableMap().put(
                  extensions__.getKey(), extensions__.getValue());
              break;
            }
            case 48: {

              channel_ = input.readUInt32();
              break;
            }
            case 58: {
              io.greptime.v1.Common.SnapshotSequences.Builder subBuilder = null;
              if (snapshotSeqs_ != null) {
                subBuilder = snapshotSeqs_.toBuilder();
              }
              snapshotSeqs_ = input.readMessage(io.greptime.v1.Common.SnapshotSequences.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(snapshotSeqs_);
                snapshotSeqs_ = subBuilder.buildPartial();
              }

              break;
            }
            case 66: {
              io.greptime.v1.Common.ExplainOptions.Builder subBuilder = null;
              if (explain_ != null) {
                subBuilder = explain_.toBuilder();
              }
              explain_ = input.readMessage(io.greptime.v1.Common.ExplainOptions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(explain_);
                explain_ = 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.Common.internal_static_greptime_v1_QueryContext_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 5:
          return internalGetExtensions();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Common.internal_static_greptime_v1_QueryContext_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Common.QueryContext.class, io.greptime.v1.Common.QueryContext.Builder.class);
    }

    public static final int CURRENT_CATALOG_FIELD_NUMBER = 1;
    private volatile java.lang.Object currentCatalog_;
    /**
     * <code>string current_catalog = 1;</code>
     * @return The currentCatalog.
     */
    @java.lang.Override
    public java.lang.String getCurrentCatalog() {
      java.lang.Object ref = currentCatalog_;
      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();
        currentCatalog_ = s;
        return s;
      }
    }
    /**
     * <code>string current_catalog = 1;</code>
     * @return The bytes for currentCatalog.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCurrentCatalogBytes() {
      java.lang.Object ref = currentCatalog_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        currentCatalog_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CURRENT_SCHEMA_FIELD_NUMBER = 2;
    private volatile java.lang.Object currentSchema_;
    /**
     * <code>string current_schema = 2;</code>
     * @return The currentSchema.
     */
    @java.lang.Override
    public java.lang.String getCurrentSchema() {
      java.lang.Object ref = currentSchema_;
      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();
        currentSchema_ = s;
        return s;
      }
    }
    /**
     * <code>string current_schema = 2;</code>
     * @return The bytes for currentSchema.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCurrentSchemaBytes() {
      java.lang.Object ref = currentSchema_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        currentSchema_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMEZONE_FIELD_NUMBER = 4;
    private volatile java.lang.Object timezone_;
    /**
     * <code>string timezone = 4;</code>
     * @return The timezone.
     */
    @java.lang.Override
    public java.lang.String getTimezone() {
      java.lang.Object ref = timezone_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        timezone_ = s;
        return s;
      }
    }
    /**
     * <code>string timezone = 4;</code>
     * @return The bytes for timezone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimezoneBytes() {
      java.lang.Object ref = timezone_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timezone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXTENSIONS_FIELD_NUMBER = 5;
    private static final class ExtensionsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  io.greptime.v1.Common.internal_static_greptime_v1_QueryContext_ExtensionsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> extensions_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetExtensions() {
      if (extensions_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            ExtensionsDefaultEntryHolder.defaultEntry);
      }
      return extensions_;
    }

    public int getExtensionsCount() {
      return internalGetExtensions().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */

    @java.lang.Override
    public boolean containsExtensions(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetExtensions().getMap().containsKey(key);
    }
    /**
     * Use {@link #getExtensionsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getExtensions() {
      return getExtensionsMap();
    }
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.String> getExtensionsMap() {
      return internalGetExtensions().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */
    @java.lang.Override

    public java.lang.String getExtensionsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetExtensions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; extensions = 5;</code>
     */
    @java.lang.Override

    public java.lang.String getExtensionsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetExtensions().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int CHANNEL_FIELD_NUMBER = 6;
    private int channel_;
    /**
     * <code>uint32 channel = 6;</code>
     * @return The channel.
     */
    @java.lang.Override
    public int getChannel() {
      return channel_;
    }

    public static final int SNAPSHOT_SEQS_FIELD_NUMBER = 7;
    private io.greptime.v1.Common.SnapshotSequences snapshotSeqs_;
    /**
     * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
     * @return Whether the snapshotSeqs field is set.
     */
    @java.lang.Override
    public boolean hasSnapshotSeqs() {
      return snapshotSeqs_ != null;
    }
    /**
     * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
     * @return The snapshotSeqs.
     */
    @java.lang.Override
    public io.greptime.v1.Common.SnapshotSequences getSnapshotSeqs() {
      return snapshotSeqs_ == null ? io.greptime.v1.Common.SnapshotSequences.getDefaultInstance() : snapshotSeqs_;
    }
    /**
     * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.SnapshotSequencesOrBuilder getSnapshotSeqsOrBuilder() {
      return getSnapshotSeqs();
    }

    public static final int EXPLAIN_FIELD_NUMBER = 8;
    private io.greptime.v1.Common.ExplainOptions explain_;
    /**
     * <pre>
     * Explain options for the query.
     * </pre>
     *
     * <code>.greptime.v1.ExplainOptions explain = 8;</code>
     * @return Whether the explain field is set.
     */
    @java.lang.Override
    public boolean hasExplain() {
      return explain_ != null;
    }
    /**
     * <pre>
     * Explain options for the query.
     * </pre>
     *
     * <code>.greptime.v1.ExplainOptions explain = 8;</code>
     * @return The explain.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ExplainOptions getExplain() {
      return explain_ == null ? io.greptime.v1.Common.ExplainOptions.getDefaultInstance() : explain_;
    }
    /**
     * <pre>
     * Explain options for the query.
     * </pre>
     *
     * <code>.greptime.v1.ExplainOptions explain = 8;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ExplainOptionsOrBuilder getExplainOrBuilder() {
      return getExplain();
    }

    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(currentCatalog_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, currentCatalog_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(currentSchema_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, currentSchema_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timezone_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, timezone_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetExtensions(),
          ExtensionsDefaultEntryHolder.defaultEntry,
          5);
      if (channel_ != 0) {
        output.writeUInt32(6, channel_);
      }
      if (snapshotSeqs_ != null) {
        output.writeMessage(7, getSnapshotSeqs());
      }
      if (explain_ != null) {
        output.writeMessage(8, getExplain());
      }
      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(currentCatalog_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, currentCatalog_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(currentSchema_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, currentSchema_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timezone_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, timezone_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetExtensions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        extensions__ = ExtensionsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, extensions__);
      }
      if (channel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, channel_);
      }
      if (snapshotSeqs_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getSnapshotSeqs());
      }
      if (explain_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getExplain());
      }
      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.Common.QueryContext)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.QueryContext other = (io.greptime.v1.Common.QueryContext) obj;

      if (!getCurrentCatalog()
          .equals(other.getCurrentCatalog())) return false;
      if (!getCurrentSchema()
          .equals(other.getCurrentSchema())) return false;
      if (!getTimezone()
          .equals(other.getTimezone())) return false;
      if (!internalGetExtensions().equals(
          other.internalGetExtensions())) return false;
      if (getChannel()
          != other.getChannel()) return false;
      if (hasSnapshotSeqs() != other.hasSnapshotSeqs()) return false;
      if (hasSnapshotSeqs()) {
        if (!getSnapshotSeqs()
            .equals(other.getSnapshotSeqs())) return false;
      }
      if (hasExplain() != other.hasExplain()) return false;
      if (hasExplain()) {
        if (!getExplain()
            .equals(other.getExplain())) 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) + CURRENT_CATALOG_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentCatalog().hashCode();
      hash = (37 * hash) + CURRENT_SCHEMA_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentSchema().hashCode();
      hash = (37 * hash) + TIMEZONE_FIELD_NUMBER;
      hash = (53 * hash) + getTimezone().hashCode();
      if (!internalGetExtensions().getMap().isEmpty()) {
        hash = (37 * hash) + EXTENSIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetExtensions().hashCode();
      }
      hash = (37 * hash) + CHANNEL_FIELD_NUMBER;
      hash = (53 * hash) + getChannel();
      if (hasSnapshotSeqs()) {
        hash = (37 * hash) + SNAPSHOT_SEQS_FIELD_NUMBER;
        hash = (53 * hash) + getSnapshotSeqs().hashCode();
      }
      if (hasExplain()) {
        hash = (37 * hash) + EXPLAIN_FIELD_NUMBER;
        hash = (53 * hash) + getExplain().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 5:
            return internalGetExtensions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 5:
            return internalGetMutableExtensions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Common.internal_static_greptime_v1_QueryContext_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Common.QueryContext.class, io.greptime.v1.Common.QueryContext.Builder.class);
      }

      // Construct using io.greptime.v1.Common.QueryContext.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();
        currentCatalog_ = "";

        currentSchema_ = "";

        timezone_ = "";

        internalGetMutableExtensions().clear();
        channel_ = 0;

        if (snapshotSeqsBuilder_ == null) {
          snapshotSeqs_ = null;
        } else {
          snapshotSeqs_ = null;
          snapshotSeqsBuilder_ = null;
        }
        if (explainBuilder_ == null) {
          explain_ = null;
        } else {
          explain_ = null;
          explainBuilder_ = null;
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.QueryContext buildPartial() {
        io.greptime.v1.Common.QueryContext result = new io.greptime.v1.Common.QueryContext(this);
        int from_bitField0_ = bitField0_;
        result.currentCatalog_ = currentCatalog_;
        result.currentSchema_ = currentSchema_;
        result.timezone_ = timezone_;
        result.extensions_ = internalGetExtensions();
        result.extensions_.makeImmutable();
        result.channel_ = channel_;
        if (snapshotSeqsBuilder_ == null) {
          result.snapshotSeqs_ = snapshotSeqs_;
        } else {
          result.snapshotSeqs_ = snapshotSeqsBuilder_.build();
        }
        if (explainBuilder_ == null) {
          result.explain_ = explain_;
        } else {
          result.explain_ = explainBuilder_.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.Common.QueryContext) {
          return mergeFrom((io.greptime.v1.Common.QueryContext)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.QueryContext other) {
        if (other == io.greptime.v1.Common.QueryContext.getDefaultInstance()) return this;
        if (!other.getCurrentCatalog().isEmpty()) {
          currentCatalog_ = other.currentCatalog_;
          onChanged();
        }
        if (!other.getCurrentSchema().isEmpty()) {
          currentSchema_ = other.currentSchema_;
          onChanged();
        }
        if (!other.getTimezone().isEmpty()) {
          timezone_ = other.timezone_;
          onChanged();
        }
        internalGetMutableExtensions().mergeFrom(
            other.internalGetExtensions());
        if (other.getChannel() != 0) {
          setChannel(other.getChannel());
        }
        if (other.hasSnapshotSeqs()) {
          mergeSnapshotSeqs(other.getSnapshotSeqs());
        }
        if (other.hasExplain()) {
          mergeExplain(other.getExplain());
        }
        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.Common.QueryContext parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.QueryContext) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object currentCatalog_ = "";
      /**
       * <code>string current_catalog = 1;</code>
       * @return The currentCatalog.
       */
      public java.lang.String getCurrentCatalog() {
        java.lang.Object ref = currentCatalog_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          currentCatalog_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string current_catalog = 1;</code>
       * @return The bytes for currentCatalog.
       */
      public com.google.protobuf.ByteString
          getCurrentCatalogBytes() {
        java.lang.Object ref = currentCatalog_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          currentCatalog_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string current_catalog = 1;</code>
       * @param value The currentCatalog to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentCatalog(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        currentCatalog_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string current_catalog = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentCatalog() {
        
        currentCatalog_ = getDefaultInstance().getCurrentCatalog();
        onChanged();
        return this;
      }
      /**
       * <code>string current_catalog = 1;</code>
       * @param value The bytes for currentCatalog to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentCatalogBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        currentCatalog_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object currentSchema_ = "";
      /**
       * <code>string current_schema = 2;</code>
       * @return The currentSchema.
       */
      public java.lang.String getCurrentSchema() {
        java.lang.Object ref = currentSchema_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          currentSchema_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string current_schema = 2;</code>
       * @return The bytes for currentSchema.
       */
      public com.google.protobuf.ByteString
          getCurrentSchemaBytes() {
        java.lang.Object ref = currentSchema_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          currentSchema_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string current_schema = 2;</code>
       * @param value The currentSchema to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentSchema(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        currentSchema_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string current_schema = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentSchema() {
        
        currentSchema_ = getDefaultInstance().getCurrentSchema();
        onChanged();
        return this;
      }
      /**
       * <code>string current_schema = 2;</code>
       * @param value The bytes for currentSchema to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentSchemaBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        currentSchema_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object timezone_ = "";
      /**
       * <code>string timezone = 4;</code>
       * @return The timezone.
       */
      public java.lang.String getTimezone() {
        java.lang.Object ref = timezone_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          timezone_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string timezone = 4;</code>
       * @return The bytes for timezone.
       */
      public com.google.protobuf.ByteString
          getTimezoneBytes() {
        java.lang.Object ref = timezone_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timezone_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string timezone = 4;</code>
       * @param value The timezone to set.
       * @return This builder for chaining.
       */
      public Builder setTimezone(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        timezone_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string timezone = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimezone() {
        
        timezone_ = getDefaultInstance().getTimezone();
        onChanged();
        return this;
      }
      /**
       * <code>string timezone = 4;</code>
       * @param value The bytes for timezone to set.
       * @return This builder for chaining.
       */
      public Builder setTimezoneBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        timezone_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> extensions_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetExtensions() {
        if (extensions_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              ExtensionsDefaultEntryHolder.defaultEntry);
        }
        return extensions_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableExtensions() {
        onChanged();;
        if (extensions_ == null) {
          extensions_ = com.google.protobuf.MapField.newMapField(
              ExtensionsDefaultEntryHolder.defaultEntry);
        }
        if (!extensions_.isMutable()) {
          extensions_ = extensions_.copy();
        }
        return extensions_;
      }

      public int getExtensionsCount() {
        return internalGetExtensions().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; extensions = 5;</code>
       */

      @java.lang.Override
      public boolean containsExtensions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetExtensions().getMap().containsKey(key);
      }
      /**
       * Use {@link #getExtensionsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getExtensions() {
        return getExtensionsMap();
      }
      /**
       * <code>map&lt;string, string&gt; extensions = 5;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.String, java.lang.String> getExtensionsMap() {
        return internalGetExtensions().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; extensions = 5;</code>
       */
      @java.lang.Override

      public java.lang.String getExtensionsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetExtensions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; extensions = 5;</code>
       */
      @java.lang.Override

      public java.lang.String getExtensionsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetExtensions().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearExtensions() {
        internalGetMutableExtensions().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; extensions = 5;</code>
       */

      public Builder removeExtensions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableExtensions().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableExtensions() {
        return internalGetMutableExtensions().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; extensions = 5;</code>
       */
      public Builder putExtensions(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableExtensions().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; extensions = 5;</code>
       */

      public Builder putAllExtensions(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableExtensions().getMutableMap()
            .putAll(values);
        return this;
      }

      private int channel_ ;
      /**
       * <code>uint32 channel = 6;</code>
       * @return The channel.
       */
      @java.lang.Override
      public int getChannel() {
        return channel_;
      }
      /**
       * <code>uint32 channel = 6;</code>
       * @param value The channel to set.
       * @return This builder for chaining.
       */
      public Builder setChannel(int value) {
        
        channel_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 channel = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannel() {
        
        channel_ = 0;
        onChanged();
        return this;
      }

      private io.greptime.v1.Common.SnapshotSequences snapshotSeqs_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.SnapshotSequences, io.greptime.v1.Common.SnapshotSequences.Builder, io.greptime.v1.Common.SnapshotSequencesOrBuilder> snapshotSeqsBuilder_;
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       * @return Whether the snapshotSeqs field is set.
       */
      public boolean hasSnapshotSeqs() {
        return snapshotSeqsBuilder_ != null || snapshotSeqs_ != null;
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       * @return The snapshotSeqs.
       */
      public io.greptime.v1.Common.SnapshotSequences getSnapshotSeqs() {
        if (snapshotSeqsBuilder_ == null) {
          return snapshotSeqs_ == null ? io.greptime.v1.Common.SnapshotSequences.getDefaultInstance() : snapshotSeqs_;
        } else {
          return snapshotSeqsBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       */
      public Builder setSnapshotSeqs(io.greptime.v1.Common.SnapshotSequences value) {
        if (snapshotSeqsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          snapshotSeqs_ = value;
          onChanged();
        } else {
          snapshotSeqsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       */
      public Builder setSnapshotSeqs(
          io.greptime.v1.Common.SnapshotSequences.Builder builderForValue) {
        if (snapshotSeqsBuilder_ == null) {
          snapshotSeqs_ = builderForValue.build();
          onChanged();
        } else {
          snapshotSeqsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       */
      public Builder mergeSnapshotSeqs(io.greptime.v1.Common.SnapshotSequences value) {
        if (snapshotSeqsBuilder_ == null) {
          if (snapshotSeqs_ != null) {
            snapshotSeqs_ =
              io.greptime.v1.Common.SnapshotSequences.newBuilder(snapshotSeqs_).mergeFrom(value).buildPartial();
          } else {
            snapshotSeqs_ = value;
          }
          onChanged();
        } else {
          snapshotSeqsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       */
      public Builder clearSnapshotSeqs() {
        if (snapshotSeqsBuilder_ == null) {
          snapshotSeqs_ = null;
          onChanged();
        } else {
          snapshotSeqs_ = null;
          snapshotSeqsBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       */
      public io.greptime.v1.Common.SnapshotSequences.Builder getSnapshotSeqsBuilder() {
        
        onChanged();
        return getSnapshotSeqsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       */
      public io.greptime.v1.Common.SnapshotSequencesOrBuilder getSnapshotSeqsOrBuilder() {
        if (snapshotSeqsBuilder_ != null) {
          return snapshotSeqsBuilder_.getMessageOrBuilder();
        } else {
          return snapshotSeqs_ == null ?
              io.greptime.v1.Common.SnapshotSequences.getDefaultInstance() : snapshotSeqs_;
        }
      }
      /**
       * <code>.greptime.v1.SnapshotSequences snapshot_seqs = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.SnapshotSequences, io.greptime.v1.Common.SnapshotSequences.Builder, io.greptime.v1.Common.SnapshotSequencesOrBuilder> 
          getSnapshotSeqsFieldBuilder() {
        if (snapshotSeqsBuilder_ == null) {
          snapshotSeqsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.SnapshotSequences, io.greptime.v1.Common.SnapshotSequences.Builder, io.greptime.v1.Common.SnapshotSequencesOrBuilder>(
                  getSnapshotSeqs(),
                  getParentForChildren(),
                  isClean());
          snapshotSeqs_ = null;
        }
        return snapshotSeqsBuilder_;
      }

      private io.greptime.v1.Common.ExplainOptions explain_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ExplainOptions, io.greptime.v1.Common.ExplainOptions.Builder, io.greptime.v1.Common.ExplainOptionsOrBuilder> explainBuilder_;
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       * @return Whether the explain field is set.
       */
      public boolean hasExplain() {
        return explainBuilder_ != null || explain_ != null;
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       * @return The explain.
       */
      public io.greptime.v1.Common.ExplainOptions getExplain() {
        if (explainBuilder_ == null) {
          return explain_ == null ? io.greptime.v1.Common.ExplainOptions.getDefaultInstance() : explain_;
        } else {
          return explainBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       */
      public Builder setExplain(io.greptime.v1.Common.ExplainOptions value) {
        if (explainBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          explain_ = value;
          onChanged();
        } else {
          explainBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       */
      public Builder setExplain(
          io.greptime.v1.Common.ExplainOptions.Builder builderForValue) {
        if (explainBuilder_ == null) {
          explain_ = builderForValue.build();
          onChanged();
        } else {
          explainBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       */
      public Builder mergeExplain(io.greptime.v1.Common.ExplainOptions value) {
        if (explainBuilder_ == null) {
          if (explain_ != null) {
            explain_ =
              io.greptime.v1.Common.ExplainOptions.newBuilder(explain_).mergeFrom(value).buildPartial();
          } else {
            explain_ = value;
          }
          onChanged();
        } else {
          explainBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       */
      public Builder clearExplain() {
        if (explainBuilder_ == null) {
          explain_ = null;
          onChanged();
        } else {
          explain_ = null;
          explainBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       */
      public io.greptime.v1.Common.ExplainOptions.Builder getExplainBuilder() {
        
        onChanged();
        return getExplainFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       */
      public io.greptime.v1.Common.ExplainOptionsOrBuilder getExplainOrBuilder() {
        if (explainBuilder_ != null) {
          return explainBuilder_.getMessageOrBuilder();
        } else {
          return explain_ == null ?
              io.greptime.v1.Common.ExplainOptions.getDefaultInstance() : explain_;
        }
      }
      /**
       * <pre>
       * Explain options for the query.
       * </pre>
       *
       * <code>.greptime.v1.ExplainOptions explain = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ExplainOptions, io.greptime.v1.Common.ExplainOptions.Builder, io.greptime.v1.Common.ExplainOptionsOrBuilder> 
          getExplainFieldBuilder() {
        if (explainBuilder_ == null) {
          explainBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ExplainOptions, io.greptime.v1.Common.ExplainOptions.Builder, io.greptime.v1.Common.ExplainOptionsOrBuilder>(
                  getExplain(),
                  getParentForChildren(),
                  isClean());
          explain_ = null;
        }
        return explainBuilder_;
      }
      @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.QueryContext)
    }

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

    public static io.greptime.v1.Common.QueryContext getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */
    int getSstMinSequencesCount();
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */
    boolean containsSstMinSequences(
        long key);
    /**
     * Use {@link #getSstMinSequencesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Long, java.lang.Long>
    getSstMinSequences();
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */
    java.util.Map<java.lang.Long, java.lang.Long>
    getSstMinSequencesMap();
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */

    long getSstMinSequencesOrDefault(
        long key,
        long defaultValue);
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */

    long getSstMinSequencesOrThrow(
        long key);

    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */
    int getSnapshotSeqsCount();
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */
    boolean containsSnapshotSeqs(
        long key);
    /**
     * Use {@link #getSnapshotSeqsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Long, java.lang.Long>
    getSnapshotSeqs();
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */
    java.util.Map<java.lang.Long, java.lang.Long>
    getSnapshotSeqsMap();
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */

    long getSnapshotSeqsOrDefault(
        long key,
        long defaultValue);
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SnapshotSequences(
        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)) {
                sstMinSequences_ = com.google.protobuf.MapField.newMapField(
                    SstMinSequencesDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.Long, java.lang.Long>
              sstMinSequences__ = input.readMessage(
                  SstMinSequencesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              sstMinSequences_.getMutableMap().put(
                  sstMinSequences__.getKey(), sstMinSequences__.getValue());
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                snapshotSeqs_ = com.google.protobuf.MapField.newMapField(
                    SnapshotSeqsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000002;
              }
              com.google.protobuf.MapEntry<java.lang.Long, java.lang.Long>
              snapshotSeqs__ = input.readMessage(
                  SnapshotSeqsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              snapshotSeqs_.getMutableMap().put(
                  snapshotSeqs__.getKey(), snapshotSeqs__.getValue());
              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.Common.internal_static_greptime_v1_SnapshotSequences_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetSstMinSequences();
        case 7:
          return internalGetSnapshotSeqs();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Common.internal_static_greptime_v1_SnapshotSequences_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Common.SnapshotSequences.class, io.greptime.v1.Common.SnapshotSequences.Builder.class);
    }

    public static final int SST_MIN_SEQUENCES_FIELD_NUMBER = 1;
    private static final class SstMinSequencesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Long, java.lang.Long> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Long, java.lang.Long>newDefaultInstance(
                  io.greptime.v1.Common.internal_static_greptime_v1_SnapshotSequences_SstMinSequencesEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.UINT64,
                  0L,
                  com.google.protobuf.WireFormat.FieldType.UINT64,
                  0L);
    }
    private com.google.protobuf.MapField<
        java.lang.Long, java.lang.Long> sstMinSequences_;
    private com.google.protobuf.MapField<java.lang.Long, java.lang.Long>
    internalGetSstMinSequences() {
      if (sstMinSequences_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            SstMinSequencesDefaultEntryHolder.defaultEntry);
      }
      return sstMinSequences_;
    }

    public int getSstMinSequencesCount() {
      return internalGetSstMinSequences().getMap().size();
    }
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */

    @java.lang.Override
    public boolean containsSstMinSequences(
        long key) {
      
      return internalGetSstMinSequences().getMap().containsKey(key);
    }
    /**
     * Use {@link #getSstMinSequencesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.Long, java.lang.Long> getSstMinSequences() {
      return getSstMinSequencesMap();
    }
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.Long, java.lang.Long> getSstMinSequencesMap() {
      return internalGetSstMinSequences().getMap();
    }
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */
    @java.lang.Override

    public long getSstMinSequencesOrDefault(
        long key,
        long defaultValue) {
      
      java.util.Map<java.lang.Long, java.lang.Long> map =
          internalGetSstMinSequences().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Mappings of the RegionId to the minimal sequence of SST file to scan.
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
     */
    @java.lang.Override

    public long getSstMinSequencesOrThrow(
        long key) {
      
      java.util.Map<java.lang.Long, java.lang.Long> map =
          internalGetSstMinSequences().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int SNAPSHOT_SEQS_FIELD_NUMBER = 7;
    private static final class SnapshotSeqsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Long, java.lang.Long> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Long, java.lang.Long>newDefaultInstance(
                  io.greptime.v1.Common.internal_static_greptime_v1_SnapshotSequences_SnapshotSeqsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.UINT64,
                  0L,
                  com.google.protobuf.WireFormat.FieldType.UINT64,
                  0L);
    }
    private com.google.protobuf.MapField<
        java.lang.Long, java.lang.Long> snapshotSeqs_;
    private com.google.protobuf.MapField<java.lang.Long, java.lang.Long>
    internalGetSnapshotSeqs() {
      if (snapshotSeqs_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            SnapshotSeqsDefaultEntryHolder.defaultEntry);
      }
      return snapshotSeqs_;
    }

    public int getSnapshotSeqsCount() {
      return internalGetSnapshotSeqs().getMap().size();
    }
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */

    @java.lang.Override
    public boolean containsSnapshotSeqs(
        long key) {
      
      return internalGetSnapshotSeqs().getMap().containsKey(key);
    }
    /**
     * Use {@link #getSnapshotSeqsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.Long, java.lang.Long> getSnapshotSeqs() {
      return getSnapshotSeqsMap();
    }
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.Long, java.lang.Long> getSnapshotSeqsMap() {
      return internalGetSnapshotSeqs().getMap();
    }
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */
    @java.lang.Override

    public long getSnapshotSeqsOrDefault(
        long key,
        long defaultValue) {
      
      java.util.Map<java.lang.Long, java.lang.Long> map =
          internalGetSnapshotSeqs().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
     * read should only container data that was committed before (and include) the
     * given sequence number
     * </pre>
     *
     * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
     */
    @java.lang.Override

    public long getSnapshotSeqsOrThrow(
        long key) {
      
      java.util.Map<java.lang.Long, java.lang.Long> map =
          internalGetSnapshotSeqs().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    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 {
      com.google.protobuf.GeneratedMessageV3
        .serializeLongMapTo(
          output,
          internalGetSstMinSequences(),
          SstMinSequencesDefaultEntryHolder.defaultEntry,
          1);
      com.google.protobuf.GeneratedMessageV3
        .serializeLongMapTo(
          output,
          internalGetSnapshotSeqs(),
          SnapshotSeqsDefaultEntryHolder.defaultEntry,
          7);
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (java.util.Map.Entry<java.lang.Long, java.lang.Long> entry
           : internalGetSstMinSequences().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Long, java.lang.Long>
        sstMinSequences__ = SstMinSequencesDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, sstMinSequences__);
      }
      for (java.util.Map.Entry<java.lang.Long, java.lang.Long> entry
           : internalGetSnapshotSeqs().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Long, java.lang.Long>
        snapshotSeqs__ = SnapshotSeqsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, snapshotSeqs__);
      }
      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.Common.SnapshotSequences)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.SnapshotSequences other = (io.greptime.v1.Common.SnapshotSequences) obj;

      if (!internalGetSstMinSequences().equals(
          other.internalGetSstMinSequences())) return false;
      if (!internalGetSnapshotSeqs().equals(
          other.internalGetSnapshotSeqs())) 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 (!internalGetSstMinSequences().getMap().isEmpty()) {
        hash = (37 * hash) + SST_MIN_SEQUENCES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSstMinSequences().hashCode();
      }
      if (!internalGetSnapshotSeqs().getMap().isEmpty()) {
        hash = (37 * hash) + SNAPSHOT_SEQS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSnapshotSeqs().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetSstMinSequences();
          case 7:
            return internalGetSnapshotSeqs();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableSstMinSequences();
          case 7:
            return internalGetMutableSnapshotSeqs();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Common.internal_static_greptime_v1_SnapshotSequences_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Common.SnapshotSequences.class, io.greptime.v1.Common.SnapshotSequences.Builder.class);
      }

      // Construct using io.greptime.v1.Common.SnapshotSequences.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();
        internalGetMutableSstMinSequences().clear();
        internalGetMutableSnapshotSeqs().clear();
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.SnapshotSequences buildPartial() {
        io.greptime.v1.Common.SnapshotSequences result = new io.greptime.v1.Common.SnapshotSequences(this);
        int from_bitField0_ = bitField0_;
        result.sstMinSequences_ = internalGetSstMinSequences();
        result.sstMinSequences_.makeImmutable();
        result.snapshotSeqs_ = internalGetSnapshotSeqs();
        result.snapshotSeqs_.makeImmutable();
        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.Common.SnapshotSequences) {
          return mergeFrom((io.greptime.v1.Common.SnapshotSequences)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.SnapshotSequences other) {
        if (other == io.greptime.v1.Common.SnapshotSequences.getDefaultInstance()) return this;
        internalGetMutableSstMinSequences().mergeFrom(
            other.internalGetSstMinSequences());
        internalGetMutableSnapshotSeqs().mergeFrom(
            other.internalGetSnapshotSeqs());
        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.Common.SnapshotSequences parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.SnapshotSequences) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.MapField<
          java.lang.Long, java.lang.Long> sstMinSequences_;
      private com.google.protobuf.MapField<java.lang.Long, java.lang.Long>
      internalGetSstMinSequences() {
        if (sstMinSequences_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SstMinSequencesDefaultEntryHolder.defaultEntry);
        }
        return sstMinSequences_;
      }
      private com.google.protobuf.MapField<java.lang.Long, java.lang.Long>
      internalGetMutableSstMinSequences() {
        onChanged();;
        if (sstMinSequences_ == null) {
          sstMinSequences_ = com.google.protobuf.MapField.newMapField(
              SstMinSequencesDefaultEntryHolder.defaultEntry);
        }
        if (!sstMinSequences_.isMutable()) {
          sstMinSequences_ = sstMinSequences_.copy();
        }
        return sstMinSequences_;
      }

      public int getSstMinSequencesCount() {
        return internalGetSstMinSequences().getMap().size();
      }
      /**
       * <pre>
       * Mappings of the RegionId to the minimal sequence of SST file to scan.
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
       */

      @java.lang.Override
      public boolean containsSstMinSequences(
          long key) {
        
        return internalGetSstMinSequences().getMap().containsKey(key);
      }
      /**
       * Use {@link #getSstMinSequencesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.Long, java.lang.Long> getSstMinSequences() {
        return getSstMinSequencesMap();
      }
      /**
       * <pre>
       * Mappings of the RegionId to the minimal sequence of SST file to scan.
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.Long, java.lang.Long> getSstMinSequencesMap() {
        return internalGetSstMinSequences().getMap();
      }
      /**
       * <pre>
       * Mappings of the RegionId to the minimal sequence of SST file to scan.
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
       */
      @java.lang.Override

      public long getSstMinSequencesOrDefault(
          long key,
          long defaultValue) {
        
        java.util.Map<java.lang.Long, java.lang.Long> map =
            internalGetSstMinSequences().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Mappings of the RegionId to the minimal sequence of SST file to scan.
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
       */
      @java.lang.Override

      public long getSstMinSequencesOrThrow(
          long key) {
        
        java.util.Map<java.lang.Long, java.lang.Long> map =
            internalGetSstMinSequences().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearSstMinSequences() {
        internalGetMutableSstMinSequences().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * Mappings of the RegionId to the minimal sequence of SST file to scan.
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
       */

      public Builder removeSstMinSequences(
          long key) {
        
        internalGetMutableSstMinSequences().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Long, java.lang.Long>
      getMutableSstMinSequences() {
        return internalGetMutableSstMinSequences().getMutableMap();
      }
      /**
       * <pre>
       * Mappings of the RegionId to the minimal sequence of SST file to scan.
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
       */
      public Builder putSstMinSequences(
          long key,
          long value) {
        
        
        internalGetMutableSstMinSequences().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * Mappings of the RegionId to the minimal sequence of SST file to scan.
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; sst_min_sequences = 1;</code>
       */

      public Builder putAllSstMinSequences(
          java.util.Map<java.lang.Long, java.lang.Long> values) {
        internalGetMutableSstMinSequences().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Long, java.lang.Long> snapshotSeqs_;
      private com.google.protobuf.MapField<java.lang.Long, java.lang.Long>
      internalGetSnapshotSeqs() {
        if (snapshotSeqs_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SnapshotSeqsDefaultEntryHolder.defaultEntry);
        }
        return snapshotSeqs_;
      }
      private com.google.protobuf.MapField<java.lang.Long, java.lang.Long>
      internalGetMutableSnapshotSeqs() {
        onChanged();;
        if (snapshotSeqs_ == null) {
          snapshotSeqs_ = com.google.protobuf.MapField.newMapField(
              SnapshotSeqsDefaultEntryHolder.defaultEntry);
        }
        if (!snapshotSeqs_.isMutable()) {
          snapshotSeqs_ = snapshotSeqs_.copy();
        }
        return snapshotSeqs_;
      }

      public int getSnapshotSeqsCount() {
        return internalGetSnapshotSeqs().getMap().size();
      }
      /**
       * <pre>
       * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
       * read should only container data that was committed before (and include) the
       * given sequence number
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
       */

      @java.lang.Override
      public boolean containsSnapshotSeqs(
          long key) {
        
        return internalGetSnapshotSeqs().getMap().containsKey(key);
      }
      /**
       * Use {@link #getSnapshotSeqsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.Long, java.lang.Long> getSnapshotSeqs() {
        return getSnapshotSeqsMap();
      }
      /**
       * <pre>
       * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
       * read should only container data that was committed before (and include) the
       * given sequence number
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.Long, java.lang.Long> getSnapshotSeqsMap() {
        return internalGetSnapshotSeqs().getMap();
      }
      /**
       * <pre>
       * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
       * read should only container data that was committed before (and include) the
       * given sequence number
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
       */
      @java.lang.Override

      public long getSnapshotSeqsOrDefault(
          long key,
          long defaultValue) {
        
        java.util.Map<java.lang.Long, java.lang.Long> map =
            internalGetSnapshotSeqs().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
       * read should only container data that was committed before (and include) the
       * given sequence number
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
       */
      @java.lang.Override

      public long getSnapshotSeqsOrThrow(
          long key) {
        
        java.util.Map<java.lang.Long, java.lang.Long> map =
            internalGetSnapshotSeqs().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearSnapshotSeqs() {
        internalGetMutableSnapshotSeqs().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
       * read should only container data that was committed before (and include) the
       * given sequence number
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
       */

      public Builder removeSnapshotSeqs(
          long key) {
        
        internalGetMutableSnapshotSeqs().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Long, java.lang.Long>
      getMutableSnapshotSeqs() {
        return internalGetMutableSnapshotSeqs().getMutableMap();
      }
      /**
       * <pre>
       * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
       * read should only container data that was committed before (and include) the
       * given sequence number
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
       */
      public Builder putSnapshotSeqs(
          long key,
          long value) {
        
        
        internalGetMutableSnapshotSeqs().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
       * read should only container data that was committed before (and include) the
       * given sequence number
       * </pre>
       *
       * <code>map&lt;uint64, uint64&gt; snapshot_seqs = 7;</code>
       */

      public Builder putAllSnapshotSeqs(
          java.util.Map<java.lang.Long, java.lang.Long> values) {
        internalGetMutableSnapshotSeqs().getMutableMap()
            .putAll(values);
        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.SnapshotSequences)
    }

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

    public static io.greptime.v1.Common.SnapshotSequences getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <pre>
     * Whether to enable verbose explain output.
     * </pre>
     *
     * <code>bool verbose = 1;</code>
     * @return The verbose.
     */
    boolean getVerbose();
  }
  /**
   * Protobuf type {@code greptime.v1.ExplainOptions}
   */
  public static final class ExplainOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ExplainOptions)
      ExplainOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExplainOptions.newBuilder() to construct.
    private ExplainOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExplainOptions() {
    }

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

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

              verbose_ = input.readBool();
              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.Common.internal_static_greptime_v1_ExplainOptions_descriptor;
    }

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

    public static final int VERBOSE_FIELD_NUMBER = 1;
    private boolean verbose_;
    /**
     * <pre>
     * Whether to enable verbose explain output.
     * </pre>
     *
     * <code>bool verbose = 1;</code>
     * @return The verbose.
     */
    @java.lang.Override
    public boolean getVerbose() {
      return verbose_;
    }

    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 (verbose_ != false) {
        output.writeBool(1, verbose_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (verbose_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, verbose_);
      }
      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.Common.ExplainOptions)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.ExplainOptions other = (io.greptime.v1.Common.ExplainOptions) obj;

      if (getVerbose()
          != other.getVerbose()) 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) + VERBOSE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getVerbose());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.ExplainOptions.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();
        verbose_ = false;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.ExplainOptions buildPartial() {
        io.greptime.v1.Common.ExplainOptions result = new io.greptime.v1.Common.ExplainOptions(this);
        result.verbose_ = verbose_;
        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.Common.ExplainOptions) {
          return mergeFrom((io.greptime.v1.Common.ExplainOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.ExplainOptions other) {
        if (other == io.greptime.v1.Common.ExplainOptions.getDefaultInstance()) return this;
        if (other.getVerbose() != false) {
          setVerbose(other.getVerbose());
        }
        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.Common.ExplainOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.ExplainOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private boolean verbose_ ;
      /**
       * <pre>
       * Whether to enable verbose explain output.
       * </pre>
       *
       * <code>bool verbose = 1;</code>
       * @return The verbose.
       */
      @java.lang.Override
      public boolean getVerbose() {
        return verbose_;
      }
      /**
       * <pre>
       * Whether to enable verbose explain output.
       * </pre>
       *
       * <code>bool verbose = 1;</code>
       * @param value The verbose to set.
       * @return This builder for chaining.
       */
      public Builder setVerbose(boolean value) {
        
        verbose_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Whether to enable verbose explain output.
       * </pre>
       *
       * <code>bool verbose = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerbose() {
        
        verbose_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static io.greptime.v1.Common.ExplainOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <pre>
     * The `catalog` that is selected to be used in this request.
     * </pre>
     *
     * <code>string catalog = 1;</code>
     * @return The catalog.
     */
    java.lang.String getCatalog();
    /**
     * <pre>
     * The `catalog` that is selected to be used in this request.
     * </pre>
     *
     * <code>string catalog = 1;</code>
     * @return The bytes for catalog.
     */
    com.google.protobuf.ByteString
        getCatalogBytes();

    /**
     * <pre>
     * The `schema` that is selected to be used in this request.
     * </pre>
     *
     * <code>string schema = 2;</code>
     * @return The schema.
     */
    java.lang.String getSchema();
    /**
     * <pre>
     * The `schema` that is selected to be used in this request.
     * </pre>
     *
     * <code>string schema = 2;</code>
     * @return The bytes for schema.
     */
    com.google.protobuf.ByteString
        getSchemaBytes();

    /**
     * <pre>
     * The `authorization` header, much like http's authorization header.
     * </pre>
     *
     * <code>.greptime.v1.AuthHeader authorization = 3;</code>
     * @return Whether the authorization field is set.
     */
    boolean hasAuthorization();
    /**
     * <pre>
     * The `authorization` header, much like http's authorization header.
     * </pre>
     *
     * <code>.greptime.v1.AuthHeader authorization = 3;</code>
     * @return The authorization.
     */
    io.greptime.v1.Common.AuthHeader getAuthorization();
    /**
     * <pre>
     * The `authorization` header, much like http's authorization header.
     * </pre>
     *
     * <code>.greptime.v1.AuthHeader authorization = 3;</code>
     */
    io.greptime.v1.Common.AuthHeaderOrBuilder getAuthorizationOrBuilder();

    /**
     * <pre>
     * The `dbname` for the request
     * </pre>
     *
     * <code>string dbname = 4;</code>
     * @return The dbname.
     */
    java.lang.String getDbname();
    /**
     * <pre>
     * The `dbname` for the request
     * </pre>
     *
     * <code>string dbname = 4;</code>
     * @return The bytes for dbname.
     */
    com.google.protobuf.ByteString
        getDbnameBytes();

    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */
    int getTracingContextCount();
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */
    boolean containsTracingContext(
        java.lang.String key);
    /**
     * Use {@link #getTracingContextMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getTracingContext();
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getTracingContextMap();
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */

    /* nullable */
java.lang.String getTracingContextOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */

    java.lang.String getTracingContextOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * The `timezone` for the request
     * </pre>
     *
     * <code>string timezone = 6;</code>
     * @return The timezone.
     */
    java.lang.String getTimezone();
    /**
     * <pre>
     * The `timezone` for the request
     * </pre>
     *
     * <code>string timezone = 6;</code>
     * @return The bytes for timezone.
     */
    com.google.protobuf.ByteString
        getTimezoneBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.RequestHeader}
   */
  public static final class RequestHeader extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.RequestHeader)
      RequestHeaderOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RequestHeader.newBuilder() to construct.
    private RequestHeader(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RequestHeader() {
      catalog_ = "";
      schema_ = "";
      dbname_ = "";
      timezone_ = "";
    }

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

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

              catalog_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              schema_ = s;
              break;
            }
            case 26: {
              io.greptime.v1.Common.AuthHeader.Builder subBuilder = null;
              if (authorization_ != null) {
                subBuilder = authorization_.toBuilder();
              }
              authorization_ = input.readMessage(io.greptime.v1.Common.AuthHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(authorization_);
                authorization_ = subBuilder.buildPartial();
              }

              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              dbname_ = s;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                tracingContext_ = com.google.protobuf.MapField.newMapField(
                    TracingContextDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              tracingContext__ = input.readMessage(
                  TracingContextDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              tracingContext_.getMutableMap().put(
                  tracingContext__.getKey(), tracingContext__.getValue());
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              timezone_ = s;
              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.Common.internal_static_greptime_v1_RequestHeader_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 5:
          return internalGetTracingContext();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Common.internal_static_greptime_v1_RequestHeader_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Common.RequestHeader.class, io.greptime.v1.Common.RequestHeader.Builder.class);
    }

    public static final int CATALOG_FIELD_NUMBER = 1;
    private volatile java.lang.Object catalog_;
    /**
     * <pre>
     * The `catalog` that is selected to be used in this request.
     * </pre>
     *
     * <code>string catalog = 1;</code>
     * @return The catalog.
     */
    @java.lang.Override
    public java.lang.String getCatalog() {
      java.lang.Object ref = catalog_;
      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();
        catalog_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The `catalog` that is selected to be used in this request.
     * </pre>
     *
     * <code>string catalog = 1;</code>
     * @return The bytes for catalog.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCatalogBytes() {
      java.lang.Object ref = catalog_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        catalog_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCHEMA_FIELD_NUMBER = 2;
    private volatile java.lang.Object schema_;
    /**
     * <pre>
     * The `schema` that is selected to be used in this request.
     * </pre>
     *
     * <code>string schema = 2;</code>
     * @return The schema.
     */
    @java.lang.Override
    public java.lang.String getSchema() {
      java.lang.Object ref = schema_;
      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();
        schema_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The `schema` that is selected to be used in this request.
     * </pre>
     *
     * <code>string schema = 2;</code>
     * @return The bytes for schema.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSchemaBytes() {
      java.lang.Object ref = schema_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        schema_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTHORIZATION_FIELD_NUMBER = 3;
    private io.greptime.v1.Common.AuthHeader authorization_;
    /**
     * <pre>
     * The `authorization` header, much like http's authorization header.
     * </pre>
     *
     * <code>.greptime.v1.AuthHeader authorization = 3;</code>
     * @return Whether the authorization field is set.
     */
    @java.lang.Override
    public boolean hasAuthorization() {
      return authorization_ != null;
    }
    /**
     * <pre>
     * The `authorization` header, much like http's authorization header.
     * </pre>
     *
     * <code>.greptime.v1.AuthHeader authorization = 3;</code>
     * @return The authorization.
     */
    @java.lang.Override
    public io.greptime.v1.Common.AuthHeader getAuthorization() {
      return authorization_ == null ? io.greptime.v1.Common.AuthHeader.getDefaultInstance() : authorization_;
    }
    /**
     * <pre>
     * The `authorization` header, much like http's authorization header.
     * </pre>
     *
     * <code>.greptime.v1.AuthHeader authorization = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.AuthHeaderOrBuilder getAuthorizationOrBuilder() {
      return getAuthorization();
    }

    public static final int DBNAME_FIELD_NUMBER = 4;
    private volatile java.lang.Object dbname_;
    /**
     * <pre>
     * The `dbname` for the request
     * </pre>
     *
     * <code>string dbname = 4;</code>
     * @return The dbname.
     */
    @java.lang.Override
    public java.lang.String getDbname() {
      java.lang.Object ref = dbname_;
      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();
        dbname_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The `dbname` for the request
     * </pre>
     *
     * <code>string dbname = 4;</code>
     * @return The bytes for dbname.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDbnameBytes() {
      java.lang.Object ref = dbname_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dbname_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TRACING_CONTEXT_FIELD_NUMBER = 5;
    private static final class TracingContextDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  io.greptime.v1.Common.internal_static_greptime_v1_RequestHeader_TracingContextEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> tracingContext_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetTracingContext() {
      if (tracingContext_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            TracingContextDefaultEntryHolder.defaultEntry);
      }
      return tracingContext_;
    }

    public int getTracingContextCount() {
      return internalGetTracingContext().getMap().size();
    }
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */

    @java.lang.Override
    public boolean containsTracingContext(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetTracingContext().getMap().containsKey(key);
    }
    /**
     * Use {@link #getTracingContextMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getTracingContext() {
      return getTracingContextMap();
    }
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.String> getTracingContextMap() {
      return internalGetTracingContext().getMap();
    }
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */
    @java.lang.Override

    public java.lang.String getTracingContextOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetTracingContext().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Encoded trace_id &amp; span_id, follow the w3c Trace Context
     * https://www.w3.org/TR/trace-context/#header-name
     * </pre>
     *
     * <code>map&lt;string, string&gt; tracing_context = 5;</code>
     */
    @java.lang.Override

    public java.lang.String getTracingContextOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetTracingContext().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int TIMEZONE_FIELD_NUMBER = 6;
    private volatile java.lang.Object timezone_;
    /**
     * <pre>
     * The `timezone` for the request
     * </pre>
     *
     * <code>string timezone = 6;</code>
     * @return The timezone.
     */
    @java.lang.Override
    public java.lang.String getTimezone() {
      java.lang.Object ref = timezone_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        timezone_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The `timezone` for the request
     * </pre>
     *
     * <code>string timezone = 6;</code>
     * @return The bytes for timezone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimezoneBytes() {
      java.lang.Object ref = timezone_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timezone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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(catalog_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, catalog_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schema_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, schema_);
      }
      if (authorization_ != null) {
        output.writeMessage(3, getAuthorization());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dbname_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, dbname_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetTracingContext(),
          TracingContextDefaultEntryHolder.defaultEntry,
          5);
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timezone_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, timezone_);
      }
      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(catalog_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, catalog_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schema_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, schema_);
      }
      if (authorization_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getAuthorization());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dbname_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, dbname_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetTracingContext().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        tracingContext__ = TracingContextDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, tracingContext__);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timezone_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, timezone_);
      }
      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.Common.RequestHeader)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.RequestHeader other = (io.greptime.v1.Common.RequestHeader) obj;

      if (!getCatalog()
          .equals(other.getCatalog())) return false;
      if (!getSchema()
          .equals(other.getSchema())) return false;
      if (hasAuthorization() != other.hasAuthorization()) return false;
      if (hasAuthorization()) {
        if (!getAuthorization()
            .equals(other.getAuthorization())) return false;
      }
      if (!getDbname()
          .equals(other.getDbname())) return false;
      if (!internalGetTracingContext().equals(
          other.internalGetTracingContext())) return false;
      if (!getTimezone()
          .equals(other.getTimezone())) 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) + CATALOG_FIELD_NUMBER;
      hash = (53 * hash) + getCatalog().hashCode();
      hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
      hash = (53 * hash) + getSchema().hashCode();
      if (hasAuthorization()) {
        hash = (37 * hash) + AUTHORIZATION_FIELD_NUMBER;
        hash = (53 * hash) + getAuthorization().hashCode();
      }
      hash = (37 * hash) + DBNAME_FIELD_NUMBER;
      hash = (53 * hash) + getDbname().hashCode();
      if (!internalGetTracingContext().getMap().isEmpty()) {
        hash = (37 * hash) + TRACING_CONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + internalGetTracingContext().hashCode();
      }
      hash = (37 * hash) + TIMEZONE_FIELD_NUMBER;
      hash = (53 * hash) + getTimezone().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 5:
            return internalGetTracingContext();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 5:
            return internalGetMutableTracingContext();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Common.internal_static_greptime_v1_RequestHeader_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Common.RequestHeader.class, io.greptime.v1.Common.RequestHeader.Builder.class);
      }

      // Construct using io.greptime.v1.Common.RequestHeader.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();
        catalog_ = "";

        schema_ = "";

        if (authorizationBuilder_ == null) {
          authorization_ = null;
        } else {
          authorization_ = null;
          authorizationBuilder_ = null;
        }
        dbname_ = "";

        internalGetMutableTracingContext().clear();
        timezone_ = "";

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.RequestHeader buildPartial() {
        io.greptime.v1.Common.RequestHeader result = new io.greptime.v1.Common.RequestHeader(this);
        int from_bitField0_ = bitField0_;
        result.catalog_ = catalog_;
        result.schema_ = schema_;
        if (authorizationBuilder_ == null) {
          result.authorization_ = authorization_;
        } else {
          result.authorization_ = authorizationBuilder_.build();
        }
        result.dbname_ = dbname_;
        result.tracingContext_ = internalGetTracingContext();
        result.tracingContext_.makeImmutable();
        result.timezone_ = timezone_;
        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.Common.RequestHeader) {
          return mergeFrom((io.greptime.v1.Common.RequestHeader)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.RequestHeader other) {
        if (other == io.greptime.v1.Common.RequestHeader.getDefaultInstance()) return this;
        if (!other.getCatalog().isEmpty()) {
          catalog_ = other.catalog_;
          onChanged();
        }
        if (!other.getSchema().isEmpty()) {
          schema_ = other.schema_;
          onChanged();
        }
        if (other.hasAuthorization()) {
          mergeAuthorization(other.getAuthorization());
        }
        if (!other.getDbname().isEmpty()) {
          dbname_ = other.dbname_;
          onChanged();
        }
        internalGetMutableTracingContext().mergeFrom(
            other.internalGetTracingContext());
        if (!other.getTimezone().isEmpty()) {
          timezone_ = other.timezone_;
          onChanged();
        }
        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.Common.RequestHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.RequestHeader) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object catalog_ = "";
      /**
       * <pre>
       * The `catalog` that is selected to be used in this request.
       * </pre>
       *
       * <code>string catalog = 1;</code>
       * @return The catalog.
       */
      public java.lang.String getCatalog() {
        java.lang.Object ref = catalog_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          catalog_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The `catalog` that is selected to be used in this request.
       * </pre>
       *
       * <code>string catalog = 1;</code>
       * @return The bytes for catalog.
       */
      public com.google.protobuf.ByteString
          getCatalogBytes() {
        java.lang.Object ref = catalog_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          catalog_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The `catalog` that is selected to be used in this request.
       * </pre>
       *
       * <code>string catalog = 1;</code>
       * @param value The catalog to set.
       * @return This builder for chaining.
       */
      public Builder setCatalog(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        catalog_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `catalog` that is selected to be used in this request.
       * </pre>
       *
       * <code>string catalog = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCatalog() {
        
        catalog_ = getDefaultInstance().getCatalog();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `catalog` that is selected to be used in this request.
       * </pre>
       *
       * <code>string catalog = 1;</code>
       * @param value The bytes for catalog to set.
       * @return This builder for chaining.
       */
      public Builder setCatalogBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        catalog_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object schema_ = "";
      /**
       * <pre>
       * The `schema` that is selected to be used in this request.
       * </pre>
       *
       * <code>string schema = 2;</code>
       * @return The schema.
       */
      public java.lang.String getSchema() {
        java.lang.Object ref = schema_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          schema_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The `schema` that is selected to be used in this request.
       * </pre>
       *
       * <code>string schema = 2;</code>
       * @return The bytes for schema.
       */
      public com.google.protobuf.ByteString
          getSchemaBytes() {
        java.lang.Object ref = schema_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          schema_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The `schema` that is selected to be used in this request.
       * </pre>
       *
       * <code>string schema = 2;</code>
       * @param value The schema to set.
       * @return This builder for chaining.
       */
      public Builder setSchema(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        schema_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `schema` that is selected to be used in this request.
       * </pre>
       *
       * <code>string schema = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchema() {
        
        schema_ = getDefaultInstance().getSchema();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `schema` that is selected to be used in this request.
       * </pre>
       *
       * <code>string schema = 2;</code>
       * @param value The bytes for schema to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        schema_ = value;
        onChanged();
        return this;
      }

      private io.greptime.v1.Common.AuthHeader authorization_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.AuthHeader, io.greptime.v1.Common.AuthHeader.Builder, io.greptime.v1.Common.AuthHeaderOrBuilder> authorizationBuilder_;
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       * @return Whether the authorization field is set.
       */
      public boolean hasAuthorization() {
        return authorizationBuilder_ != null || authorization_ != null;
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       * @return The authorization.
       */
      public io.greptime.v1.Common.AuthHeader getAuthorization() {
        if (authorizationBuilder_ == null) {
          return authorization_ == null ? io.greptime.v1.Common.AuthHeader.getDefaultInstance() : authorization_;
        } else {
          return authorizationBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       */
      public Builder setAuthorization(io.greptime.v1.Common.AuthHeader value) {
        if (authorizationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          authorization_ = value;
          onChanged();
        } else {
          authorizationBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       */
      public Builder setAuthorization(
          io.greptime.v1.Common.AuthHeader.Builder builderForValue) {
        if (authorizationBuilder_ == null) {
          authorization_ = builderForValue.build();
          onChanged();
        } else {
          authorizationBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       */
      public Builder mergeAuthorization(io.greptime.v1.Common.AuthHeader value) {
        if (authorizationBuilder_ == null) {
          if (authorization_ != null) {
            authorization_ =
              io.greptime.v1.Common.AuthHeader.newBuilder(authorization_).mergeFrom(value).buildPartial();
          } else {
            authorization_ = value;
          }
          onChanged();
        } else {
          authorizationBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       */
      public Builder clearAuthorization() {
        if (authorizationBuilder_ == null) {
          authorization_ = null;
          onChanged();
        } else {
          authorization_ = null;
          authorizationBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       */
      public io.greptime.v1.Common.AuthHeader.Builder getAuthorizationBuilder() {
        
        onChanged();
        return getAuthorizationFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       */
      public io.greptime.v1.Common.AuthHeaderOrBuilder getAuthorizationOrBuilder() {
        if (authorizationBuilder_ != null) {
          return authorizationBuilder_.getMessageOrBuilder();
        } else {
          return authorization_ == null ?
              io.greptime.v1.Common.AuthHeader.getDefaultInstance() : authorization_;
        }
      }
      /**
       * <pre>
       * The `authorization` header, much like http's authorization header.
       * </pre>
       *
       * <code>.greptime.v1.AuthHeader authorization = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.AuthHeader, io.greptime.v1.Common.AuthHeader.Builder, io.greptime.v1.Common.AuthHeaderOrBuilder> 
          getAuthorizationFieldBuilder() {
        if (authorizationBuilder_ == null) {
          authorizationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.AuthHeader, io.greptime.v1.Common.AuthHeader.Builder, io.greptime.v1.Common.AuthHeaderOrBuilder>(
                  getAuthorization(),
                  getParentForChildren(),
                  isClean());
          authorization_ = null;
        }
        return authorizationBuilder_;
      }

      private java.lang.Object dbname_ = "";
      /**
       * <pre>
       * The `dbname` for the request
       * </pre>
       *
       * <code>string dbname = 4;</code>
       * @return The dbname.
       */
      public java.lang.String getDbname() {
        java.lang.Object ref = dbname_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          dbname_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The `dbname` for the request
       * </pre>
       *
       * <code>string dbname = 4;</code>
       * @return The bytes for dbname.
       */
      public com.google.protobuf.ByteString
          getDbnameBytes() {
        java.lang.Object ref = dbname_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dbname_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The `dbname` for the request
       * </pre>
       *
       * <code>string dbname = 4;</code>
       * @param value The dbname to set.
       * @return This builder for chaining.
       */
      public Builder setDbname(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        dbname_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `dbname` for the request
       * </pre>
       *
       * <code>string dbname = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDbname() {
        
        dbname_ = getDefaultInstance().getDbname();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `dbname` for the request
       * </pre>
       *
       * <code>string dbname = 4;</code>
       * @param value The bytes for dbname to set.
       * @return This builder for chaining.
       */
      public Builder setDbnameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        dbname_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> tracingContext_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetTracingContext() {
        if (tracingContext_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              TracingContextDefaultEntryHolder.defaultEntry);
        }
        return tracingContext_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableTracingContext() {
        onChanged();;
        if (tracingContext_ == null) {
          tracingContext_ = com.google.protobuf.MapField.newMapField(
              TracingContextDefaultEntryHolder.defaultEntry);
        }
        if (!tracingContext_.isMutable()) {
          tracingContext_ = tracingContext_.copy();
        }
        return tracingContext_;
      }

      public int getTracingContextCount() {
        return internalGetTracingContext().getMap().size();
      }
      /**
       * <pre>
       * Encoded trace_id &amp; span_id, follow the w3c Trace Context
       * https://www.w3.org/TR/trace-context/#header-name
       * </pre>
       *
       * <code>map&lt;string, string&gt; tracing_context = 5;</code>
       */

      @java.lang.Override
      public boolean containsTracingContext(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetTracingContext().getMap().containsKey(key);
      }
      /**
       * Use {@link #getTracingContextMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getTracingContext() {
        return getTracingContextMap();
      }
      /**
       * <pre>
       * Encoded trace_id &amp; span_id, follow the w3c Trace Context
       * https://www.w3.org/TR/trace-context/#header-name
       * </pre>
       *
       * <code>map&lt;string, string&gt; tracing_context = 5;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.String, java.lang.String> getTracingContextMap() {
        return internalGetTracingContext().getMap();
      }
      /**
       * <pre>
       * Encoded trace_id &amp; span_id, follow the w3c Trace Context
       * https://www.w3.org/TR/trace-context/#header-name
       * </pre>
       *
       * <code>map&lt;string, string&gt; tracing_context = 5;</code>
       */
      @java.lang.Override

      public java.lang.String getTracingContextOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetTracingContext().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Encoded trace_id &amp; span_id, follow the w3c Trace Context
       * https://www.w3.org/TR/trace-context/#header-name
       * </pre>
       *
       * <code>map&lt;string, string&gt; tracing_context = 5;</code>
       */
      @java.lang.Override

      public java.lang.String getTracingContextOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetTracingContext().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearTracingContext() {
        internalGetMutableTracingContext().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * Encoded trace_id &amp; span_id, follow the w3c Trace Context
       * https://www.w3.org/TR/trace-context/#header-name
       * </pre>
       *
       * <code>map&lt;string, string&gt; tracing_context = 5;</code>
       */

      public Builder removeTracingContext(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableTracingContext().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableTracingContext() {
        return internalGetMutableTracingContext().getMutableMap();
      }
      /**
       * <pre>
       * Encoded trace_id &amp; span_id, follow the w3c Trace Context
       * https://www.w3.org/TR/trace-context/#header-name
       * </pre>
       *
       * <code>map&lt;string, string&gt; tracing_context = 5;</code>
       */
      public Builder putTracingContext(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableTracingContext().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * Encoded trace_id &amp; span_id, follow the w3c Trace Context
       * https://www.w3.org/TR/trace-context/#header-name
       * </pre>
       *
       * <code>map&lt;string, string&gt; tracing_context = 5;</code>
       */

      public Builder putAllTracingContext(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableTracingContext().getMutableMap()
            .putAll(values);
        return this;
      }

      private java.lang.Object timezone_ = "";
      /**
       * <pre>
       * The `timezone` for the request
       * </pre>
       *
       * <code>string timezone = 6;</code>
       * @return The timezone.
       */
      public java.lang.String getTimezone() {
        java.lang.Object ref = timezone_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          timezone_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The `timezone` for the request
       * </pre>
       *
       * <code>string timezone = 6;</code>
       * @return The bytes for timezone.
       */
      public com.google.protobuf.ByteString
          getTimezoneBytes() {
        java.lang.Object ref = timezone_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timezone_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The `timezone` for the request
       * </pre>
       *
       * <code>string timezone = 6;</code>
       * @param value The timezone to set.
       * @return This builder for chaining.
       */
      public Builder setTimezone(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        timezone_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `timezone` for the request
       * </pre>
       *
       * <code>string timezone = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimezone() {
        
        timezone_ = getDefaultInstance().getTimezone();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The `timezone` for the request
       * </pre>
       *
       * <code>string timezone = 6;</code>
       * @param value The bytes for timezone to set.
       * @return This builder for chaining.
       */
      public Builder setTimezoneBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        timezone_ = value;
        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.RequestHeader)
    }

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

    public static io.greptime.v1.Common.RequestHeader getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.Status status = 1;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>.greptime.v1.Status status = 1;</code>
     * @return The status.
     */
    io.greptime.v1.Common.Status getStatus();
    /**
     * <code>.greptime.v1.Status status = 1;</code>
     */
    io.greptime.v1.Common.StatusOrBuilder getStatusOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.ResponseHeader}
   */
  public static final class ResponseHeader extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ResponseHeader)
      ResponseHeaderOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ResponseHeader.newBuilder() to construct.
    private ResponseHeader(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ResponseHeader() {
    }

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

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

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

    public static final int STATUS_FIELD_NUMBER = 1;
    private io.greptime.v1.Common.Status status_;
    /**
     * <code>.greptime.v1.Status status = 1;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return status_ != null;
    }
    /**
     * <code>.greptime.v1.Status status = 1;</code>
     * @return The status.
     */
    @java.lang.Override
    public io.greptime.v1.Common.Status getStatus() {
      return status_ == null ? io.greptime.v1.Common.Status.getDefaultInstance() : status_;
    }
    /**
     * <code>.greptime.v1.Status status = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.StatusOrBuilder getStatusOrBuilder() {
      return getStatus();
    }

    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 (status_ != null) {
        output.writeMessage(1, getStatus());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (status_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getStatus());
      }
      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.Common.ResponseHeader)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.ResponseHeader other = (io.greptime.v1.Common.ResponseHeader) obj;

      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (!getStatus()
            .equals(other.getStatus())) 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 (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.ResponseHeader.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 (statusBuilder_ == null) {
          status_ = null;
        } else {
          status_ = null;
          statusBuilder_ = null;
        }
        return this;
      }

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

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

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

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

      public Builder mergeFrom(io.greptime.v1.Common.ResponseHeader other) {
        if (other == io.greptime.v1.Common.ResponseHeader.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        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.Common.ResponseHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.ResponseHeader) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private io.greptime.v1.Common.Status status_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Status, io.greptime.v1.Common.Status.Builder, io.greptime.v1.Common.StatusOrBuilder> statusBuilder_;
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return statusBuilder_ != null || status_ != null;
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       * @return The status.
       */
      public io.greptime.v1.Common.Status getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null ? io.greptime.v1.Common.Status.getDefaultInstance() : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       */
      public Builder setStatus(io.greptime.v1.Common.Status value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       */
      public Builder setStatus(
          io.greptime.v1.Common.Status.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       */
      public Builder mergeStatus(io.greptime.v1.Common.Status value) {
        if (statusBuilder_ == null) {
          if (status_ != null) {
            status_ =
              io.greptime.v1.Common.Status.newBuilder(status_).mergeFrom(value).buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          status_ = null;
          statusBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       */
      public io.greptime.v1.Common.Status.Builder getStatusBuilder() {
        
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       */
      public io.greptime.v1.Common.StatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null ?
              io.greptime.v1.Common.Status.getDefaultInstance() : status_;
        }
      }
      /**
       * <code>.greptime.v1.Status status = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Status, io.greptime.v1.Common.Status.Builder, io.greptime.v1.Common.StatusOrBuilder> 
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.Status, io.greptime.v1.Common.Status.Builder, io.greptime.v1.Common.StatusOrBuilder>(
                  getStatus(),
                  getParentForChildren(),
                  isClean());
          status_ = null;
        }
        return statusBuilder_;
      }
      @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.ResponseHeader)
    }

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

    public static io.greptime.v1.Common.ResponseHeader getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <pre>
     * Corresponding to the `StatusCode` definition of GreptimeDB
     * </pre>
     *
     * <code>uint32 status_code = 1;</code>
     * @return The statusCode.
     */
    int getStatusCode();

    /**
     * <code>string err_msg = 2;</code>
     * @return The errMsg.
     */
    java.lang.String getErrMsg();
    /**
     * <code>string err_msg = 2;</code>
     * @return The bytes for errMsg.
     */
    com.google.protobuf.ByteString
        getErrMsgBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.Status}
   */
  public static final class Status extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Status)
      StatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Status.newBuilder() to construct.
    private Status(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Status() {
      errMsg_ = "";
    }

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

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

              statusCode_ = input.readUInt32();
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              errMsg_ = s;
              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.Common.internal_static_greptime_v1_Status_descriptor;
    }

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

    public static final int STATUS_CODE_FIELD_NUMBER = 1;
    private int statusCode_;
    /**
     * <pre>
     * Corresponding to the `StatusCode` definition of GreptimeDB
     * </pre>
     *
     * <code>uint32 status_code = 1;</code>
     * @return The statusCode.
     */
    @java.lang.Override
    public int getStatusCode() {
      return statusCode_;
    }

    public static final int ERR_MSG_FIELD_NUMBER = 2;
    private volatile java.lang.Object errMsg_;
    /**
     * <code>string err_msg = 2;</code>
     * @return The errMsg.
     */
    @java.lang.Override
    public java.lang.String getErrMsg() {
      java.lang.Object ref = errMsg_;
      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();
        errMsg_ = s;
        return s;
      }
    }
    /**
     * <code>string err_msg = 2;</code>
     * @return The bytes for errMsg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrMsgBytes() {
      java.lang.Object ref = errMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (statusCode_ != 0) {
        output.writeUInt32(1, statusCode_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errMsg_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (statusCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, statusCode_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errMsg_);
      }
      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.Common.Status)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.Status other = (io.greptime.v1.Common.Status) obj;

      if (getStatusCode()
          != other.getStatusCode()) return false;
      if (!getErrMsg()
          .equals(other.getErrMsg())) 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) + STATUS_CODE_FIELD_NUMBER;
      hash = (53 * hash) + getStatusCode();
      hash = (37 * hash) + ERR_MSG_FIELD_NUMBER;
      hash = (53 * hash) + getErrMsg().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.Status.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();
        statusCode_ = 0;

        errMsg_ = "";

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.Status buildPartial() {
        io.greptime.v1.Common.Status result = new io.greptime.v1.Common.Status(this);
        result.statusCode_ = statusCode_;
        result.errMsg_ = errMsg_;
        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.Common.Status) {
          return mergeFrom((io.greptime.v1.Common.Status)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.Status other) {
        if (other == io.greptime.v1.Common.Status.getDefaultInstance()) return this;
        if (other.getStatusCode() != 0) {
          setStatusCode(other.getStatusCode());
        }
        if (!other.getErrMsg().isEmpty()) {
          errMsg_ = other.errMsg_;
          onChanged();
        }
        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.Common.Status parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.Status) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int statusCode_ ;
      /**
       * <pre>
       * Corresponding to the `StatusCode` definition of GreptimeDB
       * </pre>
       *
       * <code>uint32 status_code = 1;</code>
       * @return The statusCode.
       */
      @java.lang.Override
      public int getStatusCode() {
        return statusCode_;
      }
      /**
       * <pre>
       * Corresponding to the `StatusCode` definition of GreptimeDB
       * </pre>
       *
       * <code>uint32 status_code = 1;</code>
       * @param value The statusCode to set.
       * @return This builder for chaining.
       */
      public Builder setStatusCode(int value) {
        
        statusCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Corresponding to the `StatusCode` definition of GreptimeDB
       * </pre>
       *
       * <code>uint32 status_code = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatusCode() {
        
        statusCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object errMsg_ = "";
      /**
       * <code>string err_msg = 2;</code>
       * @return The errMsg.
       */
      public java.lang.String getErrMsg() {
        java.lang.Object ref = errMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string err_msg = 2;</code>
       * @return The bytes for errMsg.
       */
      public com.google.protobuf.ByteString
          getErrMsgBytes() {
        java.lang.Object ref = errMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string err_msg = 2;</code>
       * @param value The errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        errMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string err_msg = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrMsg() {
        
        errMsg_ = getDefaultInstance().getErrMsg();
        onChanged();
        return this;
      }
      /**
       * <code>string err_msg = 2;</code>
       * @param value The bytes for errMsg to set.
       * @return This builder for chaining.
       */
      public Builder setErrMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        errMsg_ = value;
        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.Status)
    }

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

    public static io.greptime.v1.Common.Status getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.Basic basic = 1;</code>
     * @return Whether the basic field is set.
     */
    boolean hasBasic();
    /**
     * <code>.greptime.v1.Basic basic = 1;</code>
     * @return The basic.
     */
    io.greptime.v1.Common.Basic getBasic();
    /**
     * <code>.greptime.v1.Basic basic = 1;</code>
     */
    io.greptime.v1.Common.BasicOrBuilder getBasicOrBuilder();

    /**
     * <code>.greptime.v1.Token token = 2;</code>
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * <code>.greptime.v1.Token token = 2;</code>
     * @return The token.
     */
    io.greptime.v1.Common.Token getToken();
    /**
     * <code>.greptime.v1.Token token = 2;</code>
     */
    io.greptime.v1.Common.TokenOrBuilder getTokenOrBuilder();

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AuthHeader(
        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.Basic.Builder subBuilder = null;
              if (authSchemeCase_ == 1) {
                subBuilder = ((io.greptime.v1.Common.Basic) authScheme_).toBuilder();
              }
              authScheme_ =
                  input.readMessage(io.greptime.v1.Common.Basic.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Common.Basic) authScheme_);
                authScheme_ = subBuilder.buildPartial();
              }
              authSchemeCase_ = 1;
              break;
            }
            case 18: {
              io.greptime.v1.Common.Token.Builder subBuilder = null;
              if (authSchemeCase_ == 2) {
                subBuilder = ((io.greptime.v1.Common.Token) authScheme_).toBuilder();
              }
              authScheme_ =
                  input.readMessage(io.greptime.v1.Common.Token.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Common.Token) authScheme_);
                authScheme_ = subBuilder.buildPartial();
              }
              authSchemeCase_ = 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.Common.internal_static_greptime_v1_AuthHeader_descriptor;
    }

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

    private int authSchemeCase_ = 0;
    private java.lang.Object authScheme_;
    public enum AuthSchemeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      BASIC(1),
      TOKEN(2),
      AUTHSCHEME_NOT_SET(0);
      private final int value;
      private AuthSchemeCase(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 AuthSchemeCase valueOf(int value) {
        return forNumber(value);
      }

      public static AuthSchemeCase forNumber(int value) {
        switch (value) {
          case 1: return BASIC;
          case 2: return TOKEN;
          case 0: return AUTHSCHEME_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public AuthSchemeCase
    getAuthSchemeCase() {
      return AuthSchemeCase.forNumber(
          authSchemeCase_);
    }

    public static final int BASIC_FIELD_NUMBER = 1;
    /**
     * <code>.greptime.v1.Basic basic = 1;</code>
     * @return Whether the basic field is set.
     */
    @java.lang.Override
    public boolean hasBasic() {
      return authSchemeCase_ == 1;
    }
    /**
     * <code>.greptime.v1.Basic basic = 1;</code>
     * @return The basic.
     */
    @java.lang.Override
    public io.greptime.v1.Common.Basic getBasic() {
      if (authSchemeCase_ == 1) {
         return (io.greptime.v1.Common.Basic) authScheme_;
      }
      return io.greptime.v1.Common.Basic.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.Basic basic = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.BasicOrBuilder getBasicOrBuilder() {
      if (authSchemeCase_ == 1) {
         return (io.greptime.v1.Common.Basic) authScheme_;
      }
      return io.greptime.v1.Common.Basic.getDefaultInstance();
    }

    public static final int TOKEN_FIELD_NUMBER = 2;
    /**
     * <code>.greptime.v1.Token token = 2;</code>
     * @return Whether the token field is set.
     */
    @java.lang.Override
    public boolean hasToken() {
      return authSchemeCase_ == 2;
    }
    /**
     * <code>.greptime.v1.Token token = 2;</code>
     * @return The token.
     */
    @java.lang.Override
    public io.greptime.v1.Common.Token getToken() {
      if (authSchemeCase_ == 2) {
         return (io.greptime.v1.Common.Token) authScheme_;
      }
      return io.greptime.v1.Common.Token.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.Token token = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.TokenOrBuilder getTokenOrBuilder() {
      if (authSchemeCase_ == 2) {
         return (io.greptime.v1.Common.Token) authScheme_;
      }
      return io.greptime.v1.Common.Token.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 (authSchemeCase_ == 1) {
        output.writeMessage(1, (io.greptime.v1.Common.Basic) authScheme_);
      }
      if (authSchemeCase_ == 2) {
        output.writeMessage(2, (io.greptime.v1.Common.Token) authScheme_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (authSchemeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (io.greptime.v1.Common.Basic) authScheme_);
      }
      if (authSchemeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (io.greptime.v1.Common.Token) authScheme_);
      }
      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.Common.AuthHeader)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.AuthHeader other = (io.greptime.v1.Common.AuthHeader) obj;

      if (!getAuthSchemeCase().equals(other.getAuthSchemeCase())) return false;
      switch (authSchemeCase_) {
        case 1:
          if (!getBasic()
              .equals(other.getBasic())) return false;
          break;
        case 2:
          if (!getToken()
              .equals(other.getToken())) 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 (authSchemeCase_) {
        case 1:
          hash = (37 * hash) + BASIC_FIELD_NUMBER;
          hash = (53 * hash) + getBasic().hashCode();
          break;
        case 2:
          hash = (37 * hash) + TOKEN_FIELD_NUMBER;
          hash = (53 * hash) + getToken().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.AuthHeader.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();
        authSchemeCase_ = 0;
        authScheme_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.AuthHeader buildPartial() {
        io.greptime.v1.Common.AuthHeader result = new io.greptime.v1.Common.AuthHeader(this);
        if (authSchemeCase_ == 1) {
          if (basicBuilder_ == null) {
            result.authScheme_ = authScheme_;
          } else {
            result.authScheme_ = basicBuilder_.build();
          }
        }
        if (authSchemeCase_ == 2) {
          if (tokenBuilder_ == null) {
            result.authScheme_ = authScheme_;
          } else {
            result.authScheme_ = tokenBuilder_.build();
          }
        }
        result.authSchemeCase_ = authSchemeCase_;
        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.Common.AuthHeader) {
          return mergeFrom((io.greptime.v1.Common.AuthHeader)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.AuthHeader other) {
        if (other == io.greptime.v1.Common.AuthHeader.getDefaultInstance()) return this;
        switch (other.getAuthSchemeCase()) {
          case BASIC: {
            mergeBasic(other.getBasic());
            break;
          }
          case TOKEN: {
            mergeToken(other.getToken());
            break;
          }
          case AUTHSCHEME_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.Common.AuthHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.AuthHeader) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int authSchemeCase_ = 0;
      private java.lang.Object authScheme_;
      public AuthSchemeCase
          getAuthSchemeCase() {
        return AuthSchemeCase.forNumber(
            authSchemeCase_);
      }

      public Builder clearAuthScheme() {
        authSchemeCase_ = 0;
        authScheme_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Basic, io.greptime.v1.Common.Basic.Builder, io.greptime.v1.Common.BasicOrBuilder> basicBuilder_;
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       * @return Whether the basic field is set.
       */
      @java.lang.Override
      public boolean hasBasic() {
        return authSchemeCase_ == 1;
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       * @return The basic.
       */
      @java.lang.Override
      public io.greptime.v1.Common.Basic getBasic() {
        if (basicBuilder_ == null) {
          if (authSchemeCase_ == 1) {
            return (io.greptime.v1.Common.Basic) authScheme_;
          }
          return io.greptime.v1.Common.Basic.getDefaultInstance();
        } else {
          if (authSchemeCase_ == 1) {
            return basicBuilder_.getMessage();
          }
          return io.greptime.v1.Common.Basic.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       */
      public Builder setBasic(io.greptime.v1.Common.Basic value) {
        if (basicBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          authScheme_ = value;
          onChanged();
        } else {
          basicBuilder_.setMessage(value);
        }
        authSchemeCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       */
      public Builder setBasic(
          io.greptime.v1.Common.Basic.Builder builderForValue) {
        if (basicBuilder_ == null) {
          authScheme_ = builderForValue.build();
          onChanged();
        } else {
          basicBuilder_.setMessage(builderForValue.build());
        }
        authSchemeCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       */
      public Builder mergeBasic(io.greptime.v1.Common.Basic value) {
        if (basicBuilder_ == null) {
          if (authSchemeCase_ == 1 &&
              authScheme_ != io.greptime.v1.Common.Basic.getDefaultInstance()) {
            authScheme_ = io.greptime.v1.Common.Basic.newBuilder((io.greptime.v1.Common.Basic) authScheme_)
                .mergeFrom(value).buildPartial();
          } else {
            authScheme_ = value;
          }
          onChanged();
        } else {
          if (authSchemeCase_ == 1) {
            basicBuilder_.mergeFrom(value);
          } else {
            basicBuilder_.setMessage(value);
          }
        }
        authSchemeCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       */
      public Builder clearBasic() {
        if (basicBuilder_ == null) {
          if (authSchemeCase_ == 1) {
            authSchemeCase_ = 0;
            authScheme_ = null;
            onChanged();
          }
        } else {
          if (authSchemeCase_ == 1) {
            authSchemeCase_ = 0;
            authScheme_ = null;
          }
          basicBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       */
      public io.greptime.v1.Common.Basic.Builder getBasicBuilder() {
        return getBasicFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.BasicOrBuilder getBasicOrBuilder() {
        if ((authSchemeCase_ == 1) && (basicBuilder_ != null)) {
          return basicBuilder_.getMessageOrBuilder();
        } else {
          if (authSchemeCase_ == 1) {
            return (io.greptime.v1.Common.Basic) authScheme_;
          }
          return io.greptime.v1.Common.Basic.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.Basic basic = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Basic, io.greptime.v1.Common.Basic.Builder, io.greptime.v1.Common.BasicOrBuilder> 
          getBasicFieldBuilder() {
        if (basicBuilder_ == null) {
          if (!(authSchemeCase_ == 1)) {
            authScheme_ = io.greptime.v1.Common.Basic.getDefaultInstance();
          }
          basicBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.Basic, io.greptime.v1.Common.Basic.Builder, io.greptime.v1.Common.BasicOrBuilder>(
                  (io.greptime.v1.Common.Basic) authScheme_,
                  getParentForChildren(),
                  isClean());
          authScheme_ = null;
        }
        authSchemeCase_ = 1;
        onChanged();;
        return basicBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Token, io.greptime.v1.Common.Token.Builder, io.greptime.v1.Common.TokenOrBuilder> tokenBuilder_;
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       * @return Whether the token field is set.
       */
      @java.lang.Override
      public boolean hasToken() {
        return authSchemeCase_ == 2;
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       * @return The token.
       */
      @java.lang.Override
      public io.greptime.v1.Common.Token getToken() {
        if (tokenBuilder_ == null) {
          if (authSchemeCase_ == 2) {
            return (io.greptime.v1.Common.Token) authScheme_;
          }
          return io.greptime.v1.Common.Token.getDefaultInstance();
        } else {
          if (authSchemeCase_ == 2) {
            return tokenBuilder_.getMessage();
          }
          return io.greptime.v1.Common.Token.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       */
      public Builder setToken(io.greptime.v1.Common.Token value) {
        if (tokenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          authScheme_ = value;
          onChanged();
        } else {
          tokenBuilder_.setMessage(value);
        }
        authSchemeCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       */
      public Builder setToken(
          io.greptime.v1.Common.Token.Builder builderForValue) {
        if (tokenBuilder_ == null) {
          authScheme_ = builderForValue.build();
          onChanged();
        } else {
          tokenBuilder_.setMessage(builderForValue.build());
        }
        authSchemeCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       */
      public Builder mergeToken(io.greptime.v1.Common.Token value) {
        if (tokenBuilder_ == null) {
          if (authSchemeCase_ == 2 &&
              authScheme_ != io.greptime.v1.Common.Token.getDefaultInstance()) {
            authScheme_ = io.greptime.v1.Common.Token.newBuilder((io.greptime.v1.Common.Token) authScheme_)
                .mergeFrom(value).buildPartial();
          } else {
            authScheme_ = value;
          }
          onChanged();
        } else {
          if (authSchemeCase_ == 2) {
            tokenBuilder_.mergeFrom(value);
          } else {
            tokenBuilder_.setMessage(value);
          }
        }
        authSchemeCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       */
      public Builder clearToken() {
        if (tokenBuilder_ == null) {
          if (authSchemeCase_ == 2) {
            authSchemeCase_ = 0;
            authScheme_ = null;
            onChanged();
          }
        } else {
          if (authSchemeCase_ == 2) {
            authSchemeCase_ = 0;
            authScheme_ = null;
          }
          tokenBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       */
      public io.greptime.v1.Common.Token.Builder getTokenBuilder() {
        return getTokenFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.TokenOrBuilder getTokenOrBuilder() {
        if ((authSchemeCase_ == 2) && (tokenBuilder_ != null)) {
          return tokenBuilder_.getMessageOrBuilder();
        } else {
          if (authSchemeCase_ == 2) {
            return (io.greptime.v1.Common.Token) authScheme_;
          }
          return io.greptime.v1.Common.Token.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.Token token = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Token, io.greptime.v1.Common.Token.Builder, io.greptime.v1.Common.TokenOrBuilder> 
          getTokenFieldBuilder() {
        if (tokenBuilder_ == null) {
          if (!(authSchemeCase_ == 2)) {
            authScheme_ = io.greptime.v1.Common.Token.getDefaultInstance();
          }
          tokenBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.Token, io.greptime.v1.Common.Token.Builder, io.greptime.v1.Common.TokenOrBuilder>(
                  (io.greptime.v1.Common.Token) authScheme_,
                  getParentForChildren(),
                  isClean());
          authScheme_ = null;
        }
        authSchemeCase_ = 2;
        onChanged();;
        return tokenBuilder_;
      }
      @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.AuthHeader)
    }

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

    public static io.greptime.v1.Common.AuthHeader getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>string username = 1;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <code>string username = 1;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <code>string password = 2;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <code>string password = 2;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.Basic}
   */
  public static final class Basic extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Basic)
      BasicOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Basic.newBuilder() to construct.
    private Basic(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Basic() {
      username_ = "";
      password_ = "";
    }

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

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

              username_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              password_ = s;
              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.Common.internal_static_greptime_v1_Basic_descriptor;
    }

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

    public static final int USERNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object username_;
    /**
     * <code>string username = 1;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      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();
        username_ = s;
        return s;
      }
    }
    /**
     * <code>string username = 1;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 2;
    private volatile java.lang.Object password_;
    /**
     * <code>string password = 2;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      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();
        password_ = s;
        return s;
      }
    }
    /**
     * <code>string password = 2;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, password_);
      }
      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(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, password_);
      }
      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.Common.Basic)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.Basic other = (io.greptime.v1.Common.Basic) obj;

      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) 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) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.Basic.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();
        username_ = "";

        password_ = "";

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.Basic buildPartial() {
        io.greptime.v1.Common.Basic result = new io.greptime.v1.Common.Basic(this);
        result.username_ = username_;
        result.password_ = password_;
        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.Common.Basic) {
          return mergeFrom((io.greptime.v1.Common.Basic)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.Basic other) {
        if (other == io.greptime.v1.Common.Basic.getDefaultInstance()) return this;
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          onChanged();
        }
        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.Common.Basic parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.Basic) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <code>string username = 1;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string username = 1;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string username = 1;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        username_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string username = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        
        username_ = getDefaultInstance().getUsername();
        onChanged();
        return this;
      }
      /**
       * <code>string username = 1;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        username_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <code>string password = 2;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string password = 2;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string password = 2;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        password_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string password = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        
        password_ = getDefaultInstance().getPassword();
        onChanged();
        return this;
      }
      /**
       * <code>string password = 2;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        password_ = value;
        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.Basic)
    }

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

    public static io.greptime.v1.Common.Basic getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>string token = 1;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <code>string token = 1;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.Token}
   */
  public static final class Token extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Token)
      TokenOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Token.newBuilder() to construct.
    private Token(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Token() {
      token_ = "";
    }

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

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

              token_ = s;
              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.Common.internal_static_greptime_v1_Token_descriptor;
    }

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

    public static final int TOKEN_FIELD_NUMBER = 1;
    private volatile java.lang.Object token_;
    /**
     * <code>string token = 1;</code>
     * @return The token.
     */
    @java.lang.Override
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      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();
        token_ = s;
        return s;
      }
    }
    /**
     * <code>string token = 1;</code>
     * @return The bytes for token.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, token_);
      }
      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(token_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, token_);
      }
      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.Common.Token)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.Token other = (io.greptime.v1.Common.Token) obj;

      if (!getToken()
          .equals(other.getToken())) 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) + TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getToken().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.Token.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();
        token_ = "";

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.Token buildPartial() {
        io.greptime.v1.Common.Token result = new io.greptime.v1.Common.Token(this);
        result.token_ = token_;
        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.Common.Token) {
          return mergeFrom((io.greptime.v1.Common.Token)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      private java.lang.Object token_ = "";
      /**
       * <code>string token = 1;</code>
       * @return The token.
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          token_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string token = 1;</code>
       * @return The bytes for token.
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string token = 1;</code>
       * @param value The token to set.
       * @return This builder for chaining.
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string token = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <code>string token = 1;</code>
       * @param value The bytes for token to set.
       * @return This builder for chaining.
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        token_ = value;
        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.Token)
    }

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

    public static io.greptime.v1.Common.Token getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>string catalog_name = 1;</code>
     * @return The catalogName.
     */
    java.lang.String getCatalogName();
    /**
     * <code>string catalog_name = 1;</code>
     * @return The bytes for catalogName.
     */
    com.google.protobuf.ByteString
        getCatalogNameBytes();

    /**
     * <code>string schema_name = 2;</code>
     * @return The schemaName.
     */
    java.lang.String getSchemaName();
    /**
     * <code>string schema_name = 2;</code>
     * @return The bytes for schemaName.
     */
    com.google.protobuf.ByteString
        getSchemaNameBytes();

    /**
     * <code>string table_name = 3;</code>
     * @return The tableName.
     */
    java.lang.String getTableName();
    /**
     * <code>string table_name = 3;</code>
     * @return The bytes for tableName.
     */
    com.google.protobuf.ByteString
        getTableNameBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.TableName}
   */
  public static final class TableName extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.TableName)
      TableNameOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TableName.newBuilder() to construct.
    private TableName(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TableName() {
      catalogName_ = "";
      schemaName_ = "";
      tableName_ = "";
    }

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

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

              catalogName_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              schemaName_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              tableName_ = s;
              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.Common.internal_static_greptime_v1_TableName_descriptor;
    }

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

    public static final int CATALOG_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object catalogName_;
    /**
     * <code>string catalog_name = 1;</code>
     * @return The catalogName.
     */
    @java.lang.Override
    public java.lang.String getCatalogName() {
      java.lang.Object ref = catalogName_;
      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();
        catalogName_ = s;
        return s;
      }
    }
    /**
     * <code>string catalog_name = 1;</code>
     * @return The bytes for catalogName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCatalogNameBytes() {
      java.lang.Object ref = catalogName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        catalogName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCHEMA_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object schemaName_;
    /**
     * <code>string schema_name = 2;</code>
     * @return The schemaName.
     */
    @java.lang.Override
    public java.lang.String getSchemaName() {
      java.lang.Object ref = schemaName_;
      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();
        schemaName_ = s;
        return s;
      }
    }
    /**
     * <code>string schema_name = 2;</code>
     * @return The bytes for schemaName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSchemaNameBytes() {
      java.lang.Object ref = schemaName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        schemaName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TABLE_NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object tableName_;
    /**
     * <code>string table_name = 3;</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 = 3;</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;
      }
    }

    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(catalogName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, catalogName_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemaName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, schemaName_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, tableName_);
      }
      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(catalogName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, catalogName_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemaName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, schemaName_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, tableName_);
      }
      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.Common.TableName)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.TableName other = (io.greptime.v1.Common.TableName) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (!getTableName()
          .equals(other.getTableName())) 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) + CATALOG_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getCatalogName().hashCode();
      hash = (37 * hash) + SCHEMA_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getSchemaName().hashCode();
      hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTableName().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.TableName.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();
        catalogName_ = "";

        schemaName_ = "";

        tableName_ = "";

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.TableName buildPartial() {
        io.greptime.v1.Common.TableName result = new io.greptime.v1.Common.TableName(this);
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        result.tableName_ = tableName_;
        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.Common.TableName) {
          return mergeFrom((io.greptime.v1.Common.TableName)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      private java.lang.Object catalogName_ = "";
      /**
       * <code>string catalog_name = 1;</code>
       * @return The catalogName.
       */
      public java.lang.String getCatalogName() {
        java.lang.Object ref = catalogName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          catalogName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string catalog_name = 1;</code>
       * @return The bytes for catalogName.
       */
      public com.google.protobuf.ByteString
          getCatalogNameBytes() {
        java.lang.Object ref = catalogName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          catalogName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string catalog_name = 1;</code>
       * @param value The catalogName to set.
       * @return This builder for chaining.
       */
      public Builder setCatalogName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        catalogName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string catalog_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCatalogName() {
        
        catalogName_ = getDefaultInstance().getCatalogName();
        onChanged();
        return this;
      }
      /**
       * <code>string catalog_name = 1;</code>
       * @param value The bytes for catalogName to set.
       * @return This builder for chaining.
       */
      public Builder setCatalogNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        catalogName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object schemaName_ = "";
      /**
       * <code>string schema_name = 2;</code>
       * @return The schemaName.
       */
      public java.lang.String getSchemaName() {
        java.lang.Object ref = schemaName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          schemaName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string schema_name = 2;</code>
       * @return The bytes for schemaName.
       */
      public com.google.protobuf.ByteString
          getSchemaNameBytes() {
        java.lang.Object ref = schemaName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          schemaName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string schema_name = 2;</code>
       * @param value The schemaName to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        schemaName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string schema_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemaName() {
        
        schemaName_ = getDefaultInstance().getSchemaName();
        onChanged();
        return this;
      }
      /**
       * <code>string schema_name = 2;</code>
       * @param value The bytes for schemaName to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        schemaName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tableName_ = "";
      /**
       * <code>string table_name = 3;</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 = 3;</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 = 3;</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 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTableName() {
        
        tableName_ = getDefaultInstance().getTableName();
        onChanged();
        return this;
      }
      /**
       * <code>string table_name = 3;</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;
      }
      @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.TableName)
    }

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

    public static io.greptime.v1.Common.TableName getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>uint32 value = 1;</code>
     * @return The value.
     */
    int getValue();
  }
  /**
   * Protobuf type {@code greptime.v1.AffectedRows}
   */
  public static final class AffectedRows extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.AffectedRows)
      AffectedRowsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AffectedRows.newBuilder() to construct.
    private AffectedRows(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AffectedRows() {
    }

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

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

              value_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Common.internal_static_greptime_v1_AffectedRows_descriptor;
    }

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

    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <code>uint32 value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public int getValue() {
      return value_;
    }

    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 (value_ != 0) {
        output.writeUInt32(1, value_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (value_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, value_);
      }
      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.Common.AffectedRows)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.AffectedRows other = (io.greptime.v1.Common.AffectedRows) obj;

      if (getValue()
          != other.getValue()) 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) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getValue();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.AffectedRows.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();
        value_ = 0;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.AffectedRows buildPartial() {
        io.greptime.v1.Common.AffectedRows result = new io.greptime.v1.Common.AffectedRows(this);
        result.value_ = value_;
        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.Common.AffectedRows) {
          return mergeFrom((io.greptime.v1.Common.AffectedRows)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.AffectedRows other) {
        if (other == io.greptime.v1.Common.AffectedRows.getDefaultInstance()) return this;
        if (other.getValue() != 0) {
          setValue(other.getValue());
        }
        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.Common.AffectedRows parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.AffectedRows) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int value_ ;
      /**
       * <code>uint32 value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public int getValue() {
        return value_;
      }
      /**
       * <code>uint32 value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(int value) {
        
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        
        value_ = 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.AffectedRows)
    }

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

    public static io.greptime.v1.Common.AffectedRows getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>bytes metrics = 1;</code>
     * @return The metrics.
     */
    com.google.protobuf.ByteString getMetrics();
  }
  /**
   * Protobuf type {@code greptime.v1.Metrics}
   */
  public static final class Metrics extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Metrics)
      MetricsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Metrics.newBuilder() to construct.
    private Metrics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Metrics() {
      metrics_ = com.google.protobuf.ByteString.EMPTY;
    }

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

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

              metrics_ = 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.Common.internal_static_greptime_v1_Metrics_descriptor;
    }

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

    public static final int METRICS_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString metrics_;
    /**
     * <code>bytes metrics = 1;</code>
     * @return The metrics.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getMetrics() {
      return metrics_;
    }

    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 (!metrics_.isEmpty()) {
        output.writeBytes(1, metrics_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!metrics_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, metrics_);
      }
      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.Common.Metrics)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.Metrics other = (io.greptime.v1.Common.Metrics) obj;

      if (!getMetrics()
          .equals(other.getMetrics())) 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) + METRICS_FIELD_NUMBER;
      hash = (53 * hash) + getMetrics().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.Metrics.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();
        metrics_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.Metrics buildPartial() {
        io.greptime.v1.Common.Metrics result = new io.greptime.v1.Common.Metrics(this);
        result.metrics_ = metrics_;
        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.Common.Metrics) {
          return mergeFrom((io.greptime.v1.Common.Metrics)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      private com.google.protobuf.ByteString metrics_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes metrics = 1;</code>
       * @return The metrics.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMetrics() {
        return metrics_;
      }
      /**
       * <code>bytes metrics = 1;</code>
       * @param value The metrics to set.
       * @return This builder for chaining.
       */
      public Builder setMetrics(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        metrics_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes metrics = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMetrics() {
        
        metrics_ = getDefaultInstance().getMetrics();
        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.Metrics)
    }

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

    public static io.greptime.v1.Common.Metrics getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>int64 value = 1;</code>
     * @return The value.
     */
    long getValue();
  }
  /**
   * Protobuf type {@code greptime.v1.ExpireAfter}
   */
  public static final class ExpireAfter extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ExpireAfter)
      ExpireAfterOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExpireAfter.newBuilder() to construct.
    private ExpireAfter(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExpireAfter() {
    }

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

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

              value_ = input.readInt64();
              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.Common.internal_static_greptime_v1_ExpireAfter_descriptor;
    }

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

    public static final int VALUE_FIELD_NUMBER = 1;
    private long value_;
    /**
     * <code>int64 value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public long getValue() {
      return value_;
    }

    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 (value_ != 0L) {
        output.writeInt64(1, value_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (value_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, value_);
      }
      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.Common.ExpireAfter)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.ExpireAfter other = (io.greptime.v1.Common.ExpireAfter) obj;

      if (getValue()
          != other.getValue()) 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) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getValue());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.ExpireAfter.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();
        value_ = 0L;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.ExpireAfter buildPartial() {
        io.greptime.v1.Common.ExpireAfter result = new io.greptime.v1.Common.ExpireAfter(this);
        result.value_ = value_;
        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.Common.ExpireAfter) {
          return mergeFrom((io.greptime.v1.Common.ExpireAfter)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.ExpireAfter other) {
        if (other == io.greptime.v1.Common.ExpireAfter.getDefaultInstance()) return this;
        if (other.getValue() != 0L) {
          setValue(other.getValue());
        }
        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.Common.ExpireAfter parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.ExpireAfter) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long value_ ;
      /**
       * <code>int64 value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public long getValue() {
        return value_;
      }
      /**
       * <code>int64 value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(long value) {
        
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        
        value_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static io.greptime.v1.Common.ExpireAfter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

    /**
     * <code>.greptime.v1.Metrics metrics = 2;</code>
     * @return Whether the metrics field is set.
     */
    boolean hasMetrics();
    /**
     * <code>.greptime.v1.Metrics metrics = 2;</code>
     * @return The metrics.
     */
    io.greptime.v1.Common.Metrics getMetrics();
    /**
     * <code>.greptime.v1.Metrics metrics = 2;</code>
     */
    io.greptime.v1.Common.MetricsOrBuilder getMetricsOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.FlightMetadata}
   */
  public static final class FlightMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.FlightMetadata)
      FlightMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FlightMetadata.newBuilder() to construct.
    private FlightMetadata(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FlightMetadata() {
    }

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

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

              break;
            }
            case 18: {
              io.greptime.v1.Common.Metrics.Builder subBuilder = null;
              if (metrics_ != null) {
                subBuilder = metrics_.toBuilder();
              }
              metrics_ = input.readMessage(io.greptime.v1.Common.Metrics.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(metrics_);
                metrics_ = 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.Common.internal_static_greptime_v1_FlightMetadata_descriptor;
    }

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

    public static final int AFFECTED_ROWS_FIELD_NUMBER = 1;
    private io.greptime.v1.Common.AffectedRows affectedRows_;
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
     * @return Whether the affectedRows field is set.
     */
    @java.lang.Override
    public boolean hasAffectedRows() {
      return affectedRows_ != null;
    }
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
     * @return The affectedRows.
     */
    @java.lang.Override
    public io.greptime.v1.Common.AffectedRows getAffectedRows() {
      return affectedRows_ == null ? io.greptime.v1.Common.AffectedRows.getDefaultInstance() : affectedRows_;
    }
    /**
     * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.AffectedRowsOrBuilder getAffectedRowsOrBuilder() {
      return getAffectedRows();
    }

    public static final int METRICS_FIELD_NUMBER = 2;
    private io.greptime.v1.Common.Metrics metrics_;
    /**
     * <code>.greptime.v1.Metrics metrics = 2;</code>
     * @return Whether the metrics field is set.
     */
    @java.lang.Override
    public boolean hasMetrics() {
      return metrics_ != null;
    }
    /**
     * <code>.greptime.v1.Metrics metrics = 2;</code>
     * @return The metrics.
     */
    @java.lang.Override
    public io.greptime.v1.Common.Metrics getMetrics() {
      return metrics_ == null ? io.greptime.v1.Common.Metrics.getDefaultInstance() : metrics_;
    }
    /**
     * <code>.greptime.v1.Metrics metrics = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.MetricsOrBuilder getMetricsOrBuilder() {
      return getMetrics();
    }

    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 (affectedRows_ != null) {
        output.writeMessage(1, getAffectedRows());
      }
      if (metrics_ != null) {
        output.writeMessage(2, getMetrics());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (affectedRows_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getAffectedRows());
      }
      if (metrics_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getMetrics());
      }
      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.Common.FlightMetadata)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.FlightMetadata other = (io.greptime.v1.Common.FlightMetadata) obj;

      if (hasAffectedRows() != other.hasAffectedRows()) return false;
      if (hasAffectedRows()) {
        if (!getAffectedRows()
            .equals(other.getAffectedRows())) return false;
      }
      if (hasMetrics() != other.hasMetrics()) return false;
      if (hasMetrics()) {
        if (!getMetrics()
            .equals(other.getMetrics())) 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 (hasAffectedRows()) {
        hash = (37 * hash) + AFFECTED_ROWS_FIELD_NUMBER;
        hash = (53 * hash) + getAffectedRows().hashCode();
      }
      if (hasMetrics()) {
        hash = (37 * hash) + METRICS_FIELD_NUMBER;
        hash = (53 * hash) + getMetrics().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.FlightMetadata.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 (affectedRowsBuilder_ == null) {
          affectedRows_ = null;
        } else {
          affectedRows_ = null;
          affectedRowsBuilder_ = null;
        }
        if (metricsBuilder_ == null) {
          metrics_ = null;
        } else {
          metrics_ = null;
          metricsBuilder_ = null;
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.FlightMetadata buildPartial() {
        io.greptime.v1.Common.FlightMetadata result = new io.greptime.v1.Common.FlightMetadata(this);
        if (affectedRowsBuilder_ == null) {
          result.affectedRows_ = affectedRows_;
        } else {
          result.affectedRows_ = affectedRowsBuilder_.build();
        }
        if (metricsBuilder_ == null) {
          result.metrics_ = metrics_;
        } else {
          result.metrics_ = metricsBuilder_.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.Common.FlightMetadata) {
          return mergeFrom((io.greptime.v1.Common.FlightMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.FlightMetadata other) {
        if (other == io.greptime.v1.Common.FlightMetadata.getDefaultInstance()) return this;
        if (other.hasAffectedRows()) {
          mergeAffectedRows(other.getAffectedRows());
        }
        if (other.hasMetrics()) {
          mergeMetrics(other.getMetrics());
        }
        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.Common.FlightMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.FlightMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private io.greptime.v1.Common.AffectedRows affectedRows_;
      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 = 1;</code>
       * @return Whether the affectedRows field is set.
       */
      public boolean hasAffectedRows() {
        return affectedRowsBuilder_ != null || affectedRows_ != null;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
       * @return The affectedRows.
       */
      public io.greptime.v1.Common.AffectedRows getAffectedRows() {
        if (affectedRowsBuilder_ == null) {
          return affectedRows_ == null ? io.greptime.v1.Common.AffectedRows.getDefaultInstance() : affectedRows_;
        } else {
          return affectedRowsBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
       */
      public Builder setAffectedRows(io.greptime.v1.Common.AffectedRows value) {
        if (affectedRowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          affectedRows_ = value;
          onChanged();
        } else {
          affectedRowsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
       */
      public Builder setAffectedRows(
          io.greptime.v1.Common.AffectedRows.Builder builderForValue) {
        if (affectedRowsBuilder_ == null) {
          affectedRows_ = builderForValue.build();
          onChanged();
        } else {
          affectedRowsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
       */
      public Builder mergeAffectedRows(io.greptime.v1.Common.AffectedRows value) {
        if (affectedRowsBuilder_ == null) {
          if (affectedRows_ != null) {
            affectedRows_ =
              io.greptime.v1.Common.AffectedRows.newBuilder(affectedRows_).mergeFrom(value).buildPartial();
          } else {
            affectedRows_ = value;
          }
          onChanged();
        } else {
          affectedRowsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
       */
      public Builder clearAffectedRows() {
        if (affectedRowsBuilder_ == null) {
          affectedRows_ = null;
          onChanged();
        } else {
          affectedRows_ = null;
          affectedRowsBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
       */
      public io.greptime.v1.Common.AffectedRows.Builder getAffectedRowsBuilder() {
        
        onChanged();
        return getAffectedRowsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</code>
       */
      public io.greptime.v1.Common.AffectedRowsOrBuilder getAffectedRowsOrBuilder() {
        if (affectedRowsBuilder_ != null) {
          return affectedRowsBuilder_.getMessageOrBuilder();
        } else {
          return affectedRows_ == null ?
              io.greptime.v1.Common.AffectedRows.getDefaultInstance() : affectedRows_;
        }
      }
      /**
       * <code>.greptime.v1.AffectedRows affected_rows = 1;</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) {
          affectedRowsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.AffectedRows, io.greptime.v1.Common.AffectedRows.Builder, io.greptime.v1.Common.AffectedRowsOrBuilder>(
                  getAffectedRows(),
                  getParentForChildren(),
                  isClean());
          affectedRows_ = null;
        }
        return affectedRowsBuilder_;
      }

      private io.greptime.v1.Common.Metrics metrics_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Metrics, io.greptime.v1.Common.Metrics.Builder, io.greptime.v1.Common.MetricsOrBuilder> metricsBuilder_;
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       * @return Whether the metrics field is set.
       */
      public boolean hasMetrics() {
        return metricsBuilder_ != null || metrics_ != null;
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       * @return The metrics.
       */
      public io.greptime.v1.Common.Metrics getMetrics() {
        if (metricsBuilder_ == null) {
          return metrics_ == null ? io.greptime.v1.Common.Metrics.getDefaultInstance() : metrics_;
        } else {
          return metricsBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       */
      public Builder setMetrics(io.greptime.v1.Common.Metrics value) {
        if (metricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metrics_ = value;
          onChanged();
        } else {
          metricsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       */
      public Builder setMetrics(
          io.greptime.v1.Common.Metrics.Builder builderForValue) {
        if (metricsBuilder_ == null) {
          metrics_ = builderForValue.build();
          onChanged();
        } else {
          metricsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       */
      public Builder mergeMetrics(io.greptime.v1.Common.Metrics value) {
        if (metricsBuilder_ == null) {
          if (metrics_ != null) {
            metrics_ =
              io.greptime.v1.Common.Metrics.newBuilder(metrics_).mergeFrom(value).buildPartial();
          } else {
            metrics_ = value;
          }
          onChanged();
        } else {
          metricsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       */
      public Builder clearMetrics() {
        if (metricsBuilder_ == null) {
          metrics_ = null;
          onChanged();
        } else {
          metrics_ = null;
          metricsBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       */
      public io.greptime.v1.Common.Metrics.Builder getMetricsBuilder() {
        
        onChanged();
        return getMetricsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       */
      public io.greptime.v1.Common.MetricsOrBuilder getMetricsOrBuilder() {
        if (metricsBuilder_ != null) {
          return metricsBuilder_.getMessageOrBuilder();
        } else {
          return metrics_ == null ?
              io.greptime.v1.Common.Metrics.getDefaultInstance() : metrics_;
        }
      }
      /**
       * <code>.greptime.v1.Metrics metrics = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.Metrics, io.greptime.v1.Common.Metrics.Builder, io.greptime.v1.Common.MetricsOrBuilder> 
          getMetricsFieldBuilder() {
        if (metricsBuilder_ == null) {
          metricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.Metrics, io.greptime.v1.Common.Metrics.Builder, io.greptime.v1.Common.MetricsOrBuilder>(
                  getMetrics(),
                  getParentForChildren(),
                  isClean());
          metrics_ = null;
        }
        return metricsBuilder_;
      }
      @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.FlightMetadata)
    }

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

    public static io.greptime.v1.Common.FlightMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>int32 months = 1;</code>
     * @return The months.
     */
    int getMonths();

    /**
     * <code>int32 days = 2;</code>
     * @return The days.
     */
    int getDays();

    /**
     * <code>int64 nanoseconds = 3;</code>
     * @return The nanoseconds.
     */
    long getNanoseconds();
  }
  /**
   * Protobuf type {@code greptime.v1.IntervalMonthDayNano}
   */
  public static final class IntervalMonthDayNano extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.IntervalMonthDayNano)
      IntervalMonthDayNanoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IntervalMonthDayNano.newBuilder() to construct.
    private IntervalMonthDayNano(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IntervalMonthDayNano() {
    }

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

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

              months_ = input.readInt32();
              break;
            }
            case 16: {

              days_ = input.readInt32();
              break;
            }
            case 24: {

              nanoseconds_ = input.readInt64();
              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.Common.internal_static_greptime_v1_IntervalMonthDayNano_descriptor;
    }

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

    public static final int MONTHS_FIELD_NUMBER = 1;
    private int months_;
    /**
     * <code>int32 months = 1;</code>
     * @return The months.
     */
    @java.lang.Override
    public int getMonths() {
      return months_;
    }

    public static final int DAYS_FIELD_NUMBER = 2;
    private int days_;
    /**
     * <code>int32 days = 2;</code>
     * @return The days.
     */
    @java.lang.Override
    public int getDays() {
      return days_;
    }

    public static final int NANOSECONDS_FIELD_NUMBER = 3;
    private long nanoseconds_;
    /**
     * <code>int64 nanoseconds = 3;</code>
     * @return The nanoseconds.
     */
    @java.lang.Override
    public long getNanoseconds() {
      return nanoseconds_;
    }

    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 (months_ != 0) {
        output.writeInt32(1, months_);
      }
      if (days_ != 0) {
        output.writeInt32(2, days_);
      }
      if (nanoseconds_ != 0L) {
        output.writeInt64(3, nanoseconds_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (months_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, months_);
      }
      if (days_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, days_);
      }
      if (nanoseconds_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, nanoseconds_);
      }
      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.Common.IntervalMonthDayNano)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.IntervalMonthDayNano other = (io.greptime.v1.Common.IntervalMonthDayNano) obj;

      if (getMonths()
          != other.getMonths()) return false;
      if (getDays()
          != other.getDays()) return false;
      if (getNanoseconds()
          != other.getNanoseconds()) 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) + MONTHS_FIELD_NUMBER;
      hash = (53 * hash) + getMonths();
      hash = (37 * hash) + DAYS_FIELD_NUMBER;
      hash = (53 * hash) + getDays();
      hash = (37 * hash) + NANOSECONDS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getNanoseconds());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.IntervalMonthDayNano.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();
        months_ = 0;

        days_ = 0;

        nanoseconds_ = 0L;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.IntervalMonthDayNano buildPartial() {
        io.greptime.v1.Common.IntervalMonthDayNano result = new io.greptime.v1.Common.IntervalMonthDayNano(this);
        result.months_ = months_;
        result.days_ = days_;
        result.nanoseconds_ = nanoseconds_;
        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.Common.IntervalMonthDayNano) {
          return mergeFrom((io.greptime.v1.Common.IntervalMonthDayNano)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.IntervalMonthDayNano other) {
        if (other == io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance()) return this;
        if (other.getMonths() != 0) {
          setMonths(other.getMonths());
        }
        if (other.getDays() != 0) {
          setDays(other.getDays());
        }
        if (other.getNanoseconds() != 0L) {
          setNanoseconds(other.getNanoseconds());
        }
        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.Common.IntervalMonthDayNano parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.IntervalMonthDayNano) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int months_ ;
      /**
       * <code>int32 months = 1;</code>
       * @return The months.
       */
      @java.lang.Override
      public int getMonths() {
        return months_;
      }
      /**
       * <code>int32 months = 1;</code>
       * @param value The months to set.
       * @return This builder for chaining.
       */
      public Builder setMonths(int value) {
        
        months_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 months = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMonths() {
        
        months_ = 0;
        onChanged();
        return this;
      }

      private int days_ ;
      /**
       * <code>int32 days = 2;</code>
       * @return The days.
       */
      @java.lang.Override
      public int getDays() {
        return days_;
      }
      /**
       * <code>int32 days = 2;</code>
       * @param value The days to set.
       * @return This builder for chaining.
       */
      public Builder setDays(int value) {
        
        days_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 days = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDays() {
        
        days_ = 0;
        onChanged();
        return this;
      }

      private long nanoseconds_ ;
      /**
       * <code>int64 nanoseconds = 3;</code>
       * @return The nanoseconds.
       */
      @java.lang.Override
      public long getNanoseconds() {
        return nanoseconds_;
      }
      /**
       * <code>int64 nanoseconds = 3;</code>
       * @param value The nanoseconds to set.
       * @return This builder for chaining.
       */
      public Builder setNanoseconds(long value) {
        
        nanoseconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 nanoseconds = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNanoseconds() {
        
        nanoseconds_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static io.greptime.v1.Common.IntervalMonthDayNano getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>int64 hi = 1;</code>
     * @return The hi.
     */
    long getHi();

    /**
     * <code>int64 lo = 2;</code>
     * @return The lo.
     */
    long getLo();
  }
  /**
   * <pre>
   * (hi: high 64 bits, lo: low 64 bits) are used to keep the decimal128 value.
   * </pre>
   *
   * Protobuf type {@code greptime.v1.Decimal128}
   */
  public static final class Decimal128 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Decimal128)
      Decimal128OrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Decimal128.newBuilder() to construct.
    private Decimal128(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Decimal128() {
    }

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

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

              hi_ = input.readInt64();
              break;
            }
            case 16: {

              lo_ = input.readInt64();
              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.Common.internal_static_greptime_v1_Decimal128_descriptor;
    }

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

    public static final int HI_FIELD_NUMBER = 1;
    private long hi_;
    /**
     * <code>int64 hi = 1;</code>
     * @return The hi.
     */
    @java.lang.Override
    public long getHi() {
      return hi_;
    }

    public static final int LO_FIELD_NUMBER = 2;
    private long lo_;
    /**
     * <code>int64 lo = 2;</code>
     * @return The lo.
     */
    @java.lang.Override
    public long getLo() {
      return lo_;
    }

    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 (hi_ != 0L) {
        output.writeInt64(1, hi_);
      }
      if (lo_ != 0L) {
        output.writeInt64(2, lo_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (hi_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, hi_);
      }
      if (lo_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, lo_);
      }
      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.Common.Decimal128)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.Decimal128 other = (io.greptime.v1.Common.Decimal128) obj;

      if (getHi()
          != other.getHi()) return false;
      if (getLo()
          != other.getLo()) 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) + HI_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getHi());
      hash = (37 * hash) + LO_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getLo());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.Common.Decimal128 parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.Decimal128 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.Common.Decimal128 parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.Decimal128 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.Common.Decimal128 parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.Decimal128 parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Common.Decimal128 parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.Decimal128 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.Common.Decimal128 parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.Decimal128 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.Common.Decimal128 parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.Decimal128 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.Common.Decimal128 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>
     * (hi: high 64 bits, lo: low 64 bits) are used to keep the decimal128 value.
     * </pre>
     *
     * Protobuf type {@code greptime.v1.Decimal128}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.Decimal128)
        io.greptime.v1.Common.Decimal128OrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Common.internal_static_greptime_v1_Decimal128_descriptor;
      }

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

      // Construct using io.greptime.v1.Common.Decimal128.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();
        hi_ = 0L;

        lo_ = 0L;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.Decimal128 buildPartial() {
        io.greptime.v1.Common.Decimal128 result = new io.greptime.v1.Common.Decimal128(this);
        result.hi_ = hi_;
        result.lo_ = lo_;
        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.Common.Decimal128) {
          return mergeFrom((io.greptime.v1.Common.Decimal128)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.Decimal128 other) {
        if (other == io.greptime.v1.Common.Decimal128.getDefaultInstance()) return this;
        if (other.getHi() != 0L) {
          setHi(other.getHi());
        }
        if (other.getLo() != 0L) {
          setLo(other.getLo());
        }
        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.Common.Decimal128 parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.Decimal128) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long hi_ ;
      /**
       * <code>int64 hi = 1;</code>
       * @return The hi.
       */
      @java.lang.Override
      public long getHi() {
        return hi_;
      }
      /**
       * <code>int64 hi = 1;</code>
       * @param value The hi to set.
       * @return This builder for chaining.
       */
      public Builder setHi(long value) {
        
        hi_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 hi = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHi() {
        
        hi_ = 0L;
        onChanged();
        return this;
      }

      private long lo_ ;
      /**
       * <code>int64 lo = 2;</code>
       * @return The lo.
       */
      @java.lang.Override
      public long getLo() {
        return lo_;
      }
      /**
       * <code>int64 lo = 2;</code>
       * @param value The lo to set.
       * @return This builder for chaining.
       */
      public Builder setLo(long value) {
        
        lo_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 lo = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLo() {
        
        lo_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static io.greptime.v1.Common.Decimal128 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
     * @return Whether the decimalType field is set.
     */
    boolean hasDecimalType();
    /**
     * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
     * @return The decimalType.
     */
    io.greptime.v1.Common.DecimalTypeExtension getDecimalType();
    /**
     * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
     */
    io.greptime.v1.Common.DecimalTypeExtensionOrBuilder getDecimalTypeOrBuilder();

    /**
     * <pre>
     * Marks the binary column in proto is actually a JSON column.
     * </pre>
     *
     * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
     * @return Whether the jsonType field is set.
     */
    boolean hasJsonType();
    /**
     * <pre>
     * Marks the binary column in proto is actually a JSON column.
     * </pre>
     *
     * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
     * @return The enum numeric value on the wire for jsonType.
     */
    int getJsonTypeValue();
    /**
     * <pre>
     * Marks the binary column in proto is actually a JSON column.
     * </pre>
     *
     * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
     * @return The jsonType.
     */
    io.greptime.v1.Common.JsonTypeExtension getJsonType();

    /**
     * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
     * @return Whether the vectorType field is set.
     */
    boolean hasVectorType();
    /**
     * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
     * @return The vectorType.
     */
    io.greptime.v1.Common.VectorTypeExtension getVectorType();
    /**
     * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
     */
    io.greptime.v1.Common.VectorTypeExtensionOrBuilder getVectorTypeOrBuilder();

    public io.greptime.v1.Common.ColumnDataTypeExtension.TypeExtCase getTypeExtCase();
  }
  /**
   * <pre>
   * Type extension for some complex types
   * </pre>
   *
   * Protobuf type {@code greptime.v1.ColumnDataTypeExtension}
   */
  public static final class ColumnDataTypeExtension extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ColumnDataTypeExtension)
      ColumnDataTypeExtensionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ColumnDataTypeExtension.newBuilder() to construct.
    private ColumnDataTypeExtension(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ColumnDataTypeExtension() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ColumnDataTypeExtension(
        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.DecimalTypeExtension.Builder subBuilder = null;
              if (typeExtCase_ == 1) {
                subBuilder = ((io.greptime.v1.Common.DecimalTypeExtension) typeExt_).toBuilder();
              }
              typeExt_ =
                  input.readMessage(io.greptime.v1.Common.DecimalTypeExtension.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Common.DecimalTypeExtension) typeExt_);
                typeExt_ = subBuilder.buildPartial();
              }
              typeExtCase_ = 1;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              typeExtCase_ = 2;
              typeExt_ = rawValue;
              break;
            }
            case 26: {
              io.greptime.v1.Common.VectorTypeExtension.Builder subBuilder = null;
              if (typeExtCase_ == 3) {
                subBuilder = ((io.greptime.v1.Common.VectorTypeExtension) typeExt_).toBuilder();
              }
              typeExt_ =
                  input.readMessage(io.greptime.v1.Common.VectorTypeExtension.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Common.VectorTypeExtension) typeExt_);
                typeExt_ = subBuilder.buildPartial();
              }
              typeExtCase_ = 3;
              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.Common.internal_static_greptime_v1_ColumnDataTypeExtension_descriptor;
    }

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

    private int typeExtCase_ = 0;
    private java.lang.Object typeExt_;
    public enum TypeExtCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      DECIMAL_TYPE(1),
      JSON_TYPE(2),
      VECTOR_TYPE(3),
      TYPEEXT_NOT_SET(0);
      private final int value;
      private TypeExtCase(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 TypeExtCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeExtCase forNumber(int value) {
        switch (value) {
          case 1: return DECIMAL_TYPE;
          case 2: return JSON_TYPE;
          case 3: return VECTOR_TYPE;
          case 0: return TYPEEXT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public TypeExtCase
    getTypeExtCase() {
      return TypeExtCase.forNumber(
          typeExtCase_);
    }

    public static final int DECIMAL_TYPE_FIELD_NUMBER = 1;
    /**
     * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
     * @return Whether the decimalType field is set.
     */
    @java.lang.Override
    public boolean hasDecimalType() {
      return typeExtCase_ == 1;
    }
    /**
     * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
     * @return The decimalType.
     */
    @java.lang.Override
    public io.greptime.v1.Common.DecimalTypeExtension getDecimalType() {
      if (typeExtCase_ == 1) {
         return (io.greptime.v1.Common.DecimalTypeExtension) typeExt_;
      }
      return io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.DecimalTypeExtensionOrBuilder getDecimalTypeOrBuilder() {
      if (typeExtCase_ == 1) {
         return (io.greptime.v1.Common.DecimalTypeExtension) typeExt_;
      }
      return io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance();
    }

    public static final int JSON_TYPE_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Marks the binary column in proto is actually a JSON column.
     * </pre>
     *
     * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
     * @return Whether the jsonType field is set.
     */
    public boolean hasJsonType() {
      return typeExtCase_ == 2;
    }
    /**
     * <pre>
     * Marks the binary column in proto is actually a JSON column.
     * </pre>
     *
     * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
     * @return The enum numeric value on the wire for jsonType.
     */
    public int getJsonTypeValue() {
      if (typeExtCase_ == 2) {
        return (java.lang.Integer) typeExt_;
      }
      return 0;
    }
    /**
     * <pre>
     * Marks the binary column in proto is actually a JSON column.
     * </pre>
     *
     * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
     * @return The jsonType.
     */
    public io.greptime.v1.Common.JsonTypeExtension getJsonType() {
      if (typeExtCase_ == 2) {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Common.JsonTypeExtension result = io.greptime.v1.Common.JsonTypeExtension.valueOf(
            (java.lang.Integer) typeExt_);
        return result == null ? io.greptime.v1.Common.JsonTypeExtension.UNRECOGNIZED : result;
      }
      return io.greptime.v1.Common.JsonTypeExtension.JSON_BINARY;
    }

    public static final int VECTOR_TYPE_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
     * @return Whether the vectorType field is set.
     */
    @java.lang.Override
    public boolean hasVectorType() {
      return typeExtCase_ == 3;
    }
    /**
     * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
     * @return The vectorType.
     */
    @java.lang.Override
    public io.greptime.v1.Common.VectorTypeExtension getVectorType() {
      if (typeExtCase_ == 3) {
         return (io.greptime.v1.Common.VectorTypeExtension) typeExt_;
      }
      return io.greptime.v1.Common.VectorTypeExtension.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.VectorTypeExtensionOrBuilder getVectorTypeOrBuilder() {
      if (typeExtCase_ == 3) {
         return (io.greptime.v1.Common.VectorTypeExtension) typeExt_;
      }
      return io.greptime.v1.Common.VectorTypeExtension.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 (typeExtCase_ == 1) {
        output.writeMessage(1, (io.greptime.v1.Common.DecimalTypeExtension) typeExt_);
      }
      if (typeExtCase_ == 2) {
        output.writeEnum(2, ((java.lang.Integer) typeExt_));
      }
      if (typeExtCase_ == 3) {
        output.writeMessage(3, (io.greptime.v1.Common.VectorTypeExtension) typeExt_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (typeExtCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (io.greptime.v1.Common.DecimalTypeExtension) typeExt_);
      }
      if (typeExtCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, ((java.lang.Integer) typeExt_));
      }
      if (typeExtCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.greptime.v1.Common.VectorTypeExtension) typeExt_);
      }
      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.Common.ColumnDataTypeExtension)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.ColumnDataTypeExtension other = (io.greptime.v1.Common.ColumnDataTypeExtension) obj;

      if (!getTypeExtCase().equals(other.getTypeExtCase())) return false;
      switch (typeExtCase_) {
        case 1:
          if (!getDecimalType()
              .equals(other.getDecimalType())) return false;
          break;
        case 2:
          if (getJsonTypeValue()
              != other.getJsonTypeValue()) return false;
          break;
        case 3:
          if (!getVectorType()
              .equals(other.getVectorType())) 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 (typeExtCase_) {
        case 1:
          hash = (37 * hash) + DECIMAL_TYPE_FIELD_NUMBER;
          hash = (53 * hash) + getDecimalType().hashCode();
          break;
        case 2:
          hash = (37 * hash) + JSON_TYPE_FIELD_NUMBER;
          hash = (53 * hash) + getJsonTypeValue();
          break;
        case 3:
          hash = (37 * hash) + VECTOR_TYPE_FIELD_NUMBER;
          hash = (53 * hash) + getVectorType().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.Common.ColumnDataTypeExtension parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.ColumnDataTypeExtension 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.Common.ColumnDataTypeExtension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.ColumnDataTypeExtension 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.Common.ColumnDataTypeExtension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.ColumnDataTypeExtension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Common.ColumnDataTypeExtension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.ColumnDataTypeExtension 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.Common.ColumnDataTypeExtension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.ColumnDataTypeExtension 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.Common.ColumnDataTypeExtension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.ColumnDataTypeExtension 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.Common.ColumnDataTypeExtension 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>
     * Type extension for some complex types
     * </pre>
     *
     * Protobuf type {@code greptime.v1.ColumnDataTypeExtension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.ColumnDataTypeExtension)
        io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Common.internal_static_greptime_v1_ColumnDataTypeExtension_descriptor;
      }

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

      // Construct using io.greptime.v1.Common.ColumnDataTypeExtension.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();
        typeExtCase_ = 0;
        typeExt_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.ColumnDataTypeExtension buildPartial() {
        io.greptime.v1.Common.ColumnDataTypeExtension result = new io.greptime.v1.Common.ColumnDataTypeExtension(this);
        if (typeExtCase_ == 1) {
          if (decimalTypeBuilder_ == null) {
            result.typeExt_ = typeExt_;
          } else {
            result.typeExt_ = decimalTypeBuilder_.build();
          }
        }
        if (typeExtCase_ == 2) {
          result.typeExt_ = typeExt_;
        }
        if (typeExtCase_ == 3) {
          if (vectorTypeBuilder_ == null) {
            result.typeExt_ = typeExt_;
          } else {
            result.typeExt_ = vectorTypeBuilder_.build();
          }
        }
        result.typeExtCase_ = typeExtCase_;
        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.Common.ColumnDataTypeExtension) {
          return mergeFrom((io.greptime.v1.Common.ColumnDataTypeExtension)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.ColumnDataTypeExtension other) {
        if (other == io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance()) return this;
        switch (other.getTypeExtCase()) {
          case DECIMAL_TYPE: {
            mergeDecimalType(other.getDecimalType());
            break;
          }
          case JSON_TYPE: {
            setJsonTypeValue(other.getJsonTypeValue());
            break;
          }
          case VECTOR_TYPE: {
            mergeVectorType(other.getVectorType());
            break;
          }
          case TYPEEXT_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.Common.ColumnDataTypeExtension parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.ColumnDataTypeExtension) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int typeExtCase_ = 0;
      private java.lang.Object typeExt_;
      public TypeExtCase
          getTypeExtCase() {
        return TypeExtCase.forNumber(
            typeExtCase_);
      }

      public Builder clearTypeExt() {
        typeExtCase_ = 0;
        typeExt_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.DecimalTypeExtension, io.greptime.v1.Common.DecimalTypeExtension.Builder, io.greptime.v1.Common.DecimalTypeExtensionOrBuilder> decimalTypeBuilder_;
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       * @return Whether the decimalType field is set.
       */
      @java.lang.Override
      public boolean hasDecimalType() {
        return typeExtCase_ == 1;
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       * @return The decimalType.
       */
      @java.lang.Override
      public io.greptime.v1.Common.DecimalTypeExtension getDecimalType() {
        if (decimalTypeBuilder_ == null) {
          if (typeExtCase_ == 1) {
            return (io.greptime.v1.Common.DecimalTypeExtension) typeExt_;
          }
          return io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance();
        } else {
          if (typeExtCase_ == 1) {
            return decimalTypeBuilder_.getMessage();
          }
          return io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       */
      public Builder setDecimalType(io.greptime.v1.Common.DecimalTypeExtension value) {
        if (decimalTypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          typeExt_ = value;
          onChanged();
        } else {
          decimalTypeBuilder_.setMessage(value);
        }
        typeExtCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       */
      public Builder setDecimalType(
          io.greptime.v1.Common.DecimalTypeExtension.Builder builderForValue) {
        if (decimalTypeBuilder_ == null) {
          typeExt_ = builderForValue.build();
          onChanged();
        } else {
          decimalTypeBuilder_.setMessage(builderForValue.build());
        }
        typeExtCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       */
      public Builder mergeDecimalType(io.greptime.v1.Common.DecimalTypeExtension value) {
        if (decimalTypeBuilder_ == null) {
          if (typeExtCase_ == 1 &&
              typeExt_ != io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance()) {
            typeExt_ = io.greptime.v1.Common.DecimalTypeExtension.newBuilder((io.greptime.v1.Common.DecimalTypeExtension) typeExt_)
                .mergeFrom(value).buildPartial();
          } else {
            typeExt_ = value;
          }
          onChanged();
        } else {
          if (typeExtCase_ == 1) {
            decimalTypeBuilder_.mergeFrom(value);
          } else {
            decimalTypeBuilder_.setMessage(value);
          }
        }
        typeExtCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       */
      public Builder clearDecimalType() {
        if (decimalTypeBuilder_ == null) {
          if (typeExtCase_ == 1) {
            typeExtCase_ = 0;
            typeExt_ = null;
            onChanged();
          }
        } else {
          if (typeExtCase_ == 1) {
            typeExtCase_ = 0;
            typeExt_ = null;
          }
          decimalTypeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       */
      public io.greptime.v1.Common.DecimalTypeExtension.Builder getDecimalTypeBuilder() {
        return getDecimalTypeFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.DecimalTypeExtensionOrBuilder getDecimalTypeOrBuilder() {
        if ((typeExtCase_ == 1) && (decimalTypeBuilder_ != null)) {
          return decimalTypeBuilder_.getMessageOrBuilder();
        } else {
          if (typeExtCase_ == 1) {
            return (io.greptime.v1.Common.DecimalTypeExtension) typeExt_;
          }
          return io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DecimalTypeExtension decimal_type = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.DecimalTypeExtension, io.greptime.v1.Common.DecimalTypeExtension.Builder, io.greptime.v1.Common.DecimalTypeExtensionOrBuilder> 
          getDecimalTypeFieldBuilder() {
        if (decimalTypeBuilder_ == null) {
          if (!(typeExtCase_ == 1)) {
            typeExt_ = io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance();
          }
          decimalTypeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.DecimalTypeExtension, io.greptime.v1.Common.DecimalTypeExtension.Builder, io.greptime.v1.Common.DecimalTypeExtensionOrBuilder>(
                  (io.greptime.v1.Common.DecimalTypeExtension) typeExt_,
                  getParentForChildren(),
                  isClean());
          typeExt_ = null;
        }
        typeExtCase_ = 1;
        onChanged();;
        return decimalTypeBuilder_;
      }

      /**
       * <pre>
       * Marks the binary column in proto is actually a JSON column.
       * </pre>
       *
       * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
       * @return Whether the jsonType field is set.
       */
      @java.lang.Override
      public boolean hasJsonType() {
        return typeExtCase_ == 2;
      }
      /**
       * <pre>
       * Marks the binary column in proto is actually a JSON column.
       * </pre>
       *
       * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
       * @return The enum numeric value on the wire for jsonType.
       */
      @java.lang.Override
      public int getJsonTypeValue() {
        if (typeExtCase_ == 2) {
          return ((java.lang.Integer) typeExt_).intValue();
        }
        return 0;
      }
      /**
       * <pre>
       * Marks the binary column in proto is actually a JSON column.
       * </pre>
       *
       * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
       * @param value The enum numeric value on the wire for jsonType to set.
       * @return This builder for chaining.
       */
      public Builder setJsonTypeValue(int value) {
        typeExtCase_ = 2;
        typeExt_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Marks the binary column in proto is actually a JSON column.
       * </pre>
       *
       * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
       * @return The jsonType.
       */
      @java.lang.Override
      public io.greptime.v1.Common.JsonTypeExtension getJsonType() {
        if (typeExtCase_ == 2) {
          @SuppressWarnings("deprecation")
          io.greptime.v1.Common.JsonTypeExtension result = io.greptime.v1.Common.JsonTypeExtension.valueOf(
              (java.lang.Integer) typeExt_);
          return result == null ? io.greptime.v1.Common.JsonTypeExtension.UNRECOGNIZED : result;
        }
        return io.greptime.v1.Common.JsonTypeExtension.JSON_BINARY;
      }
      /**
       * <pre>
       * Marks the binary column in proto is actually a JSON column.
       * </pre>
       *
       * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
       * @param value The jsonType to set.
       * @return This builder for chaining.
       */
      public Builder setJsonType(io.greptime.v1.Common.JsonTypeExtension value) {
        if (value == null) {
          throw new NullPointerException();
        }
        typeExtCase_ = 2;
        typeExt_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Marks the binary column in proto is actually a JSON column.
       * </pre>
       *
       * <code>.greptime.v1.JsonTypeExtension json_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearJsonType() {
        if (typeExtCase_ == 2) {
          typeExtCase_ = 0;
          typeExt_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.VectorTypeExtension, io.greptime.v1.Common.VectorTypeExtension.Builder, io.greptime.v1.Common.VectorTypeExtensionOrBuilder> vectorTypeBuilder_;
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       * @return Whether the vectorType field is set.
       */
      @java.lang.Override
      public boolean hasVectorType() {
        return typeExtCase_ == 3;
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       * @return The vectorType.
       */
      @java.lang.Override
      public io.greptime.v1.Common.VectorTypeExtension getVectorType() {
        if (vectorTypeBuilder_ == null) {
          if (typeExtCase_ == 3) {
            return (io.greptime.v1.Common.VectorTypeExtension) typeExt_;
          }
          return io.greptime.v1.Common.VectorTypeExtension.getDefaultInstance();
        } else {
          if (typeExtCase_ == 3) {
            return vectorTypeBuilder_.getMessage();
          }
          return io.greptime.v1.Common.VectorTypeExtension.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       */
      public Builder setVectorType(io.greptime.v1.Common.VectorTypeExtension value) {
        if (vectorTypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          typeExt_ = value;
          onChanged();
        } else {
          vectorTypeBuilder_.setMessage(value);
        }
        typeExtCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       */
      public Builder setVectorType(
          io.greptime.v1.Common.VectorTypeExtension.Builder builderForValue) {
        if (vectorTypeBuilder_ == null) {
          typeExt_ = builderForValue.build();
          onChanged();
        } else {
          vectorTypeBuilder_.setMessage(builderForValue.build());
        }
        typeExtCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       */
      public Builder mergeVectorType(io.greptime.v1.Common.VectorTypeExtension value) {
        if (vectorTypeBuilder_ == null) {
          if (typeExtCase_ == 3 &&
              typeExt_ != io.greptime.v1.Common.VectorTypeExtension.getDefaultInstance()) {
            typeExt_ = io.greptime.v1.Common.VectorTypeExtension.newBuilder((io.greptime.v1.Common.VectorTypeExtension) typeExt_)
                .mergeFrom(value).buildPartial();
          } else {
            typeExt_ = value;
          }
          onChanged();
        } else {
          if (typeExtCase_ == 3) {
            vectorTypeBuilder_.mergeFrom(value);
          } else {
            vectorTypeBuilder_.setMessage(value);
          }
        }
        typeExtCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       */
      public Builder clearVectorType() {
        if (vectorTypeBuilder_ == null) {
          if (typeExtCase_ == 3) {
            typeExtCase_ = 0;
            typeExt_ = null;
            onChanged();
          }
        } else {
          if (typeExtCase_ == 3) {
            typeExtCase_ = 0;
            typeExt_ = null;
          }
          vectorTypeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       */
      public io.greptime.v1.Common.VectorTypeExtension.Builder getVectorTypeBuilder() {
        return getVectorTypeFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.VectorTypeExtensionOrBuilder getVectorTypeOrBuilder() {
        if ((typeExtCase_ == 3) && (vectorTypeBuilder_ != null)) {
          return vectorTypeBuilder_.getMessageOrBuilder();
        } else {
          if (typeExtCase_ == 3) {
            return (io.greptime.v1.Common.VectorTypeExtension) typeExt_;
          }
          return io.greptime.v1.Common.VectorTypeExtension.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.VectorTypeExtension vector_type = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.VectorTypeExtension, io.greptime.v1.Common.VectorTypeExtension.Builder, io.greptime.v1.Common.VectorTypeExtensionOrBuilder> 
          getVectorTypeFieldBuilder() {
        if (vectorTypeBuilder_ == null) {
          if (!(typeExtCase_ == 3)) {
            typeExt_ = io.greptime.v1.Common.VectorTypeExtension.getDefaultInstance();
          }
          vectorTypeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.VectorTypeExtension, io.greptime.v1.Common.VectorTypeExtension.Builder, io.greptime.v1.Common.VectorTypeExtensionOrBuilder>(
                  (io.greptime.v1.Common.VectorTypeExtension) typeExt_,
                  getParentForChildren(),
                  isClean());
          typeExt_ = null;
        }
        typeExtCase_ = 3;
        onChanged();;
        return vectorTypeBuilder_;
      }
      @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.ColumnDataTypeExtension)
    }

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

    public static io.greptime.v1.Common.ColumnDataTypeExtension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>int32 precision = 1;</code>
     * @return The precision.
     */
    int getPrecision();

    /**
     * <code>int32 scale = 2;</code>
     * @return The scale.
     */
    int getScale();
  }
  /**
   * Protobuf type {@code greptime.v1.DecimalTypeExtension}
   */
  public static final class DecimalTypeExtension extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DecimalTypeExtension)
      DecimalTypeExtensionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DecimalTypeExtension.newBuilder() to construct.
    private DecimalTypeExtension(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DecimalTypeExtension() {
    }

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

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

              precision_ = input.readInt32();
              break;
            }
            case 16: {

              scale_ = input.readInt32();
              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.Common.internal_static_greptime_v1_DecimalTypeExtension_descriptor;
    }

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

    public static final int PRECISION_FIELD_NUMBER = 1;
    private int precision_;
    /**
     * <code>int32 precision = 1;</code>
     * @return The precision.
     */
    @java.lang.Override
    public int getPrecision() {
      return precision_;
    }

    public static final int SCALE_FIELD_NUMBER = 2;
    private int scale_;
    /**
     * <code>int32 scale = 2;</code>
     * @return The scale.
     */
    @java.lang.Override
    public int getScale() {
      return scale_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (precision_ != 0) {
        output.writeInt32(1, precision_);
      }
      if (scale_ != 0) {
        output.writeInt32(2, scale_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (precision_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, precision_);
      }
      if (scale_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, scale_);
      }
      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.Common.DecimalTypeExtension)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.DecimalTypeExtension other = (io.greptime.v1.Common.DecimalTypeExtension) obj;

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

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

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

      // Construct using io.greptime.v1.Common.DecimalTypeExtension.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();
        precision_ = 0;

        scale_ = 0;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.DecimalTypeExtension buildPartial() {
        io.greptime.v1.Common.DecimalTypeExtension result = new io.greptime.v1.Common.DecimalTypeExtension(this);
        result.precision_ = precision_;
        result.scale_ = scale_;
        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.Common.DecimalTypeExtension) {
          return mergeFrom((io.greptime.v1.Common.DecimalTypeExtension)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.DecimalTypeExtension other) {
        if (other == io.greptime.v1.Common.DecimalTypeExtension.getDefaultInstance()) return this;
        if (other.getPrecision() != 0) {
          setPrecision(other.getPrecision());
        }
        if (other.getScale() != 0) {
          setScale(other.getScale());
        }
        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.Common.DecimalTypeExtension parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.DecimalTypeExtension) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int precision_ ;
      /**
       * <code>int32 precision = 1;</code>
       * @return The precision.
       */
      @java.lang.Override
      public int getPrecision() {
        return precision_;
      }
      /**
       * <code>int32 precision = 1;</code>
       * @param value The precision to set.
       * @return This builder for chaining.
       */
      public Builder setPrecision(int value) {
        
        precision_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 precision = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrecision() {
        
        precision_ = 0;
        onChanged();
        return this;
      }

      private int scale_ ;
      /**
       * <code>int32 scale = 2;</code>
       * @return The scale.
       */
      @java.lang.Override
      public int getScale() {
        return scale_;
      }
      /**
       * <code>int32 scale = 2;</code>
       * @param value The scale to set.
       * @return This builder for chaining.
       */
      public Builder setScale(int value) {
        
        scale_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 scale = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearScale() {
        
        scale_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static io.greptime.v1.Common.DecimalTypeExtension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>uint32 dim = 1;</code>
     * @return The dim.
     */
    int getDim();
  }
  /**
   * Protobuf type {@code greptime.v1.VectorTypeExtension}
   */
  public static final class VectorTypeExtension extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.VectorTypeExtension)
      VectorTypeExtensionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VectorTypeExtension.newBuilder() to construct.
    private VectorTypeExtension(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VectorTypeExtension() {
    }

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

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

              dim_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Common.internal_static_greptime_v1_VectorTypeExtension_descriptor;
    }

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

    public static final int DIM_FIELD_NUMBER = 1;
    private int dim_;
    /**
     * <code>uint32 dim = 1;</code>
     * @return The dim.
     */
    @java.lang.Override
    public int getDim() {
      return dim_;
    }

    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 (dim_ != 0) {
        output.writeUInt32(1, dim_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (dim_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, dim_);
      }
      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.Common.VectorTypeExtension)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.VectorTypeExtension other = (io.greptime.v1.Common.VectorTypeExtension) obj;

      if (getDim()
          != other.getDim()) 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) + DIM_FIELD_NUMBER;
      hash = (53 * hash) + getDim();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Common.VectorTypeExtension.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();
        dim_ = 0;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.VectorTypeExtension buildPartial() {
        io.greptime.v1.Common.VectorTypeExtension result = new io.greptime.v1.Common.VectorTypeExtension(this);
        result.dim_ = dim_;
        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.Common.VectorTypeExtension) {
          return mergeFrom((io.greptime.v1.Common.VectorTypeExtension)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.VectorTypeExtension other) {
        if (other == io.greptime.v1.Common.VectorTypeExtension.getDefaultInstance()) return this;
        if (other.getDim() != 0) {
          setDim(other.getDim());
        }
        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.Common.VectorTypeExtension parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.VectorTypeExtension) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int dim_ ;
      /**
       * <code>uint32 dim = 1;</code>
       * @return The dim.
       */
      @java.lang.Override
      public int getDim() {
        return dim_;
      }
      /**
       * <code>uint32 dim = 1;</code>
       * @param value The dim to set.
       * @return This builder for chaining.
       */
      public Builder setDim(int value) {
        
        dim_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 dim = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDim() {
        
        dim_ = 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.VectorTypeExtension)
    }

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

    public static io.greptime.v1.Common.VectorTypeExtension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */
    int getOptionsCount();
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */
    boolean containsOptions(
        java.lang.String key);
    /**
     * Use {@link #getOptionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getOptions();
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getOptionsMap();
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */

    /* nullable */
java.lang.String getOptionsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */

    java.lang.String getOptionsOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Additional options for the column.
   * </pre>
   *
   * Protobuf type {@code greptime.v1.ColumnOptions}
   */
  public static final class ColumnOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ColumnOptions)
      ColumnOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ColumnOptions.newBuilder() to construct.
    private ColumnOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ColumnOptions() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ColumnOptions(
        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)) {
                options_ = com.google.protobuf.MapField.newMapField(
                    OptionsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              options__ = input.readMessage(
                  OptionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              options_.getMutableMap().put(
                  options__.getKey(), options__.getValue());
              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.Common.internal_static_greptime_v1_ColumnOptions_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetOptions();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Common.internal_static_greptime_v1_ColumnOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Common.ColumnOptions.class, io.greptime.v1.Common.ColumnOptions.Builder.class);
    }

    public static final int OPTIONS_FIELD_NUMBER = 1;
    private static final class OptionsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  io.greptime.v1.Common.internal_static_greptime_v1_ColumnOptions_OptionsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> options_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetOptions() {
      if (options_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            OptionsDefaultEntryHolder.defaultEntry);
      }
      return options_;
    }

    public int getOptionsCount() {
      return internalGetOptions().getMap().size();
    }
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */

    @java.lang.Override
    public boolean containsOptions(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetOptions().getMap().containsKey(key);
    }
    /**
     * Use {@link #getOptionsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getOptions() {
      return getOptionsMap();
    }
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
      return internalGetOptions().getMap();
    }
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */
    @java.lang.Override

    public java.lang.String getOptionsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetOptions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Supported keys:
     *   "fulltext":
     *      A JSON encoded string containing full-text search options for the column.
     *      The fulltext options JSON structure:
     *      {
     *        "enable": bool,          // Indicates whether full-text search is
     *                                 // enabled for the column.
     *        "analyzer": string,      // The language-specific text analyzer to
     *                                 // use for indexing and searching text.
     *                                 // Supported values: ["English" (Default), "Chinese"].
     *        "case-sensitive": bool   // Indicates whether the text should be treated
     *                                 // as case-sensitive during full-text search.
     *      }
     *      Example:
     *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 1;</code>
     */
    @java.lang.Override

    public java.lang.String getOptionsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetOptions().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    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 {
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetOptions(),
          OptionsDefaultEntryHolder.defaultEntry,
          1);
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetOptions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        options__ = OptionsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, options__);
      }
      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.Common.ColumnOptions)) {
        return super.equals(obj);
      }
      io.greptime.v1.Common.ColumnOptions other = (io.greptime.v1.Common.ColumnOptions) obj;

      if (!internalGetOptions().equals(
          other.internalGetOptions())) 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 (!internalGetOptions().getMap().isEmpty()) {
        hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.Common.ColumnOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.ColumnOptions 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.Common.ColumnOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.ColumnOptions 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.Common.ColumnOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Common.ColumnOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Common.ColumnOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.ColumnOptions 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.Common.ColumnOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.ColumnOptions 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.Common.ColumnOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Common.ColumnOptions 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.Common.ColumnOptions 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>
     * Additional options for the column.
     * </pre>
     *
     * Protobuf type {@code greptime.v1.ColumnOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.ColumnOptions)
        io.greptime.v1.Common.ColumnOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Common.internal_static_greptime_v1_ColumnOptions_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Common.internal_static_greptime_v1_ColumnOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Common.ColumnOptions.class, io.greptime.v1.Common.ColumnOptions.Builder.class);
      }

      // Construct using io.greptime.v1.Common.ColumnOptions.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();
        internalGetMutableOptions().clear();
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Common.ColumnOptions buildPartial() {
        io.greptime.v1.Common.ColumnOptions result = new io.greptime.v1.Common.ColumnOptions(this);
        int from_bitField0_ = bitField0_;
        result.options_ = internalGetOptions();
        result.options_.makeImmutable();
        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.Common.ColumnOptions) {
          return mergeFrom((io.greptime.v1.Common.ColumnOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Common.ColumnOptions other) {
        if (other == io.greptime.v1.Common.ColumnOptions.getDefaultInstance()) return this;
        internalGetMutableOptions().mergeFrom(
            other.internalGetOptions());
        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.Common.ColumnOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Common.ColumnOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> options_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetOptions() {
        if (options_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              OptionsDefaultEntryHolder.defaultEntry);
        }
        return options_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableOptions() {
        onChanged();;
        if (options_ == null) {
          options_ = com.google.protobuf.MapField.newMapField(
              OptionsDefaultEntryHolder.defaultEntry);
        }
        if (!options_.isMutable()) {
          options_ = options_.copy();
        }
        return options_;
      }

      public int getOptionsCount() {
        return internalGetOptions().getMap().size();
      }
      /**
       * <pre>
       * Supported keys:
       *   "fulltext":
       *      A JSON encoded string containing full-text search options for the column.
       *      The fulltext options JSON structure:
       *      {
       *        "enable": bool,          // Indicates whether full-text search is
       *                                 // enabled for the column.
       *        "analyzer": string,      // The language-specific text analyzer to
       *                                 // use for indexing and searching text.
       *                                 // Supported values: ["English" (Default), "Chinese"].
       *        "case-sensitive": bool   // Indicates whether the text should be treated
       *                                 // as case-sensitive during full-text search.
       *      }
       *      Example:
       *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 1;</code>
       */

      @java.lang.Override
      public boolean containsOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetOptions().getMap().containsKey(key);
      }
      /**
       * Use {@link #getOptionsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getOptions() {
        return getOptionsMap();
      }
      /**
       * <pre>
       * Supported keys:
       *   "fulltext":
       *      A JSON encoded string containing full-text search options for the column.
       *      The fulltext options JSON structure:
       *      {
       *        "enable": bool,          // Indicates whether full-text search is
       *                                 // enabled for the column.
       *        "analyzer": string,      // The language-specific text analyzer to
       *                                 // use for indexing and searching text.
       *                                 // Supported values: ["English" (Default), "Chinese"].
       *        "case-sensitive": bool   // Indicates whether the text should be treated
       *                                 // as case-sensitive during full-text search.
       *      }
       *      Example:
       *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 1;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
        return internalGetOptions().getMap();
      }
      /**
       * <pre>
       * Supported keys:
       *   "fulltext":
       *      A JSON encoded string containing full-text search options for the column.
       *      The fulltext options JSON structure:
       *      {
       *        "enable": bool,          // Indicates whether full-text search is
       *                                 // enabled for the column.
       *        "analyzer": string,      // The language-specific text analyzer to
       *                                 // use for indexing and searching text.
       *                                 // Supported values: ["English" (Default), "Chinese"].
       *        "case-sensitive": bool   // Indicates whether the text should be treated
       *                                 // as case-sensitive during full-text search.
       *      }
       *      Example:
       *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 1;</code>
       */
      @java.lang.Override

      public java.lang.String getOptionsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetOptions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Supported keys:
       *   "fulltext":
       *      A JSON encoded string containing full-text search options for the column.
       *      The fulltext options JSON structure:
       *      {
       *        "enable": bool,          // Indicates whether full-text search is
       *                                 // enabled for the column.
       *        "analyzer": string,      // The language-specific text analyzer to
       *                                 // use for indexing and searching text.
       *                                 // Supported values: ["English" (Default), "Chinese"].
       *        "case-sensitive": bool   // Indicates whether the text should be treated
       *                                 // as case-sensitive during full-text search.
       *      }
       *      Example:
       *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 1;</code>
       */
      @java.lang.Override

      public java.lang.String getOptionsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetOptions().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearOptions() {
        internalGetMutableOptions().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * Supported keys:
       *   "fulltext":
       *      A JSON encoded string containing full-text search options for the column.
       *      The fulltext options JSON structure:
       *      {
       *        "enable": bool,          // Indicates whether full-text search is
       *                                 // enabled for the column.
       *        "analyzer": string,      // The language-specific text analyzer to
       *                                 // use for indexing and searching text.
       *                                 // Supported values: ["English" (Default), "Chinese"].
       *        "case-sensitive": bool   // Indicates whether the text should be treated
       *                                 // as case-sensitive during full-text search.
       *      }
       *      Example:
       *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 1;</code>
       */

      public Builder removeOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableOptions().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableOptions() {
        return internalGetMutableOptions().getMutableMap();
      }
      /**
       * <pre>
       * Supported keys:
       *   "fulltext":
       *      A JSON encoded string containing full-text search options for the column.
       *      The fulltext options JSON structure:
       *      {
       *        "enable": bool,          // Indicates whether full-text search is
       *                                 // enabled for the column.
       *        "analyzer": string,      // The language-specific text analyzer to
       *                                 // use for indexing and searching text.
       *                                 // Supported values: ["English" (Default), "Chinese"].
       *        "case-sensitive": bool   // Indicates whether the text should be treated
       *                                 // as case-sensitive during full-text search.
       *      }
       *      Example:
       *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 1;</code>
       */
      public Builder putOptions(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableOptions().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * Supported keys:
       *   "fulltext":
       *      A JSON encoded string containing full-text search options for the column.
       *      The fulltext options JSON structure:
       *      {
       *        "enable": bool,          // Indicates whether full-text search is
       *                                 // enabled for the column.
       *        "analyzer": string,      // The language-specific text analyzer to
       *                                 // use for indexing and searching text.
       *                                 // Supported values: ["English" (Default), "Chinese"].
       *        "case-sensitive": bool   // Indicates whether the text should be treated
       *                                 // as case-sensitive during full-text search.
       *      }
       *      Example:
       *      "fulltext": "{&#92;"enable&#92;": true, &#92;"analyzer&#92;": &#92;"English&#92;", &#92;"case-sensitive&#92;": false}"
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 1;</code>
       */

      public Builder putAllOptions(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableOptions().getMutableMap()
            .putAll(values);
        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.ColumnOptions)
    }

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

    public static io.greptime.v1.Common.ColumnOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_QueryContext_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_QueryContext_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_QueryContext_ExtensionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_QueryContext_ExtensionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SnapshotSequences_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SnapshotSequences_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SnapshotSequences_SstMinSequencesEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SnapshotSequences_SstMinSequencesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SnapshotSequences_SnapshotSeqsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SnapshotSequences_SnapshotSeqsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ExplainOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ExplainOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_RequestHeader_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_RequestHeader_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_RequestHeader_TracingContextEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_RequestHeader_TracingContextEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ResponseHeader_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ResponseHeader_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Status_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Status_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_AuthHeader_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AuthHeader_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Basic_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Basic_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Token_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Token_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_TableName_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_TableName_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_AffectedRows_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AffectedRows_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Metrics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Metrics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ExpireAfter_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ExpireAfter_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_FlightMetadata_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_FlightMetadata_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_IntervalMonthDayNano_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_IntervalMonthDayNano_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Decimal128_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Decimal128_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ColumnDataTypeExtension_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ColumnDataTypeExtension_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DecimalTypeExtension_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DecimalTypeExtension_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_VectorTypeExtension_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_VectorTypeExtension_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ColumnOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ColumnOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ColumnOptions_OptionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ColumnOptions_OptionsEntry_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\030greptime/v1/common.proto\022\013greptime.v1\"" +
      "\271\002\n\014QueryContext\022\027\n\017current_catalog\030\001 \001(" +
      "\t\022\026\n\016current_schema\030\002 \001(\t\022\020\n\010timezone\030\004 " +
      "\001(\t\022=\n\nextensions\030\005 \003(\0132).greptime.v1.Qu" +
      "eryContext.ExtensionsEntry\022\017\n\007channel\030\006 " +
      "\001(\r\0225\n\rsnapshot_seqs\030\007 \001(\0132\036.greptime.v1" +
      ".SnapshotSequences\022,\n\007explain\030\010 \001(\0132\033.gr" +
      "eptime.v1.ExplainOptions\0321\n\017ExtensionsEn" +
      "try\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\231\002\n\021" +
      "SnapshotSequences\022N\n\021sst_min_sequences\030\001" +
      " \003(\01323.greptime.v1.SnapshotSequences.Sst" +
      "MinSequencesEntry\022G\n\rsnapshot_seqs\030\007 \003(\013" +
      "20.greptime.v1.SnapshotSequences.Snapsho" +
      "tSeqsEntry\0326\n\024SstMinSequencesEntry\022\013\n\003ke" +
      "y\030\001 \001(\004\022\r\n\005value\030\002 \001(\004:\0028\001\0323\n\021SnapshotSe" +
      "qsEntry\022\013\n\003key\030\001 \001(\004\022\r\n\005value\030\002 \001(\004:\0028\001\"" +
      "!\n\016ExplainOptions\022\017\n\007verbose\030\001 \001(\010\"\202\002\n\rR" +
      "equestHeader\022\017\n\007catalog\030\001 \001(\t\022\016\n\006schema\030" +
      "\002 \001(\t\022.\n\rauthorization\030\003 \001(\0132\027.greptime." +
      "v1.AuthHeader\022\016\n\006dbname\030\004 \001(\t\022G\n\017tracing" +
      "_context\030\005 \003(\0132..greptime.v1.RequestHead" +
      "er.TracingContextEntry\022\020\n\010timezone\030\006 \001(\t" +
      "\0325\n\023TracingContextEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" +
      "value\030\002 \001(\t:\0028\001\"5\n\016ResponseHeader\022#\n\006sta" +
      "tus\030\001 \001(\0132\023.greptime.v1.Status\".\n\006Status" +
      "\022\023\n\013status_code\030\001 \001(\r\022\017\n\007err_msg\030\002 \001(\t\"e" +
      "\n\nAuthHeader\022#\n\005basic\030\001 \001(\0132\022.greptime.v" +
      "1.BasicH\000\022#\n\005token\030\002 \001(\0132\022.greptime.v1.T" +
      "okenH\000B\r\n\013auth_scheme\"+\n\005Basic\022\020\n\010userna" +
      "me\030\001 \001(\t\022\020\n\010password\030\002 \001(\t\"\026\n\005Token\022\r\n\005t" +
      "oken\030\001 \001(\t\"J\n\tTableName\022\024\n\014catalog_name\030" +
      "\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntable_name" +
      "\030\003 \001(\t\"\035\n\014AffectedRows\022\r\n\005value\030\001 \001(\r\"\032\n" +
      "\007Metrics\022\017\n\007metrics\030\001 \001(\014\"\034\n\013ExpireAfter" +
      "\022\r\n\005value\030\001 \001(\003\"i\n\016FlightMetadata\0220\n\raff" +
      "ected_rows\030\001 \001(\0132\031.greptime.v1.AffectedR" +
      "ows\022%\n\007metrics\030\002 \001(\0132\024.greptime.v1.Metri" +
      "cs\"I\n\024IntervalMonthDayNano\022\016\n\006months\030\001 \001" +
      "(\005\022\014\n\004days\030\002 \001(\005\022\023\n\013nanoseconds\030\003 \001(\003\"$\n" +
      "\nDecimal128\022\n\n\002hi\030\001 \001(\003\022\n\n\002lo\030\002 \001(\003\"\316\001\n\027" +
      "ColumnDataTypeExtension\0229\n\014decimal_type\030" +
      "\001 \001(\0132!.greptime.v1.DecimalTypeExtension" +
      "H\000\0223\n\tjson_type\030\002 \001(\0162\036.greptime.v1.Json" +
      "TypeExtensionH\000\0227\n\013vector_type\030\003 \001(\0132 .g" +
      "reptime.v1.VectorTypeExtensionH\000B\n\n\010type" +
      "_ext\"8\n\024DecimalTypeExtension\022\021\n\tprecisio" +
      "n\030\001 \001(\005\022\r\n\005scale\030\002 \001(\005\"\"\n\023VectorTypeExte" +
      "nsion\022\013\n\003dim\030\001 \001(\r\"y\n\rColumnOptions\0228\n\007o" +
      "ptions\030\001 \003(\0132\'.greptime.v1.ColumnOptions" +
      ".OptionsEntry\032.\n\014OptionsEntry\022\013\n\003key\030\001 \001" +
      "(\t\022\r\n\005value\030\002 \001(\t:\0028\001*1\n\014SemanticType\022\007\n" +
      "\003TAG\020\000\022\t\n\005FIELD\020\001\022\r\n\tTIMESTAMP\020\002*\354\003\n\016Col" +
      "umnDataType\022\013\n\007BOOLEAN\020\000\022\010\n\004INT8\020\001\022\t\n\005IN" +
      "T16\020\002\022\t\n\005INT32\020\003\022\t\n\005INT64\020\004\022\t\n\005UINT8\020\005\022\n" +
      "\n\006UINT16\020\006\022\n\n\006UINT32\020\007\022\n\n\006UINT64\020\010\022\013\n\007FL" +
      "OAT32\020\t\022\013\n\007FLOAT64\020\n\022\n\n\006BINARY\020\013\022\n\n\006STRI" +
      "NG\020\014\022\010\n\004DATE\020\r\022\014\n\010DATETIME\020\016\022\024\n\020TIMESTAM" +
      "P_SECOND\020\017\022\031\n\025TIMESTAMP_MILLISECOND\020\020\022\031\n" +
      "\025TIMESTAMP_MICROSECOND\020\021\022\030\n\024TIMESTAMP_NA" +
      "NOSECOND\020\022\022\017\n\013TIME_SECOND\020\023\022\024\n\020TIME_MILL" +
      "ISECOND\020\024\022\024\n\020TIME_MICROSECOND\020\025\022\023\n\017TIME_" +
      "NANOSECOND\020\026\022\027\n\023INTERVAL_YEAR_MONTH\020\027\022\025\n" +
      "\021INTERVAL_DAY_TIME\020\030\022\033\n\027INTERVAL_MONTH_D" +
      "AY_NANO\020\031\022\016\n\nDECIMAL128\020\036\022\010\n\004JSON\020\037\022\n\n\006V" +
      "ECTOR\020 *$\n\021JsonTypeExtension\022\017\n\013JSON_BIN" +
      "ARY\020\000BO\n\016io.greptime.v1B\006CommonZ5github." +
      "com/GreptimeTeam/greptime-proto/go/grept" +
      "ime/v1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_greptime_v1_QueryContext_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_greptime_v1_QueryContext_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_QueryContext_descriptor,
        new java.lang.String[] { "CurrentCatalog", "CurrentSchema", "Timezone", "Extensions", "Channel", "SnapshotSeqs", "Explain", });
    internal_static_greptime_v1_QueryContext_ExtensionsEntry_descriptor =
      internal_static_greptime_v1_QueryContext_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_QueryContext_ExtensionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_QueryContext_ExtensionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_SnapshotSequences_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_greptime_v1_SnapshotSequences_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SnapshotSequences_descriptor,
        new java.lang.String[] { "SstMinSequences", "SnapshotSeqs", });
    internal_static_greptime_v1_SnapshotSequences_SstMinSequencesEntry_descriptor =
      internal_static_greptime_v1_SnapshotSequences_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_SnapshotSequences_SstMinSequencesEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SnapshotSequences_SstMinSequencesEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_SnapshotSequences_SnapshotSeqsEntry_descriptor =
      internal_static_greptime_v1_SnapshotSequences_descriptor.getNestedTypes().get(1);
    internal_static_greptime_v1_SnapshotSequences_SnapshotSeqsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SnapshotSequences_SnapshotSeqsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_ExplainOptions_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_greptime_v1_ExplainOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ExplainOptions_descriptor,
        new java.lang.String[] { "Verbose", });
    internal_static_greptime_v1_RequestHeader_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_greptime_v1_RequestHeader_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_RequestHeader_descriptor,
        new java.lang.String[] { "Catalog", "Schema", "Authorization", "Dbname", "TracingContext", "Timezone", });
    internal_static_greptime_v1_RequestHeader_TracingContextEntry_descriptor =
      internal_static_greptime_v1_RequestHeader_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_RequestHeader_TracingContextEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_RequestHeader_TracingContextEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_ResponseHeader_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_greptime_v1_ResponseHeader_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ResponseHeader_descriptor,
        new java.lang.String[] { "Status", });
    internal_static_greptime_v1_Status_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_greptime_v1_Status_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Status_descriptor,
        new java.lang.String[] { "StatusCode", "ErrMsg", });
    internal_static_greptime_v1_AuthHeader_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_greptime_v1_AuthHeader_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AuthHeader_descriptor,
        new java.lang.String[] { "Basic", "Token", "AuthScheme", });
    internal_static_greptime_v1_Basic_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_greptime_v1_Basic_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Basic_descriptor,
        new java.lang.String[] { "Username", "Password", });
    internal_static_greptime_v1_Token_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_greptime_v1_Token_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Token_descriptor,
        new java.lang.String[] { "Token", });
    internal_static_greptime_v1_TableName_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_greptime_v1_TableName_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_TableName_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "TableName", });
    internal_static_greptime_v1_AffectedRows_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_greptime_v1_AffectedRows_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AffectedRows_descriptor,
        new java.lang.String[] { "Value", });
    internal_static_greptime_v1_Metrics_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_greptime_v1_Metrics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Metrics_descriptor,
        new java.lang.String[] { "Metrics", });
    internal_static_greptime_v1_ExpireAfter_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_greptime_v1_ExpireAfter_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ExpireAfter_descriptor,
        new java.lang.String[] { "Value", });
    internal_static_greptime_v1_FlightMetadata_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_greptime_v1_FlightMetadata_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_FlightMetadata_descriptor,
        new java.lang.String[] { "AffectedRows", "Metrics", });
    internal_static_greptime_v1_IntervalMonthDayNano_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_greptime_v1_IntervalMonthDayNano_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_IntervalMonthDayNano_descriptor,
        new java.lang.String[] { "Months", "Days", "Nanoseconds", });
    internal_static_greptime_v1_Decimal128_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_greptime_v1_Decimal128_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Decimal128_descriptor,
        new java.lang.String[] { "Hi", "Lo", });
    internal_static_greptime_v1_ColumnDataTypeExtension_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_greptime_v1_ColumnDataTypeExtension_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ColumnDataTypeExtension_descriptor,
        new java.lang.String[] { "DecimalType", "JsonType", "VectorType", "TypeExt", });
    internal_static_greptime_v1_DecimalTypeExtension_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_greptime_v1_DecimalTypeExtension_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DecimalTypeExtension_descriptor,
        new java.lang.String[] { "Precision", "Scale", });
    internal_static_greptime_v1_VectorTypeExtension_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_greptime_v1_VectorTypeExtension_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_VectorTypeExtension_descriptor,
        new java.lang.String[] { "Dim", });
    internal_static_greptime_v1_ColumnOptions_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_greptime_v1_ColumnOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ColumnOptions_descriptor,
        new java.lang.String[] { "Options", });
    internal_static_greptime_v1_ColumnOptions_OptionsEntry_descriptor =
      internal_static_greptime_v1_ColumnOptions_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_ColumnOptions_OptionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ColumnOptions_OptionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
